2016-08-23 1 views
-3

Я заметил, что при использовании фиктивного кодирования для установки моих линейных моделей R исключает определенные параметры при формировании матричной модели. Каков алгоритм R для этого?Что такое R-алгоритм для матричной модели машинного кода?

+1

Может быть, начать с чтения о 'contrasts' аргумент'? Лм ', что приведет к'? model.matrix', а также документации в '' contr.treatment'. Возможно, книга по теории линейной модели может быть в порядке, так как в документации предполагается, что у вас есть базовое понимание математики. – joran

+0

@joran Я считаю, что понимаю контраст и кодирование. Манекен-кодирование - всего лишь способ группировки коэффициентов в уравнении регрессии, но неясно, как R делает выбор группировки, поскольку выбор группы не уникален. Для простых случаев я понимаю контрасты по умолчанию, но для сложных случаев мое понимание, похоже, разваливается. –

+0

Тогда я подозреваю, что документация, о которой я говорил, должна быть достаточной. Значения по умолчанию показаны в параметрах («контрасты») '. – joran

ответ

1

Это не хорошо документирована, но она восходит к тому, что поворотное алгоритм, лежащий в основе кода LAPACK использует:

из source code of lm.fit:

z <- .Call(C_Cdqrls, x, y, tol, FALSE) 
... 
coef <- z$coefficients 
pivot <- z$pivot 
... 
r2 <- if(z$rank < p) (z$rank+1L):p else integer() 
if (is.matrix(y)) { 
    .... 
} else { 
    coef[r2] <- NA 
    ## avoid copy 
    if(z$pivoted) coef[pivot] <- coef 
    ... 
} 

Если вы хотите, чтобы вырыть назад дальше, необходимо посмотреть в dqrdc2.f, в котором говорится (для чего это стоит):

c dqrdc2 использует преобразования домовладельцев в compu te qr
c факторизация матрицы n на p x. ограниченная колонка
c стратегия поворота на основе 2-норм приведенных столбцов
c перемещает столбцы с нулевой нормой к правому краю
c матрицей x. эта стратегия означает, что последовательный
Эффекты степени свободы могут быть вычислены естественным образом.

На практике я вообще обнаружил, что R устраняет последний (крайний правый столбец) из набора коллинеарных предикторов ...

+0

Спасибо. Я думаю, вы говорите о линейно зависимых столбцах при выполнении QR-факторизации. Я говорю о стадии формирования модельной матрицы. Эти две стадии решают проблему линейной зависимости, но я считаю, что они немного отличаются. Вы говорите о том, как линейно зависимые столбцы, которые уже находятся в матрице модели, перемещаются из ранга матрицы путем поворота. Я спрашиваю, как R определяет, какие параметры исключены, при формировании модели. НЕ ПОСЛЕ –

Смежные вопросы