Como incluir um termo linear e quadrático ao incluir também a interação com essas variáveis?

9

Ao adicionar um preditor numérico com preditores categóricos e suas interações, geralmente é considerado necessário centralizar as variáveis ​​em 0 antes. O raciocínio é que os efeitos principais são difíceis de interpretar, pois são avaliados com o preditor numérico em 0.

Minha pergunta agora é como centralizar se não se inclui apenas a variável numérica original (como um termo linear), mas também o termo quadrático dessa variável? Aqui, duas abordagens diferentes são necessárias:

  1. Centralizando ambas as variáveis ​​em sua média individual. Isso tem a desvantagem infeliz de que o 0 agora esteja em uma posição diferente para as duas variáveis, considerando a variável original.
  2. Centralizando ambas as variáveis ​​na média da variável original (ou seja, subtraindo a média da variável original para o termo linear e subtraindo o quadrado da média da variável original do termo quadrático). Com essa abordagem, o 0 representaria o mesmo valor da variável original, mas a variável quadrática não seria centrada em 0 (ou seja, a média da variável não seria 0).

Penso que a abordagem 2 parece razoável, dada a razão da centralização, afinal. No entanto, eu não consigo encontrar nada sobre isso (também não nas perguntas relacionadas: a e b ).

Ou geralmente é uma má idéia incluir termos lineares e quadráticos e suas interações com outras variáveis ​​em um modelo?

Henrik
fonte
Essas questões parecem preocupações estilísticas. Isso não quer dizer que as perguntas não sejam importantes, mas que as respostas podem depender mais de seus objetivos precisos para a análise. Não vejo como nenhuma das abordagens mencionadas seria "geralmente ruim". Pode ser mais fácil obter a resposta que você procura com um pouco mais de conhecimento sobre o problema científico e, especificamente, que tipo de declaração interpretativa você deseja extrair do modelo.
Zkurtz 12/12
Eu sugiro usar polinômios ortogonais.
Glen_b -Reinstala Monica
@Glen_b Você pode dar mais alguns detalhes?
Henrik
Detalhes incluídos. Desculpe, demorou alguns dias.
Glen_b -Reinstala Monica

Respostas:

8

Ao incluir polinômios e interações entre eles, a multicolinearidade pode ser um grande problema; Uma abordagem é examinar polinômios ortogonais.

Geralmente, os polinômios ortogonais são uma família de polinômios ortogonais em relação a algum produto interno.

Assim, por exemplo, no caso de polinômios sobre alguma região com função de peso , o produto interno é - a ortogonalidade torna esse produto interno menos que .wabw(x)pm(x)pn(x)dx0m=n

O exemplo mais simples para polinômios contínuos são os polinômios de Legendre, que têm função de peso constante durante um intervalo real finito (geralmente acima de ).[1,1]

No nosso caso, o espaço (as próprias observações) é discreto e nossa função de peso também é constante (geralmente), de modo que os polinômios ortogonais são uma espécie de equivalente discreto dos polinômios de Legendre. Com a constante incluída em nossos preditores, o produto interno é simplesmente .pm(x)Tpn(x)=ipm(xi)pn(xi)

Por exemplo, considerex=1,2,3,4,5

Comece com a coluna constante, . O próximo polinômio é da forma , mas não estamos nos preocupando com a escala no momento, então . O próximo polinômio seria da forma ; verifica-se que é ortogonal aos dois anteriores:a x - b p 1 ( x ) = x - ˉ x = x - 3 a x 2 + b x + c p 2 ( x ) = ( x - 3 ) 2 - 2 = x 2 - 6 x + 7p0(x)=x0=1axbp1(x)=xx¯=x3ax2+bx+cp2(x)=(x3)22=x26x+7

x         p0  p1  p2   
1          1  -2   2   
2          1  -1  -1
3          1   0  -2
4          1   1  -1
5          1   2   2

Freqüentemente, a base também é normalizada (produzindo uma família ortonormal) - ou seja, as somas de quadrados de cada termo são definidas como constantes (digamos, para ou para , de modo que o desvio padrão seja 1 ou talvez com mais freqüência, para ).n - 1 1nn11

