如何在 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

更新于: 06-Mar-2021

4 千 + 次浏览

开始你的职业生涯

完成课程获得认证

开始
广告