[R-br] Ajuda na interpretando dos coeficientes de glmnet

Pedro Emmanuel Alvarenga Americano do Brasil emmanuel.brasil em gmail.com
Qui Fev 18 17:04:35 -02 2021


Saudações amigos de R,

Depois de muito tempo sem interagir na lista venho pedir uma luz. Estou
tentando montar um modelo de previsão penalizado. Eu já tinha usado no
passado remoto o pacote glmpath que regulariza/penaliza modelos glm.
Recentemente me deparei com a função glmnet - glmnetUtils - que faz o mesmo
trabalho de forma mais automatizada, inclusive com validação cruzada já
implementada. Porém, ao olhar a saída do modelo fiquei com dúvidas. Fui
olhar a bibliografia original do pacote e não adiantou muito. Acho que é
uma expectativa equivocada de minha parte que está me impedindo de entender
corretamente.

Então ajustei o seguinte modelo:

cva.glmnet(hav ~ ano_nasc_trunc60 + idade + indicacao_outras + sexo, data =
bi[setD,],alpha = seq(0, 1, len = 11), family="binomial", nfolds = 1000,
grouped = FALSE, trace.it = TRUE, outerParallel = makeCluster(4))

(Inntercept)
                                   113.55782297
ano_nasc_trunc60
                                   -0.05781642
idade
                                   0.04359743
indicacao_outrasViajante
                                   -0.85226169
indicacao_outrasOTHER
                                  -0.53550446
indicacao_outrasHIV/AIDS
                                    0.49319132
indicacao_outrasAsplenia anatômica ou funcional e doenças relacionadas
(anemia falciforme, talassemia maior)   .
indicacao_outrasPneumopatias crônicas (DPOC, Bronquiectasia, Asma etc)
                                    .
indicacao_outrasCandidatos a transplante de órgão sólido
                                    0.13338936
indicacao_outrasCardiopatias crônicas
                                  -0.05086300
indicacao_outrasHepatopatias crônicas, Cirrose e portadores de HCV
                                    .
indicacao_outrasComunicantes domiciliares de imunodeprimidos
                                   -0.24283444
indicacao_outrasImunodeficiência/Imunodepressão outras (adquirida ou
congênita)                                .
indicacao_outrasImunodepressão terapêutica ou devido ao câncer
                                    0.15478292
indicacao_outrasNão informado
                                  -0.18649749
indicacao_outrasNefropatias crônicas/hemodialisados/sindrome nefrótica
                                    .
indicacao_outrasProfissional de saúde
                                  -0.51745839
indicacao_outrasTransplante de órgão sólido
                                   .
sexoFeminino
                                    0.03089234
sexoMasculino
                                  -0.01749610

Reparem que há dois coeficientes para o sexo, um pra masculino e outro para
Feminino. Eu esperaria que houvesse somente 1, sendo que a referencia (no
caso o masculino) não apareceria ou deveria ser zero. A mesma dúvida no
preditor indicação, onde a categoria Viajantes deveria ser a referência e
eu não esperaria que esta aparecesse ou fosse zero. É claro que as
categorias são mutuamente exclusivas, então quando um está presente, ou
outro necessariamente é zero. Mas no glm, até a minha memória vai, o efeito
de uma categoria deveria ser o efeito adicional ao efeito da referência
quando a categoria está presente, mas na saída como está não consigo fazer
esta interpretação. Alguem pode me dar uma luz de como interpretar
corretamente ester aspecto?

Em análises alternativas eu explorei interações e faz sentido que a idade
tivesse efeitos diferentes para diferentes anos de nascimento, sendo que
efeitos não lineares não foram detectados. Quando faço um ajuste com
interação a saída fica ainda mais esquisita

cva.glmnet(hav ~
ano_nasc_trunc60+idade+indicacao_outras+sexo+ano_nasc_trunc60*idade, data =
bi[setD,],alpha = seq(0, 1, len = 11), family="binomial", nfolds = 1000,
grouped = FALSE, trace.it = TRUE, outerParallel = makeCluster(4))

(Intercept)
                                  1.056153e+02
ano_nasc_trunc60
                                  -2.736619e-02
idade
                                  1.656760e-02
indicacao_outrasViajante
                                  -8.345313e-01
indicacao_outrasOTHER
                                 -4.632827e-01
indicacao_outrasHIV/AIDS
                                   4.927235e-01
indicacao_outrasAsplenia anatômica ou funcional e doenças relacionadas
(anemia falciforme, talassemia maior)  .
indicacao_outrasPneumopatias crônicas (DPOC, Bronquiectasia, Asma etc)
                                   .
indicacao_outrasCandidatos a transplante de órgão sólido
                                   1.358595e-01
indicacao_outrasCardiopatias crônicas
                                  .
indicacao_outrasHepatopatias crônicas, Cirrose e portadores de HCV
                                   .
indicacao_outrasComunicantes domiciliares de imunodeprimidos
                                  -2.076846e-01
indicacao_outrasImunodeficiência/Imunodepressão outras (adquirida ou
congênita)                               .
indicacao_outrasImunodepressão terapêutica ou devido ao câncer
                                   1.432945e-01
indicacao_outrasNão informado
                                 -1.616079e-01
indicacao_outrasNefropatias crônicas/hemodialisados/sindrome nefrótica
                                   .
indicacao_outrasProfissional de saúde
                                 -4.942054e-01
indicacao_outrasTransplante de órgão sólido
                                  .
sexoFeminino
                                   3.024890e-02
sexoMasculino
                                 -1.611223e-02
ano_nasc_trunc60
                                  -2.651105e-02
idade
                                  1.603003e-02
ano_nasc_trunc60:idade
                                   7.512202e-06

Reparem que agora, além do sexo, o ano de nascimento e a idade têm cada
uma, além do coeficiente da interação, dois coeficientes diferentes de
zero, quando eu esperava que houvesse somente o coeficiente da interação.
Talvez entendendo os porques da primeira questão eu consiga achar o porque
da segunda. Se puderem indicar alguma leitura, eu agradeço.

Olhando o desempenho do ajuste com e sem a interação, a discriminação é bem
pareceida, mas a calibração é um tanto melhor no ajuste com a interação.

Abraços fraternos a todos.

Pedro Brasil
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20210218/0fdfee22/attachment.html>


Mais detalhes sobre a lista de discussão R-br