Actualmente estoy trabajando en un modelo de regresión donde solo tengo variables categóricas / factoriales como variables independientes. Mi variable dependiente es una relación transformada logit.
Es bastante fácil ejecutar una regresión normal en R, ya que R sabe automáticamente cómo codificar dummies tan pronto como son del tipo "factor". Sin embargo, este tipo de codificación también implica que una categoría de cada variable se utiliza como línea de base, lo que dificulta su interpretación.
Mi profesor me ha dicho que solo use la codificación de efectos en su lugar (-1 o 1), ya que esto implica el uso de la gran media para la intercepción.
¿Alguien sabe cómo manejar eso?
Hasta ahora he intentado:
gm <- mean(tapply(ds$ln.crea, ds$month, mean))
model <- lm(ln.crea ~ month + month*month + year + year*year, data = ds, contrasts = list(gm = contr.sum))
Call:
lm(formula = ln.crea ~ month + month * month + year + year *
year, data = ds, contrasts = list(gm = contr.sum))
Residuals:
Min 1Q Median 3Q Max
-0.89483 -0.19239 -0.03651 0.14955 0.89671
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.244493 0.204502 -15.865 <2e-16 ***
monthFeb -0.124035 0.144604 -0.858 0.3928
monthMar -0.365223 0.144604 -2.526 0.0129 *
monthApr -0.240314 0.144604 -1.662 0.0993 .
monthMay -0.109138 0.144604 -0.755 0.4520
monthJun -0.350185 0.144604 -2.422 0.0170 *
monthJul 0.050518 0.144604 0.349 0.7275
monthAug -0.206436 0.144604 -1.428 0.1562
monthSep -0.134197 0.142327 -0.943 0.3478
monthOct -0.178182 0.142327 -1.252 0.2132
monthNov -0.119126 0.142327 -0.837 0.4044
monthDec -0.147681 0.142327 -1.038 0.3017
year1999 0.482988 0.200196 2.413 0.0174 *
year2000 -0.018540 0.200196 -0.093 0.9264
year2001 -0.166511 0.200196 -0.832 0.4073
year2002 -0.056698 0.200196 -0.283 0.7775
year2003 -0.173219 0.200196 -0.865 0.3887
year2004 0.013831 0.200196 0.069 0.9450
year2005 0.007362 0.200196 0.037 0.9707
year2006 -0.281472 0.200196 -1.406 0.1625
year2007 -0.266659 0.200196 -1.332 0.1855
year2008 -0.248883 0.200196 -1.243 0.2164
year2009 -0.153083 0.200196 -0.765 0.4461
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.3391 on 113 degrees of freedom
Multiple R-squared: 0.3626, Adjusted R-squared: 0.2385
F-statistic: 2.922 on 22 and 113 DF, p-value: 0.0001131
r
regression
categorical-data
categorical-encoding
Kasper Christensen
fuente
fuente
Respuestas:
En principio, hay dos tipos de codificación de contraste, con los cuales la intersección estimará la Gran Media. Estos son contrastes de suma y contrastes repetidos (diferencias deslizantes).
Aquí hay un conjunto de datos de ejemplo:
Las condiciones significan:
La gran media:
Puede especificar el tipo de codificación de contraste con el
contrasts
parámetro enlm
.Suma contrastes
La intersección es la gran media. La primera pendiente es la diferencia entre el primer nivel de factor y la Gran Media. La segunda pendiente es la diferencia entre el segundo nivel de factor y la Gran Media.
Contrastes repetidos
La función para crear contrastes repetidos es parte del
MASS
paquete.La intersección es la gran media. Las pendientes identifican las diferencias entre los niveles de factores consecutivos (2 vs. 1, 3 vs. 2).
fuente
Nitpicking: si tu profesor te dijo que codificaras tus variables
(-1, 1)
, te dijo que usaras la codificación de efectos , no los tamaños de efectos . En cualquier caso, @ user20650 tiene razón. Como de costumbre, el sitio web de ayuda de estadísticas de UCLA tiene una página útil que explica cómo hacer esto con R.fuente