如何在 R 中找到回归模型的高杠杆值?


要找到回归模型的高杠杆值,我们首先需要找到预测值或帽子值,可以使用 hatvalues 函数找到,然后定义高杠杆的条件并提取它们。例如,如果我们有一个回归模型,例如 M,则可以使用命令 hatvalues(M) 找到帽子值,现在要找到大于 0.05 的高杠杆值,可以使用以下代码:

which(hatvalues(M)>0.05)

示例 1

考虑以下数据框:

 现场演示

x1<-c(100,rnorm(20))
y1<-c(100,rnorm(20))
df1<-data.frame(x1,y1)
df1

输出

      x1               y1
1   100.000000000 1.000000e+02
2   0.719522993   2.605494e-01
3   1.090771537  -1.865098e-04
4  -1.011001579  -8.651429e-01
5   0.371659744  -4.091896e-01
6  -1.604978659   2.156159e-01
7   0.062783668   3.888361e-01
8  -1.039950551  -1.191512e+00
9   0.221366328  -3.761471e-01
10 -1.034533695  -1.374490e+00
11  0.802379399   2.332555e+00
12 -0.005172285   8.169747e-01
13  2.082001055  -8.485883e-01
14  1.078353650   1.659481e+00
15  1.493539847   1.546731e+00
16 -0.504001706  -6.429116e-01
17 -0.251490099  -1.853292e-01
18  0.802616056  -1.794599e+00
19  0.333122883   8.486888e-02
20  1.284447868   4.464472e-01
21 -0.158662245   6.892470e-01

在 x1 和 y1 之间创建回归模型:

Model1<-lm(y1~x1,data=df1)

使用 Model1 查找帽子值:

hatvalues(Model1)
      1         2          3         4          5         6          7
0.99823012 0.04953700 0.04921783 0.05140777 0.04986241 0.05219527 0.05017270
      8         9          10        11         12         13       14
0.05144442 0.05001088 0.05143755 0.04946325 0.05024367 0.04850787 0.04922804
      15       16          17        18         19          20      21
0.04890439 0.05079436 0.05050904 0.04946304 0.04990002 0.04906284 0.05040753

通过考虑大于 0.05 的值来查找高杠杆值:

which(hatvalues(Model1)>0.05)
1 4 6 7 8 9 10 12 16 17 21
1 4 6 7 8 9 10 12 16 17 21

示例 2

 现场演示

x2<-rpois(20,5)
y2<-rpois(20,1)
df2<-data.frame(x2,y2)
df2

输出

   x2 y2
1  3  2
2  4  1
3  7  0
4  6  0
5  6  0
6  6  1
7  2  3
8  7  1
9  3  2
10 5  0
11 6  1
12 6  0
13 3  0
14 5  1
15 6  0
16 5  0
17 9  1
18 3  0
19 5  0
20 3  4

在 x2 和 y2 之间创建回归模型:

Model2<-lm(y2~x2,data=df2)

使用 Model2 查找帽子值:

hatvalues(Model2)
       1         2         3         4          5          6         7
0.11666667 0.06666667 0.11666667 0.06666667 0.06666667 0.06666667 0.20000000
       8         9        10         11         12         13       14
0.11666667 0.11666667 0.05000000 0.06666667 0.06666667 0.11666667 0.05000000
      15        16         17        18         19          20
0.06666667 0.05000000 0.31666667 0.11666667 0.05000000 0.11666667

通过考虑大于 0.05 的值来查找高杠杆值:

which(hatvalues(Model2)>0.08)
1 3 7 8 9 13 17 18 20
1 3 7 8 9 13 17 18 20

更新于: 2021 年 3 月 6 日

2K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告