如何解决R中样本数据中的均方预测误差MSPE
我想使用R计算多元线性回归的样本量。从我的课本中,我得到了MSPE的以下公式
我尝试通过在R中使用以下两行来计算MSEP
fit <- lm(CO ~ weight + nico,data = df)
mean( (df$CO - predict.lm(fit,df))^2 )
但是我相当确定这是MSPE样本。我试图对MSPE进行硬编码,最后得到
MSEP <- function(df){
df <- df[,-1] # Removing "name" column
factor <- 1/nrow(df)
summa <- 0
for(i in 1:nrow(df)){
df_ny <- df[-i,]
fit <- lm(CO ~.,data = df_ny)
holder <- (df[i,]$CO - predict.lm(fit,df[i,]))^2
summa <- summa + holder
}
return(factor*summa)
}
这是正确的吗?我可以使用R中的内置函数来比较结果吗?
谢谢。
解决方法
也许您可以尝试这样的事情:
in_sample <- data.frame(x = rnorm(100),y = rnorm(100))
out_sample <- data.frame(y = rnorm(100),x = rnorm(100))
mod <- lm(y ~ x,in_sample)
mspe <- function(model,dv,data) {
yhat <- predict(model,newdata=data)
y <- data[[dv]]
mean((y - yhat)^2)
}
mspe(mod,"y",out_sample)
#> [1] 0.8247627
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。