我正在为模型拟合:
var4pca <- lm(lg[5:415,1] ~ pcalg1$x[, 1:8] + pcalg2$x[, 1:8] + pcalg3$x[, 1:8] + pcalg4$x[, 1:8])
我现在要预测验证集(83行)的值。我该怎么办?
我正在尝试使用:
pred_pca<-predict(var4pca, va)
其中va是我的验证集。但这返回了一个长度为411的向量,而我只想要长度为83
答案 0 :(得分:1)
根据我的经验,lm对预测非常挑剔。它要求新数据看起来与用于创建模型的数据完全相同。我的意思是说像col名称之类的东西必须匹配。通常可以使用的方法是创建所有数据的数据框,然后将df.train和df.test创建为数据框的正确行。这应该够了吧。正如joran所说,请谨慎使用公式。将所有数据放入名为cols的df中的一个好处是可以使用公式depvar〜。 -通常更容易编写。