Atualmente, estou trabalhando em um modelo de regressão em que tenho apenas variáveis categóricas / fatoriais como variáveis independentes. Minha variável dependente é uma proporção transformada em logit.
É bastante fácil apenas executar uma regressão normal em R, pois R sabe automaticamente como codificar manequins assim que eles são do tipo "fator". No entanto, esse tipo de codificação também implica que uma categoria de cada variável seja usada como linha de base, dificultando a interpretação.
Meu professor me disse para usar apenas a codificação de efeitos (-1 ou 1), pois isso implica o uso da média geral para a interceptação.
Alguém sabe como lidar com isso?
Até agora eu tentei:
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
fonte
fonte
Respostas:
Em princípio, existem dois tipos de codificação de contraste, com os quais a interceptação estimará a Grande Média. Estes são contrastes de soma e contrastes repetidos (diferenças deslizantes).
Aqui está um exemplo de conjunto de dados:
As condições »significam:
A Grande Média:
Você pode especificar o tipo de contraste de codificação com o
contrasts
parâmetrolm
.Soma contrastes
A interceptação é a grande média. A primeira inclinação é a diferença entre o primeiro nível de fator e a Grande Média. A segunda inclinação é a diferença entre o segundo nível de fator e a Grande Média.
Contrastes repetidos
A função para criar contrastes repetidos faz parte do
MASS
pacote.A interceptação é a grande média. As inclinações indicam as diferenças entre os níveis de fatores consecutivos (2 vs. 1, 3 vs. 2).
fonte
Nitpicking: se seu professor lhe disse para codificar suas variáveis
(-1, 1)
, ele lhe disse para usar codificação de efeitos , não tamanhos de efeito . De qualquer forma, @ user20650 está certo. Como sempre, o site de ajuda de estatísticas da UCLA tem uma página útil que explica como fazer isso com R.fonte