Вот пример регрессии Пуассона:
## from ?glm:
d.AD <- data.frame(counts=c(18,17,15,20,10,20,25,13,12),
outcome=gl(3,1,9),
treatment=gl(3,3))
glm.D93 <- glm(counts ~ outcome + treatment,data = d.AD, family=poisson())
Теперь определите функцию для соответствия модели только для перехвата с таким же откликом, семейством и т. Д., Вычислите сводную статистику и объедините ее в таблицу (матрицу). Формула .~1
в приведенной ниже команде update
означает «переоборудование модели с той же переменной отклика [обозначенной точкой на LHS тильды], но только с членом-перехватчиком [обозначенным 1
на RHS тильды] "
glmsumfun <- function(model) {
glm0 <- update(model,.~1) ## refit with intercept only
## apply built-in logLik (log-likelihood), AIC,
## BIC (Bayesian/Schwarz Information Criterion) functions
## to models with and without intercept ('model' and 'glm0');
## combine the results in a two-column matrix with appropriate
## row and column names
matrix(c(logLik(glm.D93),BIC(glm.D93),AIC(glm.D93),
logLik(glm0),BIC(glm0),AIC(glm0)),ncol=2,
dimnames=list(c("logLik","SC","AIC"),c("full","intercept_only")))
}
Теперь примените функцию:
glmsumfun(glm.D93)
Результаты:
full intercept_only
logLik -23.38066 -26.10681
SC 57.74744 54.41085
AIC 56.76132 54.21362
РЕДАКТИРОВАТЬ :
anova(glm.D93,test="Chisq")
дает последовательный анализ таблицы отклонений, содержащей df, отклонение (= -2 log правдоподобие), остаточный df, остаточное отклонение и тест отношения правдоподобия (критерий хи-квадрат) р -значение.
drop1(glm.D93)
дает таблицу со значениями AIC (df, отклонения и т. Д.) Для каждого однократного удаления; drop1(glm.D93,test="Chisq")
дополнительно дает тест LRT p значение.