Você pode adicionar termos polinomiais à regressão linear múltipla?


8

Estou um pouco confuso sobre quando você deve ou não adicionar termos polinomiais a um modelo de regressão linear múltipla. Eu sei que polinômios são usados ​​para capturar a curvatura nos dados, mas sempre parece estar na forma de:

y=x1+x2+x12+x22+x1x2+c

E se você souber que existe um relacionamento linear entre e , mas um relacionamento não linear entre e ? Você pode usar um modelo na forma de:yx1yx2

y=x1+x2+x22+c

Acho que minha pergunta é: é válido descartar o termo e o termo , ou você precisa seguir a forma genérica de um modelo de regressão polinomial?x12x1x2


5
Apenas para completar, observe que, se você tiver no modelo, também deverá ter . Pesquise neste site o princípio da marginalidade para obter mais informações. Eu sei que você não sugeriu fazê-lo, mas as informações podem ser úteis. xx2x
Mdewey 12/09/19

É realmente estranho ver algo como e chamá-lo de modelo de regressão linear, mas definitivamente é. Lembre-se de que isso tem a ver com linearidade nos coeficientes. Sugiro o vídeo de Mathematics Monk sobre isso: m.youtube.com/watch?v=rVviNyIR-fI . Quinze minutos podem parecer um tempo para gastar com isso, mas você nunca esquecerá que a regressão linear pode envolver comportamento não-linear. Talvez como uma pergunta ao OP: um modelo de regressão linear? y = y=umax+bx2y=umax+bx2
Dave

@mdewey, sua declaração é geral demais para ser correta e / ou fazer sentido em todas as configurações. Posso facilmente imaginar um modelo bem definido com mas sem . Por exemplo, casos em que o processo de geração de dados é ou onde é que (e ) ou onde o modelo é simplesmente a melhor aproximação (em comparação com a que inclui ) a qualquer processo de geração de dados que estamos enfrentando. x y = β 0 + β 1 x 2 + ε y = β 0 + β 1 z + ε x = x2xy=β0 0+β1x2+εy=β0 0+β1z+ε z>0xx=zz>0 0x
Richard Hardy

Respostas:


14

Além da excelente resposta do @ mkt, pensei em fornecer um exemplo específico para você ver, para que possa desenvolver alguma intuição.

Gerar dados por exemplo

Neste exemplo, eu gerei alguns dados usando R da seguinte maneira:

set.seed(124)

n <- 200
x1 <- rnorm(n, mean=0, sd=0.2)
x2 <- rnorm(n, mean=0, sd=0.5)

eps <- rnorm(n, mean=0, sd=1)

y = 1 + 10*x1 + 0.4*x2 + 0.8*x2^2 + eps

Como você pode ver acima, os dados vêm do modelo , em que é um termo de erro aleatório distribuído normalmente com média e variância desconhecida . Além disso, , , e , enquanto . y=β0 0+β1x1+β2x2+β3x22+ϵϵ0 0σ2β0 0=1β1=10β2=0,4β3=0,8σ=1

Visualize os dados gerados por coplots

Dados os dados simulados na variável de resultado y e as variáveis ​​preditoras x1 e x2, podemos visualizar esses dados usando coplots :

library(lattice)

coplot(y ~ x1 | x2,  
       number = 4, rows = 1,
       panel = panel.smooth)

coplot(y ~ x2 | x1,  
       number = 4, rows = 1,
       panel = panel.smooth)

Os coplots resultantes são mostrados abaixo.

O primeiro coplot mostra gráficos de dispersão de y versus x1 quando x2 pertence a quatro intervalos diferentes de valores observados (que se sobrepõem) e aprimora cada um desses gráficos de dispersão com um ajuste suave, possivelmente não linear, cuja forma é estimada a partir dos dados.

insira a descrição da imagem aqui

