python - statsmodels 中的普通最小二乘:我们的模型需要截距
问题描述
我开始学习线性回归,一开始就被难住了。我认为我的问题不在于概念上,而在于实施。我不明白为什么,根据文档,在尝试拟合回归线时,我需要包含一个截距为 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?
解决方案
推荐阅读
- python - 从给定的列表索引中取 no 邻居。给定解决方案的最佳实践或有效性能是什么?
- android - 在使用 GridLayout 的 Constaint 布局中添加了 ScrollView 它不起作用
- apache-flink - 原始状态与托管状态的示例
- vue.js - vuetify v-chip 关闭图标未显示
- java - 如何将文本导入 JList?
- awk - 来自多个文件的 awk Sum 列并将结果放在一个文件中
- ruby-on-rails - Sidekiq:perform_async 中的参数作为字符串而不是实际对象或 ActiveRecord::Relation 发送
- java - 从 servlet 类调用 jsp 页面不起作用?
- python - 堆叠两个具有不同隐藏层的 LSTM
- aws-lambda - 如何仅使用代码部署服务从 s3 部署压缩 lambda 代码?