传递给 StatsModels 预测函数的第一个值是什么?
What is first value that is passed into StatsModels predict function?
我有以下来自 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])
我不清楚这里的工作概念。有人知道这是怎么回事吗?
您正在向 X = statsmodels.tools.tools.add_constant(X)
的回归方程中添加一个常数。所以你的回归变量 X 有两列,其中第一列是一个数组。
您需要对预测中使用的回归量执行相同的操作。因此,1
意味着在预测中包含常量。如果改为使用零,则常数 (0 * params[0]
) 的贡献为零,预测只是斜率效应。
公式界面会自动为模型中的回归量和预测中的回归量添加常量。但是,对于 pandas DataFrame 或 numpy ndarray 接口,用户需要为模型和预测添加常量。
我有以下来自 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])
我不清楚这里的工作概念。有人知道这是怎么回事吗?
您正在向 X = statsmodels.tools.tools.add_constant(X)
的回归方程中添加一个常数。所以你的回归变量 X 有两列,其中第一列是一个数组。
您需要对预测中使用的回归量执行相同的操作。因此,1
意味着在预测中包含常量。如果改为使用零,则常数 (0 * params[0]
) 的贡献为零,预测只是斜率效应。
公式界面会自动为模型中的回归量和预测中的回归量添加常量。但是,对于 pandas DataFrame 或 numpy ndarray 接口,用户需要为模型和预测添加常量。