全部版块 我的主页
论坛 休闲区 十二区 灌水吧
6536 4
2015-12-06
最近做了一些模拟,其中就有LS方法,用training set做回归,再用test set做预测,然后看MSE,但是用predict函数做的预测值都是训练集的,不知道出了什么问题,还请高人指点!
library(MASS)
library(glmnet)
library(Matrix)
set.seed(1)
n=400
p=5
q=0
sigma=matrix(q,p,p)
diag(sigma)=1
x=mvrnorm(n,rep(0,p),sigma)
b=rep(3,p)
e=rnorm(n,0,1)
y=x%*%b+e

以上是生成的x,y.大家重点看后边,一共400个,用前200来做训练,后200做测试
x1=x[1:200,]
y1=y[1:200,]
x2=x[201:n,]
y2=y[201:n,]
hatb=solve(t(x1)%*%x1)%*%t(x1)%*%y1
yhat=x2%*%hatb
mean((yhat-y2)^2)

这个是用OLS公式算的,肯定是对的,结果大概是0.9几,但是用predict函数做的就不一样
lm1=lm(y[1:200]~x[1:200,])
summary(lm2)
new=data.frame(x[201:n,])
ypred=predict(lm1,new)

mean((y[201:n]-ypred)^2)
这个结果很大,但是OLS估计在低维应该表现不错才对,我看了下,最后预测出来的还是训练集的,那个函数写的有问题,就是不知道怎么写了,求大神啊啊啊啊


二维码

扫码加我 拉你入群

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

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

全部回复
2015-12-6 16:53:24
自己顶,高手快来
二维码

扫码加我 拉你入群

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

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

2015-12-7 21:58:31
1143414237 发表于 2015-12-6 16:53
自己顶,高手快来
继续顶,高手快来
二维码

扫码加我 拉你入群

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

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

2019-4-4 07:37:26
求问楼主问题解决了吗,怎么解决qwq
二维码

扫码加我 拉你入群

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

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

2022-2-17 09:08:45
我也遇到了同样的问题
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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