我正在尝试在R中使用多重线性回归,我通过从文件加载来训练我的数据。但是当我试图预测时,我收到一条警告信息:
"Warning messages:
1: 'newdata' had 45 rows but variables found have 8676 rows
2: In predict.lm(reg, tin) :
prediction from a rank-deficient fit may be misleading"
我的代码很简单:
yval = read.table("value_of_y.txt",header = T)
xval = read.table("Rmat.txt",header = T)
reg<-lm(yval$y~xval$x1+xval$x2+xval$x3+xval$x4+xval$x5+xval$x6+xval$x7+xval$x8+xval$x9+xval$x10+xval$x11+xval$x12+xval$x13+xval$x14)
summary(reg)
tin = read.table("Rtest.txt",header = T)
predict(reg,tin)
我的训练数据(Rmat.txt):
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14
1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1
(value_of_y.txt):
5
-5
5
5
-5
5
5
-5
-5
我用于预测的测试数据(Rtest.txt)
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14
-1 1 -1 1 1 1 1 1 -1 1 -1 1 -1 1
-1 1 -1 1 1 1 1 1 1 1 -1 1 -1 1
-1 -1 1 1 1 1 1 1 1 1 -1 1 -1 1
-1 -1 -1 1 1 1 1 1 1 1 -1 1 -1 1
我应该如何使用预测功能?
答案 0 :(得分:0)
在使用lm
和预测的公式语法时,您需要更加小心。模型中的列名称和新的data.frame必须完全匹配,当您使用&#34; $&#34;时,这是不可能的。公式中的语法。尝试像
yval = read.table("value_of_y.txt",header = T)
xval = read.table("Rmat.txt",header = T)
reg<-lm(y~x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14, cbind(yval, xval))
summary(reg)
tin = read.table("Rtest.txt",header = T)
predict(reg,tin)