Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python statsmodels中的普通最小二乘法:我们的模型需要一个截距_Python_Regression - Fatal编程技术网

Python statsmodels中的普通最小二乘法:我们的模型需要一个截距

Python statsmodels中的普通最小二乘法:我们的模型需要一个截距,python,regression,Python,Regression,我开始学习线性回归,一开始就被难倒了。我认为我的问题不在概念上,而在实施上。我不明白为什么,根据,在尝试拟合回归线时,我需要包含一个截距为1的额外列 #Artificial data: nsample = 100 x = np.linspace(0, 10, 100) X = np.column_stack((x, x**2)) beta = np.array([1, 0.1, 10]) e = np.random.normal(size=nsample) #Our model needs a

我开始学习线性回归,一开始就被难倒了。我认为我的问题不在概念上,而在实施上。我不明白为什么,根据,在尝试拟合回归线时,我需要包含一个截距为1的额外列

#Artificial data:
nsample = 100
x = np.linspace(0, 10, 100)
X = np.column_stack((x, x**2))
beta = np.array([1, 0.1, 10])
e = np.random.normal(size=nsample)

#Our model needs an intercept so we add a column of 1s:
X = sm.add_constant(X)
y = np.dot(X, beta) + e

#Fit and summary:
model = sm.OLS(y, X)
results = model.fit()
print(results.summary())

截距不是由数据决定的吗?为什么我需要指定它是什么?或者这更像是一个参数,其中无截距或截距=0意味着回归线被强制通过原点,否则将进行计算?为什么我要指定0或1以外的截距,比如100000?

一列1就是通过设计矩阵获取截距参数的方法。非公式界面采用用户定义的设计矩阵,不会对其进行更改。所以,如果你想要一个截取,那么我们需要自己作为用户添加它。或者,你可以使用公式界面来添加一个默认的截距。考虑使用线性回归来拟合一个二次方程,该方程被写成“y=(a*x^ 0)+(b*x^ 1)+(c*x^ 2)”。由于x^0=1,您需要拟合一列1来查找参数“a”。