фильтр lm коэффициент суммарная модель - PullRequest
1 голос
/ 25 мая 2020

Как вы фильтруете сводку коэффициентов?

model = lm(x ~ a + b + c + d + e, data=ds)
ss <- coef(summary(model3))
df.coef <- as.data.frame( coef(summary(model)) )
filter(df.coef, Pr(>|t|) < 0.05)  

Ошибка: неожиданно '>' in "filter (df.coef, Pr (>" `

Ответы [ 2 ]

1 голос
/ 25 мая 2020

Ваш ss представляет собой матрицу, которую вы можете подгруппировать следующим образом:

model <- lm(mpg ~ hp + am + gear, mtcars)
ss <- coef(summary(model))
ss[ss[,"Pr(>|t|)"] < .05,]
#                Estimate  Std. Error   t value     Pr(>|t|)
# (Intercept) 23.18636779 3.898968754  5.946795 2.111900e-06
# hp          -0.05973668 0.007925368 -7.537401 3.283912e-08
# am           3.95611932 1.777326184  2.225883 3.424800e-02

Соответственно, после принуждения к кадру данных

df.coef <- as.data.frame(ss)

вы должны сделать:

df.coef[df.coef$`Pr(>|t|)` < .05,]
#                Estimate  Std. Error   t value     Pr(>|t|)
# (Intercept) 23.18636779 3.898968754  5.946795 2.111900e-06
# hp          -0.05973668 0.007925368 -7.537401 3.283912e-08
# am           3.95611932 1.777326184  2.225883 3.424800e-02

Примечание: gear исключается из результата, поскольку его значение p выше 0,05.

0 голосов
/ 25 мая 2020

Чтобы использовать filter, вам нужно преобразовать таблицу во фрейм данных и заключить имя столбца в обратные галочки:

mod <- lm(y ~ x, data = data.frame(x = 1:10, y = 1:10 + rnorm(10)))

summary(mod)$coefficients %>% 
as.data.frame() %>% 
filter(`Pr(>|t|)` < 0.05)
#>    Estimate Std. Error t value     Pr(>|t|)
#> 1 0.9862634 0.07084972 13.9205 6.866089e-07
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...