Como fazer as correções de eventos raros descritas em King e Zeng (2001)?

8

Eu tenho um conjunto de dados com uma variável de resposta binária (sobrevivência) e três variáveis ​​explicativas ( A= 3 níveis, B= 3 níveis, C= 6 níveis). Nesse conjunto de dados, os dados são bem equilibrados, com 100 indivíduos por ABCcategoria. Eu já estudou o efeito destes A, Be Cvariáveis com este conjunto de dados; seus efeitos são significativos.

Eu tenho um subconjunto. Em cada ABCcategoria, 25 dos 100 indivíduos, dos quais aproximadamente metade estão vivos e metade estão mortos (quando menos de 12 estão vivos ou mortos, o número foi completado com a outra categoria), foram investigados para uma quarta variável ( D). Eu vejo três problemas aqui:

  1. Preciso ponderar os dados das correções de eventos raros descritos em King e Zeng (2001) para levar em conta que aproximadamente 50% - 50% não é igual à proporção de 0/1 na amostra maior.
  2. Essa amostragem não aleatória de 0 e 1 leva a uma probabilidade diferente de os indivíduos serem amostrados em cada uma das ABCcategorias, então acho que tenho que usar proporções verdadeiras de cada categoria em vez da proporção global de 0/1 na grande amostra .
  3. Essa quarta variável possui 4 níveis, e os dados realmente não são balanceados nesses 4 níveis (90% dos dados estão dentro de 1 desses níveis, por exemplo, nível D2).

Li o artigo de King e Zeng (2001) com atenção, bem como essa questão do currículo que me levou ao artigo de King e Zeng (2001), e mais tarde essa outra que me levou a experimentar o logistfpacote (uso R). Tentei aplicar o que entendi de King e Zheng (2001), mas não sei ao certo o que fiz. Eu entendi, existem dois métodos:

  • Para o método de correção anterior, entendi que você só corrige a interceptação. No meu caso, a interceptação é a A1B1C1categoria e, nessa categoria, a sobrevivência é de 100%; portanto, a sobrevivência no grande conjunto de dados e no subconjunto é a mesma e, portanto, a correção não muda nada. Suspeito que esse método não deva se aplicar a mim, porque não tenho uma proporção verdadeira geral, mas uma proporção para cada categoria, e esse método ignora isso.
  • Para o método de ponderação: calculei w i , e pelo que entendi no artigo: "Todos os pesquisadores precisam fazer é calcular w i na Eq. (8), escolha-a como o peso em seu programa de computador e execute um modelo de logit ". Então, eu primeiro executei o meu glmcomo:

    glm(R~ A+B+C+D, weights=wi, data=subdata, family=binomial)
    

    Não tenho certeza se devo incluir A, Be Ccomo variáveis ​​explicativas, uma vez que normalmente espero que elas não tenham efeito sobre a sobrevivência nesta subamostra (cada categoria contém cerca de 50% de mortos e vivos). De qualquer forma, não deve alterar muito a saída se não forem significativas. Com essa correção, eu me encaixo bem no nível D2(o nível com a maioria dos indivíduos), mas de maneira alguma nos outros níveis de D( D2preponderados). Veja o gráfico superior direito:

Encaixa Serve para um glmmodelo não ponderado e para um glmmodelo ponderado com w i . Cada ponto representa uma categoria. Proportion in the big dataseté a proporção real de 1 na ABCcategoria no grande conjunto de dados, Proportion in the sub dataseté a proporção real de 1 na ABCcategoria no subdataset e Model predictionssão as previsões de glmmodelos equipados com o subdataset. Cada pchsímbolo representa um determinado nível de D. Triângulos são nivelados D2.

Só mais tarde, ao ver que existe um logistf, acho que talvez isso não seja tão simples. Não tenho certeza agora. Ao fazer isso logistf(R~ A+B+C+D, weights=wi, data=subdata, family=binomial), recebo estimativas, mas a função de previsão não funciona e o teste padrão do modelo retorna valores infinitos de chi ao quadrado (exceto um) e todos os valores de p = 0 (exceto 1).

