Estou tentando executar uma regressão múltipla em R
. No entanto, minha variável dependente tem o seguinte gráfico:
Aqui está uma matriz de dispersão com todas as minhas variáveis ( WAR
é a variável dependente):
Eu sei que preciso executar uma transformação nessa variável (e possivelmente nas variáveis independentes?), Mas não tenho certeza da transformação exata necessária. Alguém pode me apontar na direção certa? Fico feliz em fornecer informações adicionais sobre o relacionamento entre as variáveis independentes e dependentes.
Os gráficos de diagnóstico da minha regressão têm a seguinte aparência:
EDITAR
Depois de transformar as variáveis dependentes e independentes usando as transformações de Yeo-Johnson, os gráficos de diagnóstico são assim:
Se eu usar um GLM com um link de log, os gráficos de diagnóstico são:
R
com o comandopairs(my.data, lower.panel = panel.smooth)
ondemy.data
estaria o seu conjunto de dados.lm
boxcox(my.lm.model)
MASS
Respostas:
O livro de John Fox Um companheiro R para regressão aplicada é um excelente recurso na modelagem de regressão aplicada com
R
. O pacotecar
que utilizo nesta resposta é o pacote que o acompanha. O livro também tem como site com capítulos adicionais.Transformando a resposta (aka variável dependente, resultado)
R
lm
boxCox
car
family="yjPower"
Isso produz um gráfico como o seguinte:
Para transformar sua variável dependente agora, use a função
yjPower
docar
pacote:lambda
boxCox
Importante: Em vez de apenas transformar a variável dependente em log, considere ajustar um GLM com um link de log. Aqui estão algumas referências que fornecem informações adicionais: primeiro , segundo , terceiro . Para fazer isso
R
, useglm
:onde
y
é a variável dependente ex1
,x2
etc. são as suas variáveis independentes.Transformações de preditores
As transformações de preditores estritamente positivos podem ser estimadas pela máxima probabilidade após a transformação da variável dependente. Para fazer isso, use a função
boxTidwell
dacar
embalagem (para o documento original, veja aqui ). Use-o assim:boxTidwell(y~x1+x2, other.x=~x3+x4)
. O importante aqui é que a opçãoother.x
indica os termos da regressão que não devem ser transformados. Essas seriam todas as suas variáveis categóricas. A função produz uma saída do seguinte formato:income
income
Outro post muito interessante no site sobre a transformação das variáveis independentes é este .
Desvantagens das transformações
Modelando relacionamentos não lineares
Dois métodos bastante flexíveis para ajustar relações não lineares são polinômios fracionários e splines . Esses três artigos oferecem uma introdução muito boa aos dois métodos: primeiro , segundo e terceiro . Há também um livro inteiro sobre polinômios fracionários e
R
. OR
pacotemfp
implementa polinômios fracionários multivariáveis. Esta apresentação pode ser informativa sobre polinômios fracionários. Para ajustar splines, você pode usar a funçãogam
(modelos aditivos generalizados, consulte aqui uma excelente introduçãoR
) do pacotemgcv
ou das funçõesns
(splines cúbicos naturais) ebs
(splines B cúbicos) do pacotesplines
(veja aqui um exemplo do uso dessas funções). Usandogam
você pode especificar quais preditores você deseja ajustar usando splines usando as()
função:aqui,
x1
seria ajustado usando um spline ex2
linearmente como em uma regressão linear normal. Dentro,gam
você pode especificar a família de distribuição e a função de link como emglm
. Então, para ajustar um modelo com uma função de log-link, você pode especificar a opçãofamily=gaussian(link="log")
emgam
como emglm
.Dê uma olhada neste post do site.
fonte
mgcv
pacote egam
. Se isso não ajudar, estou com medo. Existem pessoas aqui que são muito mais experientes do que eu e talvez possam lhe dar mais conselhos. Também não tenho conhecimento de beisebol. Talvez haja um modelo mais lógico que faça sentido com esses dados.Você deve nos dizer mais sobre a natureza da sua variável de resposta (resultado, dependente). Desde o seu primeiro gráfico, ele é fortemente inclinado positivamente, com muitos valores próximos de zero e alguns negativos. A partir disso, é possível, mas não inevitável, que a transformação o ajude, mas a questão mais importante é se a transformação aproximaria seus dados de um relacionamento linear.
Observe que os valores negativos para a resposta excluem a transformação logarítmica direta, mas não o log (resposta + constante), e não um modelo linear generalizado com link logarítmico.
Existem muitas respostas neste site discutindo o log (resposta + constante), que divide as pessoas estatísticas: algumas pessoas não gostam dele como sendo ad hoc e difícil de trabalhar, enquanto outras o consideram um dispositivo legítimo.
Um GLM com link de log ainda é possível.
Como alternativa, pode ser que o seu modelo reflita algum tipo de processo misto; nesse caso, um modelo personalizado que reflita o processo de geração de dados mais de perto seria uma boa idéia.
(MAIS TARDE)
O OP tem uma variável dependente WAR com valores que variam aproximadamente de 100 a -2. Para superar os problemas de obtenção de logaritmos de valores nulos ou negativos, o OP propõe um desvio de zeros e negativos para 0,000001. Agora, em uma escala logarítmica (base 10), esses valores variam de cerca de 2 (100 ou mais) a -6 (0,000001). A minoria de pontos falsos em escala logarítmica é agora uma minoria de valores discrepantes em massa. Plote log_10 (WAR falsificado) contra qualquer outra coisa para ver isso.
fonte