Дисперсионный коэффициент факторов инфляции на сгруппированных результатах регрессии - PullRequest
0 голосов
/ 02 октября 2019

У меня есть набор данных из нескольких финансовых переменных, таких как 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)

Как использовать функцию vif() изпакет car в такой ситуации, когда у меня нет объекта класса lm? У меня нет выбора, кроме как использовать цикл на 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)
...