Não consigo entender o uso de contrastes polinomiais no ajuste de regressão. Refiro-me, em particular, a uma codificação usada R
para expressar uma variável de intervalo (variável ordinal com níveis igualmente espaçados), descrita nesta página .
No exemplo dessa página , se eu entendi corretamente, R ajusta um modelo para uma variável de intervalo, retornando alguns coeficientes que ponderam sua tendência linear, quadrática ou cúbica. Portanto, o modelo ajustado deve ser:
onde deve assumir os valores , , 3 ou 4 de acordo com o nível diferente da variável de intervalo.
Isso está correto? E, se sim, qual era o objetivo dos contrastes polinomiais?
r
regression
contrasts
Pippo
fonte
fonte
contr.poly
R.Respostas:
Apenas para recapitular (e caso os hiperlinks do OP falhem no futuro), estamos analisando um conjunto de dados da seguinte
hsb2
forma:que pode ser importado aqui .
Transformamos a variável
read
em e variável ordenada / ordinal:Agora estamos todos prontos para executar uma ANOVA regular - sim, é R, e basicamente temos uma variável dependente contínua
write
e uma variável explicativa com vários níveisreadcat
. Em R podemos usarlm(write ~ readcat, hsb2)
1. Gerando a matriz de contraste:
Existem quatro níveis diferentes para a variável ordenadan−1=3
readcat
, portanto, teremos contrastes.Primeiro, vamos pelo dinheiro e dê uma olhada na função R embutida:
Agora vamos dissecar o que aconteceu embaixo do capô:
O que aconteceu lá? o(−1.5)0 (−0.5)0 0.50 1.50 (−1.5)1 (−0.5)1 0.51 1.51 (−1.5)2=2.25 , , 0,5 2 = 0,25 e 1,5 2 = 2,25 ; e o quarto, ( - 1,5 ) 3 = - 3,375 , ( - 0,5 ) 3 = - 0,125 , 0,5 3 = 0,125 e 1,5 3 = 3,375 .(−0.5)2=0.25 0.52=0.25 1.52=2.25 (−1.5)3=−3.375 (−0.5)3=−0.125 0.53=0.125 1.53=3.375
outer(a, b, "^")
eleva os elementos dea
para os elementos deb
, de modo que a primeira coluna resulta das operações, , ( - 0,5 ) 0 , 0,5 0 e 1,5 0 ; a segunda coluna de ( - 1,5 ) 1 , ( - 0,5 ) 1 , 0,5 1 e 1,5 1 ; o terceiro de ( - 1,5 ) 2 = 2,25Em seguida, fazer um decomposição orthonormal desta matriz e tomar a representação compacta de Q ( ). Alguns dos trabalhos internos das funções usadas na fatoração QR em R usados neste post são mais explicados aqui .QR
c_Q = qr(X)$qr
... dos quais salvamos apenas a diagonal (R Q R
z = c_Q * (row(c_Q) == col(c_Q))
). O que se encontra na diagonal: Apenas o "fundo" entradas do parte do Q R decomposição. Somente? bem, não ... Acontece que a diagonal de uma matriz triangular superior contém os autovalores da matriz!A seguir, chamamos a seguinte função:,Q Q Q z
raw = qr.qy(qr(X), z)
cujo resultado pode ser replicado "manualmente" por duas operações: 1. Transformando a forma compacta de , isto é , em Q , uma transformação que pode ser alcançada com , e 2. Executando o multiplicação de matrizes Q z , como em .qr(X)$qr
Q = qr.Q(qr(X))
Q %*% z
Fundamentalmente, a multiplicação de pelos autovalores de R não altera a ortogonalidade dos vetores da coluna constituinte, mas dado que o valor absoluto dos autovalores aparece em ordem decrescente do canto superior esquerdo para o inferior direito, a multiplicação de Q z tenderá a diminuir a valores nas colunas polinomiais de ordem superior:Q R Q z
Comparar os valores nos vectores de coluna posteriores (quadráticos e cúbicos) antes e após as operações fatoração, e para as não afectadas duas primeiras colunas.Q R
Finalmente, chamamos
(Z <- sweep(raw, 2L, apply(raw, 2L, function(x) sqrt(sum(x^2))), "/", check.margin = FALSE))
transformar a matrizraw
em vetores ortonormais :"/"
apply(raw, 2, function(x)sqrt(sum(x^2)))
2 2.236 2 1.341
contr.poly(4)
(sum(Z[,3]^2))^(1/4) = 1
z[,3]%*%z[,4] = 0
2. Quais contrastes (colunas) contribuem significativamente para explicar as diferenças entre os níveis na variável explicativa?
Podemos apenas executar a ANOVA e olhar o resumo ...
summary(lm(write ~ readcat, hsb2))
... ver que existe um efeito linear de
readcat
onwrite
, para que os valores originais (no terceiro pedaço de código no início do post) possam ser reproduzidos como:... ou ...
... ou muito melhor ...
Graficamente, isso é muito mais fácil de entender. Compare as médias reais por grupos em grandes blocos quadrados pretos com os valores estimados e veja por que uma aproximação de linha reta com contribuição mínima de polinômios quadráticos e cúbicos (com curvas apenas aproximadas com loess) é ideal:
Se, apenas por efeito, os coeficientes da ANOVA tivessem sido tão grandes para o contraste linear para as outras aproximações (quadráticas e cúbicas), o gráfico sem sentido a seguir retrataria mais claramente os gráficos polinomiais de cada "contribuição":
O código está aqui .
fonte
qr.qy()
função, mas definitivamente tentarei ver se consigo dizer algo minimamente coerente sobre sua pergunta assim que tiver algum tempo.Vou usar o seu exemplo para explicar como funciona. O uso de contrastes polinomiais com quatro grupos gera os seguintes.
fonte