O segundo coplot mostra gráficos de dispersão de y versus x2 quando x1 pertence a quatro intervalos diferentes de valores observados (que se sobrepõem) e aprimora cada um desses gráficos de dispersão com um ajuste suave.

insira a descrição da imagem aqui

O primeiro coplot sugere que é razoável supor que x1 tenha um efeito linear em y ao controlar x2 e que esse efeito não dependa de x2.

O segundo coplote sugere que é razoável supor que x2 tenha um efeito quadrático em y ao controlar x1 e que esse efeito não dependa de x1.

Ajustar um modelo corretamente especificado

Os coplots sugerem ajustar o seguinte modelo aos dados, o que permite um efeito linear de x1 e um efeito quadrático de x2:

m <- lm(y ~ x1 + x2 + I(x2^2))  

Construir parcelas residuais do componente mais para o modelo especificado corretamente

Depois que o modelo especificado corretamente é ajustado aos dados, podemos examinar os gráficos de componente mais residual para cada preditor incluído no modelo:

library(car)

crPlots(m)

Esses componentes mais plotagens residuais são mostrados abaixo e sugerem que o modelo foi especificado corretamente, pois não mostram evidência de não linearidade etc. De fato, em cada uma dessas plotagens, não há discrepância óbvia entre a linha azul pontilhada, sugestiva de um efeito linear de o preditor correspondente e a linha magenta sólida sugestiva de um efeito não linear desse preditor no modelo.

insira a descrição da imagem aqui

Ajustar um modelo especificado incorretamente

Vamos interpretar o advogado do diabo e dizer que nosso modelo lm () foi de fato especificado incorretamente (ou seja, não especificado), no sentido de que ele omitiu o termo quadrático I (x2 ^ 2):

m.mis <-  lm(y ~ x1 + x2)

Construir parcelas residuais do componente mais para o modelo especificado incorretamente

Se construíssemos parcelas de componentes mais resíduos para o modelo não especificado, veríamos imediatamente uma sugestão de não linearidade do efeito de x2 no modelo não especificado:

crPlots(m.mis)

Em outras palavras, como visto abaixo, o modelo mal especificado não conseguiu capturar o efeito quadrático de x2 e esse efeito aparece no componente mais o gráfico residual correspondente ao preditor x2 no modelo mal especificado.

insira a descrição da imagem aqui

A especificação incorreta do efeito de x2 no modelo m.mis também seria aparente ao examinar plotagens dos resíduos associados a esse modelo em relação a cada um dos preditores x1 e x2:

