Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当用于预测的观测值少于训练时,为什么mlr中的预测不起作用?_R_Lm_Predict - Fatal编程技术网

当用于预测的观测值少于训练时,为什么mlr中的预测不起作用?

当用于预测的观测值少于训练时,为什么mlr中的预测不起作用?,r,lm,predict,R,Lm,Predict,我试图在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("val

我试图在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)
yval=read.table(“y.txt的值”,header=T)
xval=read.table(“Rmat.txt”,header=T)

reg在将公式语法与
lm
和predict一起使用时,需要更加小心。模型中的列名和新data.frame中的列名必须完全匹配,在公式中使用“$”语法时,这是不可能的。试试像这样的东西

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)
yval=read.table(“y.txt的值”,header=T)
xval=read.table(“Rmat.txt”,header=T)

regI尝试过它,但它仍然给出了一个警告“警告消息:在predict.lm(reg,tin)中:根据秩缺陷拟合进行预测可能会产生误导”,听起来可能是您的数据有问题。但是,由于您还没有进行测试,因此无法确定。我添加了一些样本训练和测试数据。您的样本数据几乎没有足够的观察值来估计14个参数。也许您可以减少示例中的变量。只要确保你能真正运行它。使用数据的
dput()
s,如有关如何编写可复制示例的链接中所述。你们所有的真实数据都是离散的吗?是的,我在处理离散数据,我对这14个参数有大约8000个观测值,这还不够吗?你认为问题是由离散值引起的吗?