Posso usar uma variável que tenha uma relação não linear com a variável dependente na regressão logística?


9

Digamos que estou construindo um modelo de regressão logística em que a variável dependente é binária e pode assumir os valores ou . Seja as variáveis ​​independentes - existem variáveis ​​independentes. Digamos que para a ésima variável independente, a análise bivariada mostra uma tendência em forma de U - ou seja, se eu agrupar em posições cada uma contendo um número aproximadamente igual de observações e calcular a 'taxa ruim' para cada posição - # observações em que y = 0 / total de observações em cada caixa - então recebo uma curva em U.1 x 1 , x 2 , . . . , x m m k x k 2001x1,x2,...,xmmkxk20

Minhas perguntas são:

  1. Posso usar diretamente como entrada ao estimar os parâmetros beta? Há alguma suposição estatística violada que possa causar erro significativo na estimativa dos parâmetros?xk
  2. É necessário 'linearizar' essa variável por meio de uma transformação (log, quadrado, produto consigo mesmo, etc.)?

3
é um dos preditores que você deseja incluir no modelo? Parece que você está dizendo que é uma função em forma de de . Uma curva em forma de U geralmente pode ser bem aproximada por uma função quadrática (especialmente perto do vale) - você considerou incluir um termo linear e quadrático nessa variável no modelo? P ( Y = 1 ) X kXkP(Y=1)Xk
Macro

@ Macro obrigado pela sua sugestão. Eu vi alguns modeladores ajustando uma função linear por partes (assumindo uma forma aguda de U) - onde cada linha é estimada a partir dos dados com as quebras determinadas visualmente e, em seguida, a saída da equação linear é fornecida como uma entrada para a regressão logística. Eu não sou um grande fã da abordagem.
Mozan Sykol 17/07/12

Respostas:


12

Você gostaria de usar uma formulação flexível que capturasse a não linearidade automaticamente, por exemplo, alguma versão de um modelo aditivo generalizado . A escolha de um homem pobre é um polinômio , , ..., , mas esses polinômios produzem oscilações terríveis no final do intervalo de suas respectivas variáveis. Uma formulação muito melhor seria usar splines B (cúbicos) (veja uma nota de introdução aleatória da primeira página do Google aqui e um bom livro aqui ). B-splines são uma sequência de carrocerias locais:x 2 k x p k kxkxk2xkpk

http://ars.sciencedirect.com/content/image/1-s2.0-S0169743911002292-gr2.jpg

A altura dos corpos é determinada a partir da sua regressão (linear, logística, outros GLM), pois a função que você está ajustando é simplesmente

θ=β0 0+k=1KβkB(x-xkhk)

para a forma funcional especificada da sua corcunda . De longe, a versão mais popular é um spline cúbico suave em forma de sino:B()

B(z)={14(z+2)3,-2z-114(3|x|3-6x2+4),-1<x<114(2-x)3,1x20 0,de outra forma

No lado da implementação, tudo o que você precisa fazer é configurar 3-5-10 - qualquer número de nós seria razoável para seu aplicativo e criar as correspondentes 3-5-10 - quaisquer variáveis ​​no conjunto de dados com os valores de . Normalmente, é escolhida uma grade simples de valores, com tendo o dobro do tamanho da malha da grade, de modo que, em cada ponto, haja dois splines B sobrepostos, como no gráfico acima.xkB(x-xkhk)hk


2
Como você pode dizer que ele precisa de algo tão complicado? Certamente, um termo quadrático em um x covariável que parece ter essa forma poderia ser incorporado no modelo de regressão logística da maneira que o OP parece querer.
22912 Michael Michael Chernick

1
@MichaelChernick Sim, aceitei a resposta, pois ela me ensinou um novo conceito, mas provavelmente não precisarei de uma solução tão complicada.
Mozan Sykol 17/07/2012

3
@ Michael Esse é um ponto importante. Sou encorajado, no entanto, por um comentário do OP mencionando um procedimento de ajuste linear ad hoc por partes. Splining funciona no mesmo espírito, mas com maior flexibilidade e rigor. Termos quadráticos podem funcionar, mas isso parece esperar muito.
whuber

Parece-me mais uma constante por partes: o valor médio da resposta dentro de uma lixeira é equivalente à regressão na variável / indicador fictício dessa lixeira, e isso é constante por partes ... @MichaelChernick: geralmente não há como dizer, mas eu ainda estou para ver uma aplicação em que splines B seriam inferiores ao ajuste polinomial.
Stask

@StasK Se inferior significa que ele não se ajusta aos dados também, acho que um tamanho pequeno de amostra favoreceria um polinômio simples.
Michael R. Chernick 19/07

5

Assim como a regressão linear, é necessário que a regressão logística e os modelos lineares mais generalizados sejam lineares nos parâmetros, mas não necessariamente nas covariáveis. Termos polinomiais como um quadrático que Macro sugere podem ser usados. Este é um mal-entendido comum do termo linear em modelos lineares generalizados. Modelos não lineares são modelos não lineares nos parâmetros. Se o modelo é linear nos parâmetros e contém termos de ruído aditivo que são IID, o modelo é linear mesmo se houver covariáveis ​​como X log X ou exp (X). Enquanto eu leio a pergunta, parece que ela foi editada. Minha resposta específica seria sim para 1 e não necessário para 2.2


1

Outra alternativa viável que a oficina de modelagem pela qual trabalho rotineiramente emprega é restringir as variáveis ​​independentes contínuas e substituir a "taxa ruim". Isso força um relacionamento linear.


Eu também vi isso. Como você escolhe as caixas?
Adam Ryczkowski

1
Há uma variedade de métodos de discretização que você pode usar. R tem o discopacote. Criei meu próprio algoritmo que divide recursivamente uma variável contínua com base no valor da informação. Coloquei-o em um pacote R aqui: github.com/Zelazny7/binnr (trabalho em andamento!). Eu também substituiria o peso da evidência em vez da média. Quando combinado com a regressão do LASSO, os resultados são fantásticos!
Zelazny7

Obrigado! Você pode comparar o binnralgoritmo com os CRAN's smbinning?
Adam Ryczkowski

'binnr' está escrito em C e é muito rápido. Ele também suporta condições do mundo real, como substituir valores e monotonicidade. É possível dizer ao 'binnr' que faça apenas cortes discretos quando as taxas ruins forem monotônicas. 'smbinning' usa árvores de inferência condicional que, na minha experiência, levam muito tempo em conjuntos de dados de tamanho decente, porque eles dependem de permutações. 'binnr' também permite que você interativamente fazer ajustes para as caixas com uma interface de linha de comando
Zelazny7

Você o usou na produção? Você está ciente de algum erro oculto ou de canto não verificado? Penso em usá-lo para um grande cliente e terei apenas 1 dia para testá-lo antes de aplicar seu código.
Adam Ryczkowski
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.