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 paquete car
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"
boxCox(my.regression.model, family="yjPower", plotit = TRUE)
Esto produce una trama como la siguiente:
λλ
Para transformar su variable dependiente ahora, use la función yjPower
del car
paquete:
depvar.transformed <- yjPower(my.dependent.variable, lambda)
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
, use glm
:
glm.mod <- glm(y~x1+x2, family=gaussian(link="log"))
donde y
es su variable dependiente y x1
, 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
del car
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ón other.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:
boxTidwell(prestige ~ income + education, other.x=~ type + poly(women, 2), data=Prestige)
Score Statistic p-value MLE of lambda
income -4.482406 0.0000074 -0.3476283
education 0.216991 0.8282154 1.2538274
income
λincome
ingresosn e w= 1 / ingresoo l d--------√
Otra publicación muy interesante en el sitio sobre la transformación de las variables independientes es esta .
Desventajas de las transformaciones
1 / y√λλ
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
. El R
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ón gam
(modelos aditivos generalizados, vea aquí una excelente introducción con R
) del paquetemgcv
o las funcionesns
(splines cúbicas naturales) y bs
(splines B cúbicas) del paquete splines
(vea aquí un ejemplo del uso de estas funciones). Usando gam
puede especificar qué predictores desea ajustar usando splines usando la s()
función:
my.gam <- gam(y~s(x1) + x2, family=gaussian())
aquí, x1
se ajustaría usando una spline y x2
linealmente como en una regresión lineal normal Dentro gam
puede especificar la familia de distribución y la función de enlace como en glm
. Así que para ajustarse a un modelo con una función logarítmica de enlace, se puede especificar la opción family=gaussian(link="log")
de gam
que en glm
.
Echa un vistazo a esta publicación del sitio.