Пожалуйста, дайте мне идею, как эффективно перекодировать категориальную переменную (фактор) в набор ортогональных полиномиальных контрастных переменных.
Для многих типов переменных контраста (например, отклонения, простые, Хелмерта и т. Д.) Проход:
- Составьте матрицу коэффициентов контрастности, соответствующую типу.
- Обратное или обобщенно-обратное это для получения матрицы кодов.
Например:
Suppose there is 3-group factor and we want to recode it into a set of deviation contrast variables.
The last group is treated as reference. Then the contrast coefficients matrix L is
Group1 Group2 Group3
var1 2/3 -1/3 -1/3
var2 -1/3 2/3 -1/3
and ginv(L) is then the sought-for coding matrix
var1 var2
Group1 1 0
Group2 0 1
Group3 -1 -1
(We might also use inv(L) instead if we add a row for constant, equal to 1/3, at the head of L.)
Есть ли такой же или похожий способ получить полиномиальные контрастные переменные? Если да, то как будет выглядеть матрица C и как ее составить? Если нет то , что до сих пор является способ эффективно вычислить многочлен контрастные переменных (например , с помощью матричной алгебры).
contrasts
polynomial
ttnphns
источник
источник
qr.qy()
согласуются с ручными расчетами, заqr.Q(qr(X))
которыми следуетQ%*%z
мой пост. Мне действительно интересно, могу ли я сказать что-то другое, чтобы ответить на ваш вопрос без дублирования. Я действительно не хочу делать плохую работу ... Я прочитал достаточно ваших постов, чтобы иметь большое уважение к вам ... Если я найду способ выразить концепцию без кода, просто концептуально через линейную алгебру, Я вернусь к этому. Я счастлив, однако, что вы нашли мое исследование вопроса какой-то ценности. С наилучшими пожеланиями, Тони.Ответы:
В продолжение моего предыдущего поста по этой теме я хочу поделиться некоторым предварительным (хотя и неполным) исследованием функций, лежащих в основе линейной алгебры и связанных с ней R-функций. Это должно быть работа в процессе.
Часть непрозрачности функций связана с «компактной» формой разложения Householder . Идея, лежащая в основе разложения Домхолдера, состоит в том, чтобы отразить векторы через гиперплоскость, определяемую единичным вектором как показано на диаграмме ниже, но целенаправленно выбирать эту плоскость так, чтобы проецировать каждый вектор-столбец исходной матрицы на стандартный единичный вектор. Нормализованный вектор нормы-2 можно использовать для вычисления различных преобразований Хаусхолдера .u A e 1 1 u I - 2Q R U A е1 1 U Я - 2у уTИкс
Результирующий прогноз может быть выражен как
Вектор представляет собой разницу между векторами столбцов в матрице которые мы хотим разложить, и векторами соответствующими отражению в подпространстве или "зеркале", определяемом .v Икс A Y U
Метод, используемый LAPACK, освобождает от необходимости хранить первую запись в отражателях Householder, превращая их в . Вместо нормализации вектора к с , это просто первая запись, которая преобразуется в ; тем не менее, эти новые векторы - назовите их все еще могут использоваться как векторы направления.1 v U ∥u∥=1 1 w
Прелесть метода в том, что, учитывая, что в разложении имеет верхнюю треугольную форму, мы можем фактически использовать элементов в ниже диагонали, чтобы заполнить их этими отражателями . К счастью, ведущие элементы в этих векторах равны , предотвращая проблемы в «спорный» диагонали матрицы , зная , что все они являются , они не должны быть включены, и могут привести к диагонали к вхождениям .R QR 0 R w 1 1 R
«Компактная QR» матрица в функцииR
qr()$qr
может пониматься как грубое добавление матрицы и нижней треугольной матрицы «хранения» для «модифицированных» отражателей.Проекция «Домохозяин» по-прежнему будет иметь вид , но мы не будем работать с ( ), а скорее с вектором , из которых гарантируется, что только первая запись равна , иI−2uuTx u ∥x∥=1 w 1
Можно предположить, что было бы хорошо хранить эти отражатели ниже диагонали или исключая первую запись , и называть это днем. Тем не менее, все не так просто. Вместо этого ниже диагонали находится комбинация и коэффициентов в преобразовании Домохозяина, выраженных как (1), так что определение определяется как:w R 1 w tau
qr()$qr
Теперь мы находимся на один градус от векторов , и первая запись больше не равна , следовательно, вывод должен включать ключ для их восстановления, поскольку мы настаиваем на исключении первой записи векторов «отражателя» в подходит всем . Итак, мы видим значения в выводе? Ну, нет, это было бы предсказуемо. Вместо этого в выводе (где хранится этот ключ) мы находим .1 τ ρ = ∑ отражатели 2w 1 τ ρ=∑reflectors22=wTwτ2/2
qr()
qr()$qr
qr()$qraux
Итак, в рамке красного цвета ниже мы видим «отражатели» ( ), исключая их первую запись.w/τ
Весь код здесь , но так как этот ответ о пересечении кодирования и линейной алгебры, я вставлю вывод для простоты:
Теперь я написал функцию
House()
следующим образом:Давайте сравним выходной сигнал со встроенными функциями R. Сначала самодельная функция:
к функциям R:
источник