Estoy tratando de realizar una regresión múltiple en R
. Sin embargo, mi variable dependiente tiene la siguiente gráfica:
Aquí hay una matriz de diagrama de dispersión con todas mis variables ( WAR
es la variable dependiente):
Sé que necesito realizar una transformación en esta variable (¿y posiblemente las variables independientes?) Pero no estoy seguro de la transformación exacta requerida. ¿Alguien me puede apuntar en la dirección correcta? Me complace proporcionar cualquier información adicional sobre la relación entre las variables independientes y dependientes.
Los gráficos de diagnóstico de mi regresión son los siguientes:
EDITAR
Después de transformar las variables dependientes e independientes usando las transformaciones de Yeo-Johnson, las gráficas de diagnóstico se ven así:
Si uso un GLM con un enlace de registro, los gráficos de diagnóstico son:
R
con el comandopairs(my.data, lower.panel = panel.smooth)
dondemy.data
estaría su conjunto de datos.lm
boxcox(my.lm.model)
MASS
Respuestas:
El libro de John Fox, Un compañero de R para la regresión aplicada, es un excelente recurso para el modelado de regresión aplicada
R
. El paquetecar
que utilizo en esta respuesta es el paquete que lo acompaña. El libro también tiene como sitio web con capítulos adicionales.Transformando la respuesta (también conocida como variable dependiente, resultado)
R
lm
boxCox
car
family="yjPower"
Esto produce una trama como la siguiente:
Para transformar su variable dependiente ahora, use la función
yjPower
delcar
paquete:lambda
boxCox
Importante: en lugar de simplemente transformar por transformación la variable dependiente, debe considerar ajustar un GLM con un enlace de registro. Aquí hay algunas referencias que proporcionan más información: primero , segundo , tercero . Para hacer esto
R
, useglm
:donde
y
es su variable dependiente yx1
,x2
etc. , son sus variables independientes.Transformaciones de predictores.
Las transformaciones de predictores estrictamente positivos pueden estimarse por la máxima probabilidad después de la transformación de la variable dependiente. Para hacerlo, use la función
boxTidwell
delcar
paquete (para ver el documento original, consulte aquí ). Usarlo como que:boxTidwell(y~x1+x2, other.x=~x3+x4)
. Lo importante aquí es que esa opciónother.x
indica los términos de la regresión que no se deben transformar. Estas serían todas sus variables categóricas. La función produce una salida de la siguiente forma:income
income
Otra publicación muy interesante en el sitio sobre la transformación de las variables independientes es esta .
Desventajas de las transformaciones
Modelado de relaciones no lineales
Dos métodos bastante flexibles para ajustar relaciones no lineales son polinomios fraccionales y splines . Estos tres documentos ofrecen una muy buena introducción a ambos métodos: primero , segundo y tercero . También hay un libro completo sobre polinomios fraccionales y
R
. ElR
paquetemfp
implementa polinomios fraccionales multivariables. Esta presentación puede ser informativa con respecto a los polinomios fraccionales. Para ajustar las splines, puede usar la funcióngam
(modelos aditivos generalizados, vea aquí una excelente introducción conR
) del paquetemgcv
o las funcionesns
(splines cúbicas naturales) ybs
(splines B cúbicas) del paquetesplines
(vea aquí un ejemplo del uso de estas funciones). Usandogam
puede especificar qué predictores desea ajustar usando splines usando las()
función:aquí,
x1
se ajustaría usando una spline yx2
linealmente como en una regresión lineal normal Dentrogam
puede especificar la familia de distribución y la función de enlace como englm
. Así que para ajustarse a un modelo con una función logarítmica de enlace, se puede especificar la opciónfamily=gaussian(link="log")
degam
que englm
.Echa un vistazo a esta publicación del sitio.
fuente
mgcv
paquete ygam
. Si eso no ayuda, tengo miedo. Aquí hay personas que tienen mucha más experiencia que yo y tal vez puedan darle más consejos. Tampoco conozco el béisbol. Quizás haya un modelo más lógico que tenga sentido con estos datos.Debe contarnos más sobre la naturaleza de su variable de respuesta (resultado, dependiente). Desde su primer gráfico, está fuertemente sesgado positivamente con muchos valores cercanos a cero y algunos negativos. A partir de eso, es posible, pero no inevitable, que la transformación lo ayude, pero la pregunta más importante es si la transformación acercaría sus datos a una relación lineal.
Tenga en cuenta que los valores negativos para la respuesta descartan la transformación logarítmica directa, pero no logaritmo (respuesta + constante), y no un modelo lineal generalizado con enlace logarítmico.
Hay muchas respuestas en este sitio sobre el registro (respuesta + constante), que divide a las personas estadísticas: a algunas personas no les gusta que sean ad hoc y difíciles de trabajar, mientras que otras lo consideran un dispositivo legítimo.
Todavía es posible un GLM con enlace de registro.
Alternativamente, puede ser que su modelo refleje algún tipo de proceso mixto, en cuyo caso un modelo personalizado que refleje el proceso de generación de datos más de cerca sería una buena idea.
(MÁS TARDE)
El OP tiene una variable dependiente WAR con valores que oscilan aproximadamente entre 100 y -2. Para superar los problemas con la toma de logaritmos de cero o valores negativos, OP propone una combinación de ceros y negativos a 0.000001. Ahora en una escala logarítmica (base 10) esos valores varían desde aproximadamente 2 (100 más o menos) hasta -6 (0.000001). La minoría de puntos falsificados en una escala logarítmica son ahora una minoría de valores atípicos masivos. Trace log_10 (WAR fudged) contra cualquier otra cosa para ver esto.
fuente