Я преподаю класс моделирования в R. Все студенты являются пользователями SAS, и я должен создать материалы курса, которые точно соответствуют (когда это возможно) результатам SAS. Я работаю над разделом регрессии Пуассона и пытаюсь сопоставить PROC GENMOD с опцией "dscale", которая изменяет индекс дисперсии так, чтобы отклонение / df == 1.
Достаточно легко сделать, но мне нужны доверительные интервалы. Я хотел бы показать студентам, как это сделать, не рассчитывая их вручную. Что-то похожее на confint_default()
или confint()
Данные
skin_cancer <- data.frame(CASES=c(1,16,30,71,102,130,133,40,4,38,
119,221,259,310,226,65),
CITY=c(rep(0,8),rep(1,8)),
N=c(172875, 123065,96216,92051,72159,54722,
32185,8328,181343,146207,121374,111353,
83004,55932,29007,7583),
agegp=c(1:8,1:8))
skin_cancer$ln_n = log(skin_cancer$N)
Модель
fit <- glm(CASES ~ CITY, family="poisson", offset=ln_n, data=skin_cancer)
Изменение индекса дисперсии
summary(fit, dispersion= deviance(fit) / df.residual(fit)))
Это дает мне "правильные" стандартные ошибки (исправить в соответствии с SAS ...). Но, очевидно, я не могу запустить confint()
на summary()
объекте.
Есть идеи? Бонусные баллы, если вы можете сказать мне, как изменить индекс дисперсии в модели, чтобы мне не приходилось делать это при вызове summary()
.
Спасибо.