如何在R中找到回归线与点的差异?


回归线与散点图上点的差异实际上是残差,因此我们需要计算模型对象的残差。这可以通过使用残差函数简单地完成。例如,如果我们在x和y之间创建了一个定义为Model的线性模型,则残差将被找到为residuals(Model)。

考虑下面的数据框:

示例

 在线演示

set.seed(999)
x1<-rnorm(100,5,1)
y1<-rnorm(100,5,2)
set.seed(999)
x1<-rnorm(50,5,1)
x1

输出

[1] 4.718260 3.687440 5.795184 5.270070 4.722694 4.433976 3.121342 3.733209
[9] 4.032250 3.878991 6.325464 5.133977 5.938749 5.172538 5.957650 3.637314
[17] 5.068335 5.100658 5.901345 2.925643 3.771437 5.643044 4.640237 5.294036
[25] 3.874732 5.642266 3.893262 4.115160 3.445905 4.873321 7.382664 5.601276
[33] 5.179361 6.080531 4.753188 2.886263 4.629473 5.522868 5.517806 3.597489
[41] 4.514363 5.008498 3.717887 3.888421 5.300665 5.276479 2.949122 5.014190
[49] 5.582266 4.965274

示例

 在线演示

y1<-rnorm(50,5,2)
y1

输出

[1] 6.222789 3.709758 4.657909 2.502828 6.815813 3.366121 5.061378 2.805245
[9] 6.263176 4.886151 2.502289 4.752686 4.920821 4.117212 4.965663 5.664139
[17] 5.903942 4.077208 6.065462 7.370909 4.147725 2.713465 7.280148 5.385931
[25] 3.962250 2.559837 3.806861 1.682934 4.501635 6.555197 3.401010 2.300028
[33] 5.379501 7.656098 3.800852 7.796749 4.400438 9.056425 6.675732 5.027199
[41] 3.768654 6.341022 5.703656 5.280295 3.070839 6.451703 3.750322 7.117050
[49] 4.822037 4.550620

Model1<-lm(y1~x1)

我们可以使用残差函数找到差异,这是这种差异的实际描述:

示例

Difference1<-residuals(Model1) Difference1

输出

       1          2           3          4           5             6
-0.318821302 -1.329658317 3.355482915 0.622179231 -0.219309849 0.492362522
7 8 9 10 11 12
1.120847727 -2.600159409 0.815723717 -1.179206602 -2.003523096 2.225944847
13 14 15 16 17 18
1.944418528 2.101980331 -0.177708526 -2.331382376 -2.917405743 -0.667140236
19 20 21 22 23 24
-0.973596995 1.987479224 -0.255997620 -0.265385092 1.817375711 -0.944140091
25 26 27 28 29 30
1.899985405 -0.001963328 1.028005379 -4.188344031 0.843900482 -0.412835686
31 32 33 34 35 36
-1.489716807 1.845872066 -2.563126203 0.024431186 -2.495232512 -0.757793692
37 38 39 40 41 42
2.645748932 -0.627006899 1.891963477 0.838600642 3.240642878 -0.043017748
       43       44           45          46           47           48
-1.998486011 2.518834654 -2.370852257 1.983021019 -1.162755388 -0.686229669
        49       50
-0.607433313 0.343427925

让我们看另一个例子:

示例

 在线演示

x2<-rpois(100,5)
x2

输出

[1]  8 2 6 5 4 4 4 4 2 3 5 5 4 10 3 2 3 5 5 8 9 8 3 6 4
[26] 5 3 2 5 6 5 2 6 8 3 9 11 2 4 4 8 2 8 1 3 2 5 8 2 6
[51] 7 4 3 4 6 2 3 2 8 4 9 4 8 3 6 4 8 9 10 4 9 9 2 7 10
[76] 8 6 7 5 6 1 2 8 8 9 10 5 1 7 3 3 1 7 2 6 2 3 4 2 7

示例

 在线演示

y2<-rpois(100,10)
y2

输出

[1] 12 4 13 12 9 7 12 7 14 12 8 6 6 15 10 12 8 14 9 11 8 6 9 7 15
[26] 7 12 15 9 7 13 11 5 2 9 11 8 17 8 15 7 12 7 11 6 12 12 8 12 8
[51] 10 6 7 7 5 9 14 9 9 17 12 12 9 10 5 11 18 9 13 7 13 10 9 11 11
[76] 12 9 8 5 9 5 7 14 10 6 10 9 10 13 11 11 9 10 6 8 16 8 8 6 6

