传递给StatsModels预测函数的第一个值是什么?

时间:2016-09-26 23:53:06

标签: python statsmodels

我有来自StatsModels的以下OLS模型:

X = df['Grade']
y = df['Results']

X = statsmodels.tools.tools.add_constant(X)

mod = sm.OLS(y,X)
results = mod.fit() 

当试图预测X值为4的新Y值时,我必须传递以下内容:

results.predict([1,4])

我不明白为什么需要传递第一个值为'1'的数组才能使预测函数正常工作。为什么我需要包含1而不是仅仅说:

results.predict([4])

我不清楚这里的概念。有人知道发生了什么吗?

1 个答案:

答案 0 :(得分:1)

您正在使用X = statsmodels.tools.tools.add_constant(X)向回归方程式添加常量。所以你的回归量X有两列,第一列是一列数。

您需要对预测中使用的回归量做同样的事情。因此,1表示在预测中包含常量。如果改为使用零,则常量(0 * params[0])的贡献为零,预测仅为斜率效应。

公式接口自动为模型中的回归量和预测中的回归量添加常量。但是,使用pandas DataFrame或numpy ndarray接口时,用户需要为模型和预测添加常量。