全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
12774 8
2016-07-15
> new<-data.frame(as.matrix(test_data[,2:19]),as.matrix(test_data[,1]))
> dim(new)
    [1] 142  19
> predict(fit,new,interval='prediction',level=0.95)


数据明明是142行,但出现以下错误,是怎么回事?该怎么修改呢?
Warning message:
'newdata'必需有142行 但变量里有568行

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-7-16 00:59:15
我不清楚,fit 是否可以这样用,你可以试一下:

lm1 <- lm(y~x)  # y 对 x 的线性回归
xnew <- data.frame(x=xh)  # 你要预测时的 x 值为 xh
predict(lm1, xnew, interval="predict")  # 默认的区间是95%
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-16 12:06:16
cmwei333 发表于 2016-7-16 00:59
我不清楚,fit 是否可以这样用,你可以试一下:

lm1
> lm1 <- lm(y~x)
> xh=as.matrix(test_data[,2:19])
> xnew <- data.frame(x=xh)
> predict(lm1, xnew, interval="predict")

错误一样的额
Warning message:
'newdata'必需有142行 但变量里有568行
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-16 12:13:36
cmwei333 发表于 2016-7-16 00:59
我不清楚,fit 是否可以这样用,你可以试一下:

lm1
其中我是把一个csv文件按4:1比例划分训练集和测试集。test_data是测试集,142行。回归模型lm1用的是训练集train_data,568行,这样有没有错误?
> lm1 <- lm(y~x)
> xh=as.matrix(test_data[,2:19])
> xnew <- data.frame(x=xh)
> predict(lm1, xnew, interval="predict")

错误一样的额
Warning message:
'newdata'必需有142行 但变量里有568行
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-16 16:25:32
haichao1990 发表于 2016-7-16 12:13
其中我是把一个csv文件按4:1比例划分训练集和测试集。test_data是测试集,142行。回归模型lm1用的是训练集 ...
我好像知道问题出在哪里了,最近用 MATLAB 习惯了,忽略了 R 在做线性回归时的一些特性

在 MATLAB 里,可以用 fitlm(x,y) 来做线性回归,y 是 n X 1 的矩阵, x 是 n X m 的矩阵

而在 R 里,要用 lm(y~x) 来做线性回归的条件是 y 和 x 都是 n X 1 的矩阵,如果要做跟以上 MATLAB 一样的线性回归,则要变成 lm(y~x1+x2+...+xm),就有点麻烦了

不过你的 x 只有4个,只要 lm(y~x1+x2+x3+x4) 就好了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-14 07:54:27
你好,我最近遇到了同样的问题,请问最后是怎么解决问题的呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群