Obecnie pracuję nad modelem regresji, w którym jako zmienne niezależne mam tylko zmienne kategorialne / czynnikowe. Moja zmienna zależna to stosunek przekształcony logit.
Całkiem łatwo jest uruchomić normalną regresję w R, ponieważ R automatycznie wie, jak zakodować manekiny, gdy tylko będą miały typ „czynnik”. Jednak ten rodzaj kodowania oznacza również, że jedna kategoria z każdej zmiennej jest używana jako punkt odniesienia, co utrudnia interpretację.
Mój profesor powiedział mi, żebym zamiast tego użył kodowania efektów (-1 lub 1), ponieważ oznacza to użycie wielkiej średniej do przechwytywania.
Czy ktoś wie, jak sobie z tym poradzić?
Do tej pory próbowałem:
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
źródło
źródło
Odpowiedzi:
Zasadniczo istnieją dwa rodzaje kodowania kontrastowego, za pomocą których przecięcie oszacuje Wielką średnią. Są to kontrasty sumy i powtórzenia kontrastów (różnice ślizgowe).
Oto przykładowy zestaw danych:
Warunki ”oznaczają:
Wielki środek:
Możesz określić rodzaj kodowania kontrastu za pomocą
contrasts
parametru wlm
.Suma kontrastów
Punktem przecięcia jest Grand Mean. Pierwsze nachylenie jest różnicą między pierwszym poziomem czynnika a Wielką średnią. Drugie nachylenie jest różnicą między poziomem drugiego czynnika a Wielką średnią.
Powtarzające się kontrasty
Funkcja tworzenia powtarzających się kontrastów jest częścią
MASS
pakietu.Punktem przecięcia jest Grand Mean. Nachylenia unieważniają różnice między kolejnymi poziomami czynników (2 vs. 1, 3 vs. 2).
źródło
Nitpicking: jeśli twój profesor kazał ci kodować zmienne
(-1, 1)
, powiedział ci, abyś używał kodowania efektów , a nie rozmiarów efektów . W każdym razie @ user20650 ma rację. Jak zwykle strona pomocy statystyk UCLA ma przydatną stronę, na której wyjaśniono, jak to zrobić za pomocą R.źródło