我对model.predict(X)
行的实际预测有点困惑。我用Google搜索找不到任何东西。
import statsmodels.api as sm
# Step 1) Load data into dataframe
df = pd.read_csv('my_data.csv')
# Step 2) Separate dependent and independent variables
X = df['independent_variable']
y = df["dependent_variable"]
# Step 3) using OLS -fit a linear regression
model = sm.OLS(y, X).fit()
predictions = model.predict(X) # make predictions
predictions
我不确定predictions
正在显示什么?它是在预测下一个 x 行的数量吗?我不只是传递我的自变量吗?
答案 0 :(得分:1)
您正在从数据中拟合OLS模型,该数据很可能被解释为数组。 def has_ext(filepath):
_, ext = os.path.splitext(filepath)
return len(ext) > 0
方法将返回给定训练模型的拟合值数组。
换句话说,来自predict
documentation:
从设计矩阵返回线性预测值。
答案 1 :(得分:1)
类似于sk-learn
。在model = sm.OLS(y, X).fit()
之后,您将得到一个模型,然后predictions = model.predict(X)
不会预测出x的行数,而它将从您的X
中预测出训练数据集。使用普通最小二乘法的模型将是“ x”的函数,输出应为:
$$ \ hat {y} = f(x)$$
如果要预测新的X
,则需要将X
分成training
和testing
数据集。
答案 2 :(得分:1)
实际上您做错了
预测方法用于预测下一个值
将依存值和I依存值分开后
您可以将数据分为两个部分进行训练和测试
从sklearn.model_selection导入train_test_split X_train,X_test,Y_train,Y_test = train_test_split(X,Y,0.2)
这将使X_train仅具有自变量即可占总数据的80%
然后您可以将y_test放入预测方法中,以检查模型的效果如何