Вывод обобщенной линейной модели через texreg

Я могу использовать texreg, чтобы получить красивый вывод glm, который будет использоваться для knitr. Иногда нам нужно преобразовать вывод glm обратно в ответ, используя обратную ссылку. Интересно, как получить обратную ссылку с texreg. Что-то вроде texreg(exp(glm.D93)).

counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
d.AD <- data.frame(treatment, outcome, counts)
glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())

library(texreg)
texreg(glm.D93)

который производит

\begin{table}
\begin{center}
\begin{tabular}{l c }
\hline
               & Model 1 \\
\hline
(Intercept)    & $3.04^{***}$ \\
               & $(0.17)$     \\
outcome2       & $-0.45^{*}$  \\
               & $(0.20)$     \\
outcome3       & $-0.29$      \\
               & $(0.19)$     \\
treatment2     & $0.00$       \\
               & $(0.20)$     \\
treatment3     & $0.00$       \\
               & $(0.20)$     \\
\hline
AIC            & 56.76        \\
BIC            & 57.75        \\
Log Likelihood & -23.38       \\
Deviance       & 5.13         \\
Num. obs.      & 9            \\
\hline
\multicolumn{2}{l}{\scriptsize{$^{***}p<0.001$, $^{**}p<0.01$, $^*p<0.05$}}
\end{tabular}
\caption{Statistical models}
\label{table:coefficients}
\end{center}
\end{table}

Но texreg(exp(glm.D93)) говорят

Error in exp(glm.D93) : non-numeric argument to mathematical function

Отредактировано

glm использует некоторую link функцию и предоставляет коэффициенты, стандартные ошибки и доверительные интервалы на шкале ссылок. Но иногда нам также нужны коэффициенты, стандартные ошибки и доверительные интервалы в шкале ответов. texreg напрямую предоставляет коэффициенты, стандартные ошибки и доверительные интервалы по шкале ссылок. Интересно, можно ли получить коэффициенты, стандартные ошибки и доверительные интервалы на шкале отклика напрямую.

Я нашел способ сделать это с помощью stargazer, но стандартные ошибки и доверительные интервалы неверны. Ищу решение этого.

library(stargazer)

stargazer(glm.D93, coef=list(exp(glm.D93$coefficients)), type="text")

=============================================
                      Dependent variable:    
                  ---------------------------
                            counts           
---------------------------------------------
outcome2                   0.635***          
                            (0.202)          

outcome3                   0.746***          
                            (0.193)          

treatment2                 1.000***          
                            (0.200)          

treatment3                 1.000***          
                            (0.200)          

Constant                   21.000***         
                            (0.171)          

---------------------------------------------
Observations                   9             
Log Likelihood              -23.381          
Akaike Inf. Crit.           56.761           
=============================================
Note:             *p<0.1; **p<0.05; ***p<0.01

person MYaseen208    schedule 16.07.2015    source источник
comment
Что именно вы подразумеваете под выводом обратной ссылки? glm.D93 - это подогнанный объект модели, поэтому вы не можете просто взять exp() его. Вы хотели изменить все значения коэффициентов? Какой желаемый результат?   -  person MrFlick    schedule 16.07.2015
comment
glm использует некоторую link функцию и предоставляет коэффициенты, стандартные ошибки и доверительные интервалы на шкале ссылок. Но иногда нам также нужны коэффициенты, стандартные ошибки и доверительные интервалы на шкале ответов. texreg напрямую предоставляет коэффициенты, стандартные ошибки и доверительные интервалы по шкале ссылок. Интересно, можно ли получить коэффициенты, стандартные ошибки и доверительные интервалы на шкале ответов напрямую.   -  person MYaseen208    schedule 16.07.2015
comment
Вот решение.   -  person MYaseen208    schedule 16.07.2015


Ответы (1)


Либо используйте для этого аргументы переопределения, либо управляйте промежуточным объектом texreg:

# solution 1
tr <- extract(glm.D93)
texreg(glm.D93, override.coef = exp(tr@coef), override.se = exp(tr@se))

# solution 2
tr <- extract(glm.D93)
tr@coef <- exp(tr@coef)
tr@se <- exp(tr@se)
texreg(tr)

Или извлеките значения непосредственно из объекта модели или его сводки (если вы не хотите использовать функцию извлечения texreg) и передайте возведенные в степень значения аргументам переопределения.

Любое из этих решений дает следующий результат (вместе с screenreg):

==========================
                Model 1   
--------------------------
(Intercept)      21.00 ***
                 (1.19)   
outcome2          0.63 *  
                 (1.22)   
outcome3          0.75    
                 (1.21)   
treatment2        1.00    
                 (1.22)   
treatment3        1.00    
                 (1.22)   
--------------------------
AIC              56.76    
BIC              57.75    
Log Likelihood  -23.38    
Deviance          5.13    
Num. obs.         9       
==========================
*** p < 0.001, ** p < 0.01, * p < 0.05
person Philip Leifeld    schedule 02.08.2015
comment
Я не уверен, что вам следует возводить здесь p-значения в степень. Разве p-значение для теста не должно быть одинаковым для шкалы отношения шансов и шкалы логарифмических шансов? - person Seth; 01.08.2016
comment
Совершенно верно. Извините за оплошность. Я отредактировал свой ответ. - person Philip Leifeld; 02.08.2016