Сортировка вывода xtable() по p-значению из сводки модели glm

Я моделирую множество данных для разных компаний, и для каждой компании мне нужно быстро определить наиболее значимые параметры модели. То, что я хотел бы видеть, это xtable() вывод для подобранной модели, которая сортирует все коэффициенты в порядке возрастания p-значения (т. е. сначала наиболее значимые параметры).

x <- data.frame(a=rnorm(100), b=runif(100), c=rnorm(100), e=rnorm(100))
fit <- glm(a ~ ., data=x)
xtable(fit)

Я предполагаю, что смогу добиться чего-то подобного, поработав со структурой объекта fit. Но я недостаточно знаком со структурой, чтобы уверенно что-то менять.

Предложения?


person Brandon Bertelsen    schedule 06.02.2012    source источник
comment
str() — ваш друг, когда вы хотите проверить объект R. :-)   -  person chl    schedule 07.02.2012


Ответы (1)


Не обязательно самое элегантное решение, но оно должно сработать:

data(birthwt, package="MASS")
glm.res <- glm(low ~ ., data=birthwt[,-10])
idx <- order(coef(summary(glm.res))[,4])  # sort out the p-values
out <- coef(summary(glm.res))[idx,]       # reorder coef, SE, etc. by increasing p
library(xtable)
xtable(out)

введите здесь описание изображения

person chl    schedule 06.02.2012
comment
Кажется достаточно прямым. Правильно использует функции экстрактора. Что не нравится? - person IRTFM; 07.02.2012
comment
Делает именно то, что я хочу. Спасибо гл. - person Brandon Bertelsen; 07.02.2012