首页 > 解决方案 > 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

似乎与thisthis相似,但这些问题中没有任何东西可以解决我的情况。

标签: pythonrstatsmodels

解决方案


推荐阅读