如何在 R 中找到线性模型的均方误差?
为了找到线性模型的均方误差,我们可以使用模型的预测值并找到因变量的误差,然后求其平方并求整个输出的均值。例如,如果我们有一个名为 M 的线性模型,用于数据框 df,然后我们可以使用命令 mean((df$y-predict(M))^2) 找到均方误差。
示例 1
考虑以下数据框 -
x1<-rnorm(20) y1<-rnorm(20) df1<-data.frame(x1,y1) df1
输出
x1 y1 1 -0.64419775 -0.655535847 2 -2.02925533 -0.074246704 3 1.42639556 0.226413529 4 0.21841252 -0.799586646 5 -0.08272931 0.021258680 6 1.36349138 -0.358914344 7 0.58243090 0.334064031 8 -0.18839329 0.596566815 9 1.97993745 1.808762160 10 -0.31676008 0.812349831 11 -0.06732802 -0.189255661 12 1.76175840 -0.317888508 13 -0.29681017 0.947048363 14 -1.02210007 0.428273333 15 -0.33408154 2.273976129 16 0.49158882 -0.483902966 17 -0.71446066 0.001058688 18 -0.98031110 0.011280707 19 0.78912612 0.620691096 20 0.63751954 -0.668467539
为 y1 和 x1 创建线性模型,然后找到预测值和均方误差 -
Model1<-lm(y1~x1,data=df1) predict(Model1)
1 2 3 4 5 6 7 8 0.1936091 0.1343150 0.2822509 0.2305373 0.2176455 0.2795580 0.2461209 0.2131220 9 10 11 12 13 14 15 16 0.3059479 0.2076267 0.2183048 0.2966077 0.2084807 0.1774312 0.2068852 0.2422320 17 18 19 20 0.1906012 0.1792202 0.2549695 0.2484792
mean((df1$y1-predict(Model1))^2)
[1] 0.6022432
示例 2
iv1<-rpois(20,2) iv2<-rpois(20,3) iv3<-rpois(20,1) Y<-rpois(20,6) df2<-data.frame(iv1,iv2,iv3,Y) df2
输出
iv1 iv2 iv3 Y 1 3 5 1 5 2 6 2 0 12 3 1 1 0 10 4 5 2 1 6 5 5 1 0 6 6 4 4 0 5 7 1 2 0 2 8 1 1 0 6 9 2 5 0 5 10 2 4 0 6 11 4 6 2 8 12 3 4 1 4 13 2 5 2 6 14 4 3 1 4 15 3 3 2 10 16 2 2 1 7 17 2 4 0 14 18 2 1 0 7 19 1 3 1 7 20 2 4 1 4
为 Y、iv1、iv2、iv3 创建线性模型,然后找到预测值和均方误差 -
Model2<-lm(Y~iv1+iv2+iv3,data=df2) predict(Model2)
1 2 3 4 5 6 7 8 6.368896 7.886330 6.659550 7.545170 7.802283 6.911692 6.457914 6.659550 9 10 11 12 13 14 15 16 6.138690 6.340326 6.397466 6.570532 6.027735 7.057851 6.716690 6.688120 17 18 19 20 6.340326 6.945233 6.200801 6.284848
mean((df2$Y-predict(Model2))^2)
[1] 7.745138
广告