当我学习Python SKlearn时,遇到的第一个示例是Generalized Linear Models。R lm与Python sklearn linear_model
其第一实施例的代码:
from sklearn import linear_model
reg = linear_model.LinearRegression()
reg.fit([[0, 0], [1, 1], [2,2]], [0, 1,2])
reg.fit
reg.coef_
array([ 0.5, 0.5])
在这里,我假定[[0, 0], [1, 1], [2,2]]
表示含有x1 = c(0,1,2)
和x2 = c(0,1,2)
和y = c(0,1,2)
以及一个data.frame。
立刻,我开始认为array([ 0.5, 0.5])
是x1
和x2
的系数。
但是,这些估计是否存在标准误差?如何测试p值,R2和其他数字?
然后我尝试做同样的事情在R.
X = data.frame(x1 = c(0,1,2),x2 = c(0,1,2),y = c(0,1,2))
lm(data=X, y~x1+x2)
Call:
lm(formula = y ~ x1 + x2, data = X)
#Coefficients:
#(Intercept) x1 x2
# 1.282e-16 1.000e+00 NA
显然x1
和x2
是完全线性相关,因此OLS将失败。为什么SKlearn仍能正常工作并给出结果?我是否以一种错误的方式变得滑稽?谢谢。
也许http://stats.stackexchange.com /问题/ 116825 /异输出换-R-LM-和蟒-statsmodel醇类换线性回归 – hrbrmstr