Questões:

  • Eu entendi corretamente King e Zeng (2001)? (A que distância estou do entendimento?)
  • Em meus glmataques, A, B, e Cter efeitos significativos. Tudo isso significa que eu me afasto muito das proporções meia / meia de 0 e 1 no meu subconjunto e de maneira diferente nas diferentes ABCcategorias - não é mesmo?
  • Posso aplicar a correção de ponderação de King e Zeng (2001), apesar de eu ter um valor de tau e um valor de para cada categoria em vez de valores globais?y¯ABC
  • É um problema que minha Dvariável seja tão desequilibrada e, se for, como posso lidar com isso? (Considerando que já terei que ponderar pela correção de eventos raros ... É possível "dupla ponderação", ou seja, ponderar os pesos?) Obrigado!

Editar : veja o que acontece se eu remover A, B e C dos modelos. Eu não entendo por que existem tais diferenças.

Fits2 Se encaixa sem A, B e C como variáveis ​​explicativas nos modelos

Aurelie
fonte

Respostas:

2

A logistf() função não implementa regressão logística de eventos raros, feita pela relogit() função no pacote Zelig, no CRAN. Você deveria testar esse!

kjetil b halvorsen
fonte
Ok, dei uma olhada e não posso usar relogit (), porque, como eu disse, tenho um valor de tau para cada categoria ABC, em vez de um valor global, e essa função não me permite inserir um vetor do mesmo comprimento do meu conjunto de dados que tau. Pelo que entendi sobre como a função é escrita, acho que o que é feito está certo (exceto que eu não fiz a parte mais avançada da correção de viés ...).
21414 Aurelie
2

Percebi que minhas comparações de proporções ajustadas e reais no primeiro gráfico, no canto superior direito, não são a melhor maneira de avaliar o ajuste do modelo, pois no big data eu posso calcular proporções para categorias ABC, mas com o modelo ajustado onde todas as quatro variáveis ​​estão incluídas, proporções são previstas para cada categoria ABCD.

Eu instalei um novo modelo nos subdados, onde removi D:

glm(R~A+B+C, family=binomial, data=subdata)

Para que eu possa comparar as previsões desse modelo ajustadas ao subdataset, e as proporções reais no grande conjunto de dados, e avaliar se minha ponderação faz o que eu espero que ela faça.

O resultado é:

fits3 Previsões do novo modelo em relação às proporções no grande conjunto de dados.

Agora acho que a resposta é: sim, definitivamente.

τy¯

As duas outras perguntas foram:

  • Por que é tão importante incluir A, B e C no modelo para obter um bom ajuste e por que seu efeito é significativo. É devido, como sugeri, ao fato de eu me afastar muito das proporções meia / meia de 0 e 1 no meu subconjunto e de maneira diferente nas diferentes categorias ABC?

    -> Eu acho que minha expectativa de que incluir A + B + C no modelo não tenha efeito porque todas as categorias ABC devem conter aproximadamente metade de 0 e 1 observação seria verdadeira com um modelo linear não ponderado (na verdade, quando você compara meus dois gráficos de canto superior esquerdo, não há muita diferença entre eles ... mas ainda assim, B e C têm um efeito significativo nesse modelo linear não ponderado. Considerarei isso porque a saída do 50 / 50), mas não necessariamente com um modelo linear ponderado.

  • É um problema que minha variável D seja tão desequilibrada e, se for, como posso lidar com isso? ("Ponderação dupla", isto é, ponderação dos pesos, é possível?).

    -> Penso em usar a função Anova da 'car'biblioteca para uma regressão logística (especificando 'test.statistic="LR"'). Nesse caso, a função pesa as células diretamente para criar SS tipo II, para que eu possa manter a 'weight'opção para a correção de eventos raros.

Aurelie
fonte
Acabei de ver esta pergunta do CV que sugere que o uso da função Anova da biblioteca de carros com o teste LR não está adaptado. Vou ler atentamente este link do CV para encontrar respostas.
Aurelie
Eu investiguei mais profundamente a função 'logistf', porque parece que ela contém o método que os modelos de teste ponderados significam significância. Os coeficientes que obtenho com a função 'logistf' são muito próximos dos coeficientes que obtenho com o 'glm' (ao voltar a transformar em proporções ímpares e plotar, recebo ax = y line).
Aurelie
Assim, embora não exista um método para obter as previsões e os valores ajustados de 'logistf', o gráfico dos valores ajustados de 'logistf' seria muito parecido com o último gráfico que eu forneci (o ajuste é bom).
Aurelie