As formas de ortogonalizar um conjunto de preditores polinomiais incluem a ortogonalização de Gram-Schmidt e a decomposição de Cholesky, embora existam inúmeras outras abordagens.


Algumas das vantagens dos polinômios ortogonais:

1) a multicolinearidade é uma não emissão - esses preditores são todos ortogonais.

2) Os coeficientes de ordem inferior não mudam à medida que você adiciona termos . Se você ajustar um polinômio grau através de polinômios ortogonais, conhecerá os coeficientes de um ajuste de todos os polinômios de ordem inferior sem reajustar.k


Exemplo em R ( carsdados, parando distâncias contra velocidade): insira a descrição da imagem aqui

Aqui consideramos a possibilidade de um modelo quadrático ser adequado:

R usa a polyfunção para configurar preditores polinomiais ortogonais:

> p <- model.matrix(dist~poly(speed,2),cars)
> cbind(head(cars),head(p))
  speed dist (Intercept) poly(speed, 2)1 poly(speed, 2)2
1     4    2           1      -0.3079956      0.41625480
2     4   10           1      -0.3079956      0.41625480
3     7    4           1      -0.2269442      0.16583013
4     7   22           1      -0.2269442      0.16583013
5     8   16           1      -0.1999270      0.09974267
6     9   10           1      -0.1729098      0.04234892

Eles são ortogonais:

> round(crossprod(p),9)
                (Intercept) poly(speed, 2)1 poly(speed, 2)2
(Intercept)              50               0               0
poly(speed, 2)1           0               1               0
poly(speed, 2)2           0               0               1

Aqui está um gráfico dos polinômios: insira a descrição da imagem aqui

Aqui está a saída do modelo linear:

> summary(carsp)

Call:
lm(formula = dist ~ poly(speed, 2), data = cars)

Residuals:
    Min      1Q  Median      3Q     Max 
-28.720  -9.184  -3.188   4.628  45.152 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)       42.980      2.146  20.026  < 2e-16 ***
poly(speed, 2)1  145.552     15.176   9.591 1.21e-12 ***
poly(speed, 2)2   22.996     15.176   1.515    0.136    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 15.18 on 47 degrees of freedom
Multiple R-squared:  0.6673,    Adjusted R-squared:  0.6532 
F-statistic: 47.14 on 2 and 47 DF,  p-value: 5.852e-12

Aqui está um gráfico do ajuste quadrático: insira a descrição da imagem aqui

Glen_b -Reinstate Monica
fonte
7

Não acho que a centralização valha a pena, e a centralização torna a interpretação das estimativas de parâmetros mais complexa. Se você usa um software moderno de álgebra matricial, a colinearidade algébrica não é um problema. Sua motivação original de centralizar para poder interpretar os principais efeitos na presença de interação não é forte. Os principais efeitos, quando estimados em qualquer valor escolhido automaticamente de um fator de interação contínuo, são um tanto arbitrários, e é melhor pensar nisso como um simples problema de estimativa, comparando os valores previstos. No rmspacote Rcontrast.rmsfunção, por exemplo, você pode obter qualquer contraste de interesse independente das codificações variáveis. Aqui está um exemplo de uma variável categórica x1 com níveis "a" "b" "c" e uma variável contínua x2, ajustada usando uma spline cúbica restrita com 4 nós padrão. Relações diferentes entre x2 e y são permitidas para x1 diferente. Dois dos níveis de x1 são comparados em x2 = 10.

require(rms)
dd <- datadist(x1, x2); options(datadist='dd')
f <- ols(y ~ x1 * rcs(x2,4))
contrast(f, list(x1='b', x2=10), list(x1='c', x2=10))
# Now get all comparisons with c:
contrast(f, list(x1=c('a','b'), x2=10), list(x1='c', x2=10))
# add type ='joint' to get a 2 d.f. test, or conf.type='simultaneous'
# to get simultaneous individual confidence intervals

Com essa abordagem, você também pode estimar facilmente contrastes em vários valores do (s) fator (es) de interação, por exemplo

contrast(f, list(x1='b', x2=10:20), list(x1='c', x2=10:20))
Frank Harrell
fonte