我正在使用交互式条款预测一个模型。
est = smf.ols(formula='mdvis ~ hlthp * logincome', data=df).fit().
当我使用线性回归时,我得到了相当不错的成绩,大约97%-R平方。
所以,我的问题是:在使用交互式条款进行预测时,如何使用testtrain数据进行评估,并使用交叉验证来计算统计学意义?
使用交互项只是建立回归的exog矩阵的一种简单方法。它不会改变交叉验证的逻辑。
将你的数据框架分为训练和测试样本 。
train = df.sample(frac=0.8)
test = df.drop(train.index)
然后在训练数据上拟合模型 。
res = smf.ols(formula='mdvis ~ hlthp * logincome', data=train).fit()
对整个数据(训练和测试)进行预测。
df['predict']=res.predict(exog=df)
df['delta'] = df['predict']-df['mdvis']
最后根据需要对每个火车和测试样本进行统计分离(这里我计算残差的标准差) 。
std_train=df.loc[train.index]['delta'].std()
std_test =df.loc[test.index]['delta'].std()