Model2<-lm(y2~x2)

使用模型对象Model2查找残差:

示例

Difference2<-residuals(Model2)
Difference2

输出

       1        2       3            4           5          6
3.34416495 4.13956424 -0.06503647 1.93496353 2.24186460 -1.16733682
        7       8           9         10        11          12
-0.75813540 4.24186460 3.62806246 -2.16733682 0.54876566 -0.16733682
      13       14         15           16        17       18
-3.96273611 0.24186460 3.73036282 3.03726389 -2.65583505 0.24186460
      19       20          21           22        23        24
-3.75813540 0.24186460 0.13956424 0.44646531 -0.65583505 -5.16733682
    25          26         27           28        29        30
-0.75813540 3.03726389 -0.75813540 -4.75813540 2.13956424 1.52576211
    31          32         33          34           35         36
-1.75813540 1.03726389 -6.16733682 -2.16733682 -6.26963718 -1.55353469
      37        38         39         40            41         42
2.34416495 -1.16733682 -1.06503647 -2.96273611 -2.86043576 -3.75813540
     43         44           45         46         47             48
-0.96273611 -0.47423789 -1.55353469 -3.86043576 1.44646531 2.03726389
     49         50           51      52          53           54
1.73036282 0.24186460 -2.96273611 2.34416495 -0.96273611 -0.16733682
     55        56           57        58           59          60
1.03726389 -0.06503647 -2.16733682 1.24186460 -4.96273611 0.13956424
     61          62        63            64          65         66
-2.86043576 -0.65583505 -0.86043576 -1.06503647 -0.06503647 0.24186460
       67     68         69          70          71           72
1.13956424 0.13956424 1.24186460 -2.06503647 1.93496353 0.93496353
      73       74         75         76         77            78
0.34416495 -4.96273611 1.24186460 -5.06503647 -0.75813540 3.93496353
      79        80         81        82             83         84
4.83266318 -1.65583505 7.03726389 4.93496353 6.73036282 2.03726389
       85        86         87         88        89        90
-3.96273611 1.13956424 3.83266318 1.34416495 -2.06503647 -2.86043576
      91        92       93           94         95         96
9.13956424 2.93496353 -0.16733682 -0.26963718 -0.96273611 0.03726389
    97        98             99 100
3.24186460 2.13956424 -3.16733682 -0.86043576

均匀分布数据的示例:

示例

 在线演示

x3<-round(runif(50,2,5))
x3

输出

[1] 3 5 2 2 4 4 4 2 3 4 4 4 3 4 3 4 4 3 2 5 5 2 3 5 4 4 3 5 3 5 3 3 3 5 4 3 4 5
[39] 5 4 3 4 5 3 5 3 3 3 5 2

示例

 在线演示

y3<-round(runif(50,2,10))
y3

输出

[1] 5 5 2 2 8 9 8 4 7 6 6 7 3 4 5 3 5 5 7 9 10 10 6 3 4
[26] 2 6 4 3 10 7 6 8 8 9 8 7 5 3 2 9 3 8 3 9 5 3 3 2 4

Model3<-lm(y3~x3)

使用模型对象Model3查找残差:

示例

Difference3<-residuals(Model3)
Difference3

输出

       1 2 3 4 5 6
-1.09603340 -0.13883090 -4.05323591 2.86116910 0.90396660 -3.18162839
 7 8 9 10 11 12
-0.05323591 -3.13883090 -1.13883090 -1.13883090 2.90396660 2.86116910
13 14 15 16 17 18
1.86116910 -1.13883090 -2.09603340 0.86116910 -0.09603340 -1.13883090
19 20 21 22 23 24
-0.05323591 1.86116910 -0.13883090 0.90396660 2.81837161 -2.13883090
25 26 27 28 29 30
 -1.13883090 0.90396660 2.81837161 -0.09603340 2.81837161 -0.09603340
31 32 33 34 35 36
-0.13883090 -1.05323591 -2.09603340 3.86116910 1.86116910 2.86116910
37 38 39 40 41 42
2.90396660 1.86116910 1.90396660 -3.09603340 0.90396660 -4.18162839
43 44 45 46 47 48
-2.18162839 2.94676409 -4.09603340 -4.18162839 -2.05323591 2.90396660
49 50
 1.90396660 -3.13883090

更新于:2020年10月10日

224 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告