Предположим, я сравнил две модели вложенных случайных эффектов, используя anova()
, и результат ниже:
new.model: new
current.model: new
Df AIC BIC logLik Chisq Chi Df Pr(>Chisq)
new.model 8 299196 299259 -149590
current.model 9 299083 299154 -149533 115.19 1 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Я хотел бы использовать только табличную часть (см. ниже):
Df AIC BIC logLik Chisq Chi Df Pr(>Chisq)
new.model 8 299196 299259 -149590
current.model 9 299083 299154 -149533 115.19 1 < 2.2e-16 ***
Я знаю, что могу избавиться от части заголовка (см. удар), установив для заголовка значение null, используя атрибуты (anova.object)$heading = NULL, но я не знаю, как избавиться от нижней части: Signif . коды: .....
new.model: new
current.model: new
Я принципиально не хочу использовать data.frame (см. ниже), поскольку он изменяет пустые ячейки на NA.
data.frame(anova(new.model, current.model))
Df AIC BIC logLik Chisq Chi.Df Pr..Chisq.
new.model 8 299196.4 299258.9 -149590.2 NA NA NA
current.model 9 299083.2 299153.6 -149532.6 115.1851 1 7.168247e-27
Интересно, знаете ли вы, ребята, способ справиться с этой ситуацией.
[ОБНОВЛЕНИЕ]: в итоге я написал обертку, используя print.anova:
anova.print = function(object, signif.stars = TRUE, heading = TRUE){
if(!heading)
attributes(object)$heading = NULL
print.anova(object, signif.stars = signif.stars)
}
Пример:
dv = c(rnorm(20), rnorm(20, mean=2), rnorm(20))
iv = factor(rep(letters[1:3], each=20))
anova.object = anova(lm(dv~iv))
Analysis of Variance Table
Response: dv
Df Sum Sq Mean Sq F value Pr(>F)
iv 2 46.360 23.1798 29.534 1.578e-09 ***
Residuals 57 44.737 0.7849
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
anova.print(anova.object, F, F)
Df Sum Sq Mean Sq F value Pr(>F)
iv 2 46.360 23.1798 29.534 1.578e-09
Residuals 57 44.737 0.7849
options(show.signif.stars=FALSE)
помогает? (Было бы неплохо, если бы вы могли привести воспроизводимый пример...) - person Ben Bolker   schedule 17.05.2012