Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
R中样本外数据的均方预测误差(MSPE)_R_Linear Regression_Prediction_Lm - Fatal编程技术网

R中样本外数据的均方预测误差(MSPE)

R中样本外数据的均方预测误差(MSPE),r,linear-regression,prediction,lm,R,Linear Regression,Prediction,Lm,我想用R计算多元线性回归的样本外MSPE。从我的教科书中,我得到了以下MSPE公式 这里的意思是,我的观察被从平均值中省略了 我尝试使用R中的以下两行来计算MSEP fit <- lm(CO ~ weight + nico, data = df) mean( (df$CO - predict.lm(fit, df))^2 ) fit也许你可以试试这样: in_sample <- data.frame(x = rnorm(100),

我想用R计算多元线性回归的样本外MSPE。从我的教科书中,我得到了以下MSPE公式

这里的意思是,我的观察被从平均值中省略了

我尝试使用R中的以下两行来计算MSEP

fit <- lm(CO ~ weight + nico, data = df)
mean( (df$CO - predict.lm(fit, df))^2 )

fit也许你可以试试这样:

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
in_示例
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