par(mfrow=c(1,2))
plot(residuals(m.mis) ~ x1, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
plot(residuals(m.mis) ~ x2, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)

Como visto abaixo, o gráfico de resíduos associados a m.mis versus x2 exibe um padrão quadrático claro, sugerindo que o modelo m.mis falhou em capturar esse padrão sistemático.

insira a descrição da imagem aqui

Aumentar o modelo especificado incorretamente

Para especificar corretamente o modelo m.mis, precisaríamos aumentá-lo para incluir também o termo I (x2 ^ 2):

m <- lm(y ~ x1 + x2 + I(x2^2)) 

Aqui estão os gráficos dos resíduos versus x1 e x2 para este modelo especificado corretamente:

par(mfrow=c(1,2))
plot(residuals(m) ~ x1, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
plot(residuals(m) ~ x2, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)

Observe que o padrão quadrático observado anteriormente na plotagem de resíduos versus x2 para o modelo mal especificado m.mis agora desapareceu da plotagem de resíduos versus x2 para o modelo especificado corretamente m.

Observe que o eixo vertical de todos os gráficos de resíduos versus x1 e x2 mostrados aqui deve ser rotulado como "Residual". Por alguma razão, o R Studio corta esse rótulo.

insira a descrição da imagem aqui


11

Sim, o que você está sugerindo é bom. É perfeitamente válido em um modelo tratar a resposta a um preditor como linear e a um diferente como polinomial. Também é completamente bom não assumir interações entre os preditores.


1
xx2x

@Dayne Boa pergunta! Esta é uma questão que é discutida bem aqui e aqui
mkt - Reinstate Monica

1
@mkt Esses links oferecem abordagens totalmente separadas do que a idéia de Ingolifs sobre polinômios ortogonais. Alguma opinião sobre a abordagem polinomial ortogonal?
Dave

1
@ Dave Não sei muito sobre isso, eu tenho medo. Pode ser bom fazer uma nova pergunta sobre a comparação das abordagens.
mkt - Restabelece Monica

7

Você deve usar polinômios ortogonais para adicionar termos polinomiais.

x2x

Observar:

insira a descrição da imagem aqui

x,x2,x3

Entre 0 e 1,5, todas as três curvas aumentam monotonicamente e, embora se curvem de maneira diferente uma da outra, fornecerão ajustes de qualidade semelhantes quando x estiver correlacionado positivamente com y. Usando os três no seu código

y ~ x + x^2 + x^3

você está essencialmente usando formas redundantes para ajustar seus dados.

Os polinômios ortogonais proporcionam, essencialmente, um espaço adicional de manobra ao encaixar, e cada polinômio é essencialmente independente dos outros.

insira a descrição da imagem aqui

Três polinômios de grau 1,2 e 3 gerados pela função poly () em R.

Talvez, em vez de explicitamente pensar neles como polinômios, você pense neles como 'componentes de tendência' ou algo assim:

x

x2

x3xx2

Há muitas matemáticas difíceis envolvidas em polinômios ortogonais, mas felizmente você só precisa saber duas coisas:

  1. Polinômios ortogonais são ortogonais apenas em uma determinada região. O exemplo que eu dei envolve polinômios que são ortogonais apenas entre 0 e 1,5.
  2. x

2
Isso é extremamente interessante e não é algo que eu já tinha ouvido antes. Você tem uma referência dizendo que isso é necessário ou útil? E útil para previsão ou inferência de parâmetros? E você conhece um comando Python para "poly"?
Dave

Várias facetas da regressão polinomial ortogonal foram abordadas aqui e aqui e muito mais.
Jason

Ótima resposta e obrigado por abordá-la melhor do que o post que eu tinha em mente. :)
Jason

1
@Ingolifs: Esta é a melhor explicação dos polinômios ortogonais que li até agora neste site! Eu concordo com Dave que seria útil comentar em sua resposta a utilidade de polinômios ortogonais para previsão ou inferência de parâmetros.
Isabella Ghement 13/09/19

1
+1, mas tenha cuidado polyporque, se você tentar predict, ele recolocará os polinômios na amostra de previsão; ou seja, temos lixo.
usεr11852 13/09/19

0

Não existe uma regra que diga que você deve usar todas as suas variáveis. Se você está tentando prever a renda e suas variáveis ​​de recurso são SSN, anos de escolaridade e idade, e deseja abandonar o SSN porque espera que qualquer correlação entre ela e a renda seja espúria, esse é o seu julgamento. Um modelo não é inválido simplesmente porque existem outras variáveis ​​que você teoricamente poderia ter incluído, mas não incluiu. Decidir quais termos polinomiais incluir é apenas uma das muitas decisões relacionadas à seleção de recursos.

Embora os modelos polinomiais geralmente iniciem com a inclusão de todos os termos, é apenas para que todos possam ser avaliados quanto ao quanto estão adicionando ao modelo. Se parece que um termo em particular é apenas sobre-ajustado, ele pode ser descartado em iterações posteriores do modelo. A regularização, como a regressão do laço, pode eliminar variáveis ​​menos úteis automaticamente. Geralmente, é melhor começar com um modelo que tenha muitas variáveis ​​e reduzi-lo às que são mais úteis do que começar apenas com as variáveis ​​em que você acha que o modelo deve confiar e possivelmente perder um relacionamento em que você não estavam esperando.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.