python - python statsmodel.api.OLS() 与 R lm()
问题描述
我从 python statsmodels.api.OLS() 和 R lm() 在相同的数据上运行得到了非常不同的结果。R 结果与我的预期差不多,在 python 中并没有那么多。我确定我误解了一些非常基本的东西......非常感谢任何帮助。
Python
import statsmodels.formula.api as smf
import pandas as pd
df = pd.DataFrame({'date': [1.5488064e+18, 1.5043968e+18],
'count': [15.0, 12.0]})
fit = smf.ols('count~date', data=df).fit()
new_data = pd.DataFrame({'date': [1.398816e+18, 1.337040e+18]})
new_data['count'] = (fit.predict(new_data))
print(new_data)
结果是:
date count
0 1.398816e+18 12.387341
1 1.337040e+18 11.840278
R
df <- data.frame(date=c(1.5488064e+18, 1.5043968e+18),
count=c(15.0, 12.0))
fit <- lm(count~date, data=df)
new_data <- data.frame(date=c(1.398816e+18, 1.337040e+18))
new_data[['count']] <- predict(fit, new_data)
print(new_data)
结果是
date count
1 1.398816e+18 4.8677043
2 1.337040e+18 0.6945525