方差Inflation分组回归结果的因素检验
Variance Inflation Factors test on grouped regression results
我有一个数据框中多个股票的多个财务变量的数据集,例如 ROA、ROE。我 运行 针对这些变量对每只股票进行回归,但我 运行 按组进行回归以防止多次调用 lm()
我使用以下代码:
df_fit <- dataset.for.reg %>% group_by(ticker) %>%
do(fiitedmod = lm(ROA ~ SIZE + LEV + TANG + DPO, data = .))
df_coef <- tidy(df_fit, fiitedmod)
在这种情况下,我没有 class lm
的对象,如何使用 car
包中的 vif()
函数?我别无选择,只能在 lm
上使用循环或多次调用 lm()
吗?
下面的示例数据
mydata <- "num,ticker,ROA,SIZE,LEV,TANG,DPO
1,ARL,1,2,9,2,6
2,ARL,2,3,12,3,6
3,ARL,3,9,7,1,7
4,ARL,4,7,6,4,8
5,ARL,12,5,8,5,10
6,ARL,9,4,11,6,4
7,ARL,11,12,10,7,5
8,ARL,6,6,5,8,9
9,ARL,10,8,4,9,11
10,ARL,5,1,3,10,3
11,ARL,8,11,2,12,2
12,ARL,7,10,1,11,1
13,NHM,22,24,19,23,13
14,NHM,24,19,13,24,16
15,NHM,23,18,14,13,14
16,NHM,20,13,15,14,12
17,NHM,19,15,16,15,15
18,NHM,21,17,17,16,15
19,NHM,17,16,18,17,15
20,NHM,16,14,20,19,15
21,NHM,13,20,21,18,15
22,NHM,15,22,22,20,15
23,NHM,14,21,23,21,15
24,NHM,18,23,24,22,15
25,MUR,36,29,36,33,17
26,MUR,35,28,33,35,18
27,MUR,33,27,30,32,22
28,MUR,26,35,35,30,20
29,MUR,25,25,34,34,20
30,MUR,31,26,31,36,20
31,MUR,34,36,32,31,21
32,MUR,32,30,29,29,21
33,MUR,30,31,28,28,19
34,MUR,27,32,27,26,19
35,MUR,28,34,25,27,21
36,MUR,29,33,26,25,21
37,NED,47,43,48,39,31
38,NED,39,44,47,40,29
39,NED,37,45,46,41,28
40,NED,38,46,45,42,30
41,NED,41,48,44,43,32
42,NED,42,37,43,44,33
43,NED,44,41,42,45,11
44,NED,45,47,41,46,23
45,NED,43,39,40,47,24
46,NED,40,40,39,48,25
47,NED,48,42,37,37,26
48,NED,46,38,38,38,27
49,SHP,53,54,59,50,35
50,SHP,55,55,58,51,36
51,SHP,54,57,57,52,37
52,SHP,51,51,56,53,38
53,SHP,60,59,51,54,39
54,SHP,59,60,54,55,40
55,SHP,58,58,53,57,41
56,SHP,50,49,52,56,43
57,SHP,49,52,49,58,45
58,SHP,57,50,50,59,44
59,SHP,56,56,55,60,42
60,NPK,65,71,61,65,46
61,NPK,62,61,69,63,52
62,NPK,69,64,63,61,51
63,NPK,67,65,60,62,53
64,NPK,72,67,64,64,47
65,NPK,71,68,66,67,48
66,NPK,68,69,70,66,49
67,NPK,66,66,71,70,50
68,NPK,70,63,68,68,53
69,NPK,61,62,67,71,53
70,NPK,63,72,65,72,53
71,NPK,64,70,62,69,53
72,ACL,82,81,73,80,57
73,ACL,81,82,72,74,55
74,ACL,84,79,76,82,54
75,ACL,80,78,74,77,56
76,ACL,74,75,75,76,56
77,ACL,77,76,77,83,56
78,ACL,79,73,78,78,56
79,ACL,73,84,79,84,56
80,ACL,78,74,80,79,56
81,ACL,76,83,81,81,56
82,ACL,75,80,83,75,56
83,ACL,83,77,82,73,56
84,CLS,85,95,87,87,67
85,CLS,86,96,89,89,68
86,CLS,87,85,88,88,52
87,CLS,96,86,94,90,58
88,CLS,95,88,91,91,59
89,CLS,93,87,93,92,60
90,CLS,94,89,95,93,61
91,CLS,91,90,92,94,62
92,CLS,89,91,90,95,63
93,CLS,92,92,86,96,64
94,CLS,90,93,85,85,65
95,CLS,88,94,84,86,66"
dataset.for.reg <- read.table(text = mydata, sep = ",", header = TRUE)
我想我会将答案正式化
lapply(df_fit[[2]],vif)
我有一个数据框中多个股票的多个财务变量的数据集,例如 ROA、ROE。我 运行 针对这些变量对每只股票进行回归,但我 运行 按组进行回归以防止多次调用 lm()
我使用以下代码:
df_fit <- dataset.for.reg %>% group_by(ticker) %>%
do(fiitedmod = lm(ROA ~ SIZE + LEV + TANG + DPO, data = .))
df_coef <- tidy(df_fit, fiitedmod)
在这种情况下,我没有 class lm
的对象,如何使用 car
包中的 vif()
函数?我别无选择,只能在 lm
上使用循环或多次调用 lm()
吗?
下面的示例数据
mydata <- "num,ticker,ROA,SIZE,LEV,TANG,DPO
1,ARL,1,2,9,2,6
2,ARL,2,3,12,3,6
3,ARL,3,9,7,1,7
4,ARL,4,7,6,4,8
5,ARL,12,5,8,5,10
6,ARL,9,4,11,6,4
7,ARL,11,12,10,7,5
8,ARL,6,6,5,8,9
9,ARL,10,8,4,9,11
10,ARL,5,1,3,10,3
11,ARL,8,11,2,12,2
12,ARL,7,10,1,11,1
13,NHM,22,24,19,23,13
14,NHM,24,19,13,24,16
15,NHM,23,18,14,13,14
16,NHM,20,13,15,14,12
17,NHM,19,15,16,15,15
18,NHM,21,17,17,16,15
19,NHM,17,16,18,17,15
20,NHM,16,14,20,19,15
21,NHM,13,20,21,18,15
22,NHM,15,22,22,20,15
23,NHM,14,21,23,21,15
24,NHM,18,23,24,22,15
25,MUR,36,29,36,33,17
26,MUR,35,28,33,35,18
27,MUR,33,27,30,32,22
28,MUR,26,35,35,30,20
29,MUR,25,25,34,34,20
30,MUR,31,26,31,36,20
31,MUR,34,36,32,31,21
32,MUR,32,30,29,29,21
33,MUR,30,31,28,28,19
34,MUR,27,32,27,26,19
35,MUR,28,34,25,27,21
36,MUR,29,33,26,25,21
37,NED,47,43,48,39,31
38,NED,39,44,47,40,29
39,NED,37,45,46,41,28
40,NED,38,46,45,42,30
41,NED,41,48,44,43,32
42,NED,42,37,43,44,33
43,NED,44,41,42,45,11
44,NED,45,47,41,46,23
45,NED,43,39,40,47,24
46,NED,40,40,39,48,25
47,NED,48,42,37,37,26
48,NED,46,38,38,38,27
49,SHP,53,54,59,50,35
50,SHP,55,55,58,51,36
51,SHP,54,57,57,52,37
52,SHP,51,51,56,53,38
53,SHP,60,59,51,54,39
54,SHP,59,60,54,55,40
55,SHP,58,58,53,57,41
56,SHP,50,49,52,56,43
57,SHP,49,52,49,58,45
58,SHP,57,50,50,59,44
59,SHP,56,56,55,60,42
60,NPK,65,71,61,65,46
61,NPK,62,61,69,63,52
62,NPK,69,64,63,61,51
63,NPK,67,65,60,62,53
64,NPK,72,67,64,64,47
65,NPK,71,68,66,67,48
66,NPK,68,69,70,66,49
67,NPK,66,66,71,70,50
68,NPK,70,63,68,68,53
69,NPK,61,62,67,71,53
70,NPK,63,72,65,72,53
71,NPK,64,70,62,69,53
72,ACL,82,81,73,80,57
73,ACL,81,82,72,74,55
74,ACL,84,79,76,82,54
75,ACL,80,78,74,77,56
76,ACL,74,75,75,76,56
77,ACL,77,76,77,83,56
78,ACL,79,73,78,78,56
79,ACL,73,84,79,84,56
80,ACL,78,74,80,79,56
81,ACL,76,83,81,81,56
82,ACL,75,80,83,75,56
83,ACL,83,77,82,73,56
84,CLS,85,95,87,87,67
85,CLS,86,96,89,89,68
86,CLS,87,85,88,88,52
87,CLS,96,86,94,90,58
88,CLS,95,88,91,91,59
89,CLS,93,87,93,92,60
90,CLS,94,89,95,93,61
91,CLS,91,90,92,94,62
92,CLS,89,91,90,95,63
93,CLS,92,92,86,96,64
94,CLS,90,93,85,85,65
95,CLS,88,94,84,86,66"
dataset.for.reg <- read.table(text = mydata, sep = ",", header = TRUE)
我想我会将答案正式化
lapply(df_fit[[2]],vif)