В настоящее время я работаю над регрессионной моделью, в которой у меня есть только категориальные / факторные переменные в качестве независимых переменных. Моя зависимая переменная является логит-преобразованным коэффициентом.
Довольно просто запустить нормальную регрессию в R, так как R автоматически знает, как кодировать манекены, как только они имеют тип «фактор». Однако этот тип кодирования также подразумевает, что одна категория из каждой переменной используется в качестве базовой линии, что затрудняет интерпретацию.
Мой профессор сказал мне просто использовать кодирование эффектов вместо (-1 или 1), поскольку это подразумевает использование большого среднего для перехвата.
Кто-нибудь знает, как с этим справиться?
До сих пор я пытался:
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
Каспер Кристенсен
источник
источник
Ответы:
В принципе, существует два типа кодирования контраста, с помощью которых перехват будет оценивать Великое среднее значение. Это суммы контрастов и повторяющиеся контрасты (скользящие различия).
Вот пример набора данных:
Условия означает:
Великое среднее
Вы можете указать тип контрастного кодирования с
contrasts
параметром вlm
.Сумма контрастов
Перехват - это Великое Среднее. Первый наклон - это разница между уровнем первого фактора и средним значением. Второй наклон - это разница между вторым уровнем фактора и Великим средним.
Повторные контрасты
Функция создания повторяющихся контрастов является частью
MASS
пакета.Перехват - это Великое Среднее. Склоны указывают на различия между последовательными уровнями факторов (2 против 1, 3 против 2).
источник
Неприметное замечание: если ваш профессор сказал вам кодировать переменные
(-1, 1)
, он сказал бы вам использовать кодирование эффектов , а не размеры эффектов . В любом случае, @ user20650 прав. Как обычно, на сайте справки по статистике UCLA есть полезная страница, объясняющая, как это сделать с помощью R.источник