我正在使用statsmodels OLS对一系列点进行拟合:
import statsmodels.api as sm
Y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15]
X = [[73.759999999999991], [73.844999999999999], [73.560000000000002],
[73.209999999999994], [72.944999999999993], [73.430000000000007],
[72.950000000000003], [73.219999999999999], [72.609999999999999],
[74.840000000000003], [73.079999999999998], [74.125], [74.75],
[74.760000000000005]]
ols = sm.OLS(Y, X)
r = ols.fit()
preds = r.predict()
print preds
以下是我的结果:
我得到了以下结果:
[ 7.88819844 7.89728869 7.86680961 7.82937917 7.80103898 7.85290687
7.8015737 7.83044861 7.76521269 8.00369809 7.81547643 7.92723304
7.99407312 7.99514256]
这些数值偏差大约在10倍左右。我做错了什么?我尝试增加一个常数,但这只会将数值变大1000倍。由于我对统计学并不熟悉,也许需要对数据进行处理?
sm.OLS(X, sm.add_constant(Y)).fit()
定义模型。 - Josef