SELEÇÃO DE VARIÁVEIS
incluir tantas covariáveis quantas forem necessárias
para auxiliar na predição do modelo? (1)
objetivo
buscar o menor subconjunto de covariáveis capaz de
explicar adequadamente a variação de Y? (2)
(1) incluir um grande número de covariáveis gera sérios problemas
como:
→ interpretação complexa dos resultados
→ variância crescente de predição
(2) princípio de parcimônia
As vezes é possível fazer uma TRIAGEM INICIAL, eliminando
algumas covariáveis, se uma ou mais covariáveis:
→ não são fundamentais para o estudo
→ são afetadas por grandes erros de medida
→ são redundantes com outra covariável
É possível reduzir ainda mais o número de covariáveis,
excluindo aquelas com pequena contribuição para o modelo,
fazendo uma: SELEÇÃO DE VARIÁVEIS
Como medir contribuição?
Há vários tipos de medidas, denominados:
Critérios para seleção de variáveis
Critérios para seleção de variáveis
1) Coeficiente de determinação múltiplo
SQReg( p)
SQRes( p)
R =
= 1−
SQT
SQT
2
mp
SQReg(p) e SQRes(p) são as somas de quadrados da regressão
e dos resíduos, respectivamente, para o modelo com p
covariáveis
→ quando um acréscimo no R2m(p+1) for pequeno, comparado a
R2mp, a adição de uma covariável não é mais útil
→ preferir modelo com maior R2mp , dentre todos os modelos
possíveis com p covariáveis
2) Coeficiente de determinação ajustado (R2ap)
SQRes p/n− p
2
R ap=1−
SQT /n−1
→ quando um acréscimo no R2a(p+1) for pequeno, a adição de
uma covariável não é mais útil
→ preferir modelo com maior R2ap , dentre todos os modelos
possíveis com p covariáveis
3) Quadrado médio dos resíduos
SQRes p
QMRes p=
n− p
quando um decréscimo no QMRes(p+1) for pequeno, a adição
de uma covariável não é mais útil
→ preferir modelo com menor QMRes(p) , dentre todos os
modelos possíveis com p covariáveis
4) Estatística Cp de Mallows
→ baseado no Erro Quadrático Médio (EQM) dos preditos
Definição geral de EQM:
2 ^
^
^ , com b ( θ)=E
^
^
EQM ( θ)=b
( θ)−Var ( θ)
(θ− θ)
^ y^ i
fazendo θ≡
2
EQM ( y^ i )= [ E ( y i − y^ i ) ] −Var ( y^ i ) ; i=1,2,… , n
EQM total padronizado:
n
2
1
τ p = 2 ∑ [ E ( y i − y^ i ) ] −Var ( y^ i )
σ i=1
{
um estimador de τp é
SQRes( p)
Cp=
−n+2 p
2
σ^
}
Se o modelo com p covariáveis for bom
(
)
(
)
)
SQRes( p)/(n− p)
SQRes( p)
E
≈1⇒ E
≈n− p
2
2
σ^
σ^
(
SQRes( p)
⇒E
−n+2 p ≈ p
2
σ^
regra prática:
→ construir gráfico de Cp x p, traçando a reta Cp = p
→ modelos com pontos próximos a reta e abaixo da reta são
candidatos ao “melhor” modelo
5) Critério de Akaike
AIC=−2 ln(l )+2 p
com l : valor máximo da função de verossimilhança
Pode ser mostrado que no MRLM:
(
)
SQRes
AIC=n ln
+2 p
n
→ preferir modelos com AIC menor
6) Estatística PRESS
(para avaliar qualidade preditiva do modelo)
Definição de resíduos PRESS ou erros de predição
e(i )= y i − y^(i) ; i=1,… , n
valor predito para o indivíduo i,
sob o modelo ajustado com os
outros (n - 1) indivíduos
n
n
PRESS = ∑ e = ∑
i=1
2
(i)
→ preferir modelo com menor PRESS
i=1
2
( )
ei
1−hii
7) Estatística do teste F parcial
SQEXTRA ( p−1)
F=
QMRes( p)
regra prática:
estabelecer um ponto de corte para o p-valor, como critério mínimo
de entrada e/ou saída de uma covariável, pE e pS , respectivamente
→ equivalentemente, pode-se usar o coeficiente de correlação parcial
##Calculo dos critérios
#suponha que seu banco de dados está em “arq” como y, x1, x2, ... , x(p-1)
#matriz de correlação dos dados
cor(arq)
attach(arq)
#suponha que a covariavel x1 tem a maior correlação com a resposta y
ajust1 <- lm(y~x1)
s1<-summary(ajust)
s1
anova(ajust1)
# Coeficiente de determinação múltipla
s1$'r.squared'
# Coeficiente de determinação ajustado
s1$'adj.r.squared'
# Quadrado médio residual
QM1<-s1$sigma^2
QM1
# Cp de mallows
p<-length(ajust1$coef)
n<-length(y)
SQE<-(n-p)*QM1
Cp1<-(SQE)/QM1 - n + 2*p
Cp1
# Aic
AIC1(ajust)
# PRESS
require(DAAG)
press1(ajust)
Existe mais de uma forma sistemática de comparação, variando
o número p de covariáveis incluídas no modelo
Estas diferentes formas de comparação são denominadas:
Procedimentos para seleção de variáveis
Procedimentos para seleção de covariáveis
1) Todas as regressões possíveis
Suponha que temos k variáveis auxiliares disponíveis:
→ ajustar o modelo nulo e os modelos com 1, 2, 3, …, até k covariáveis
Algoritmo 1:
a) dividir os modelos em classe:
Classe A -> modelo nulo;
Classe B -> modelos com uma covariável;
Classe C -> modelos com duas covariáveis; ... ;
Última Classe -> modelo com k covariáveis
b) ordenar os modelos em cada classe, de acordo com um dos
critérios para seleção de covariáveis
c) escolher o “melhor” modelo dentro de cada classe, de acordo
com o critério adotado
d) selecionar o modelo, a partir do qual, o nível do critério varia
pouco quando aumenta o número de covariáveis
Exemplo:
Procedimento (1), pode-se mostrar inviável quando há um número k
muito grande de variáveis disponíveis, pois são ajustados um total de 2 k
modelos; por exemplo: se k = 10 são 210 = 1024 ajustes
→ outros procedimentos têm sido propostos, em que a cada passo, há a
adição ou a retirada de uma covariável:
2) Seleção “passo a frente” (forward)
começa pelo modelo nulo e adiciona-se covariáveis uma a uma ao
modelo, até que a inclusão de uma nova covariável não seja necessária
3) Seleção “passo a atrás” (backward)
começa pelo modelo que contém todas as covariáveis, eliminando uma a
uma covariáveis não significativas para o modelo
4) Seleção “passo a passo” (stepwise)
É uma combinação dos procedimentos backward e forward. Inicia-se
como no procedimento forward, e após cada etapa de inclusão de uma
covariável, tem-se uma etapa para tentar descartar outra covariável
2) Seleção “passo a frente” (forward)
Passo 1: Primeira covariável a entrar no modelo (X1)
→ o modelo somente com X1 apresenta o melhor valor para o critério
escolhido, entre os modelos com uma covariável Xj
j = 1, 2, … , k
Passo 2: Segunda covariável a entrar no modelo (X2)
→ o modelo com X1 e X2 apresenta o melhor valor para o critério
escolhido, entre os modelos com duas covariáveis X1 e Xj ; j ≠ 1
Demais passos: covariáveis entram uma a uma conforme Passo 2, na
presença das demais covariáveis selecionadas anteriormente, até que
a inclusão de mais uma covariável não seja útil
Note que a covariável selecionada em um determinado passo, permanece
até o final do procedimento, não havendo possibilidade de exclusão
3) Seleção “passo a atrás” (backward)
Passo 1: Primeira covariável a sair do modelo (Xk)
→ o modelo sem Xk é o melhor (segundo o critério escolhido),
comparado aos outros modelos com (k -1) covariáveis
Passo 2: Segunda covariável a sair do modelo (Xk-1)
→ o modelo sem Xk-1 é o melhor (segundo o critério escolhido),
comparado aos outros modelos com (k -2) covariáveis
Demais passos: covariáveis saem uma a uma conforme Passo 2,
na presença das demais covariáveis que permaneceram no modelo,
até que a exclusão de mais uma covariável não seja útil
Note que a covariável removida em um determinado passo, não
pode ser incluída novamente no modelo
4) Seleção “passo a passo” (stepwise)
Passo 1 e Passo 2: Primeira e Segunda covariáveis a entrar no
modelo, conforme procedimento forward
Passo 3: Primeira covariável a sair do modelo, conforme
procedimento backward
Demais passos: alternar procedimentos forward e backward
→ na seleção de variáveis há vários critérios e vários
procedimentos disponíveis
→ como consequência disso:
1) diferentes combinações de critérios/procedimentos nem
sempre levam a mesma seleção de variáveis, pois os modelos
podem ter ajustes equivalentes
2) nenhuma combinação de critérios/procedimentos pode
garantir que o melhor subconjunto de covariáveis foi obtido
Exemplo
Todas as regressões possíveis com intercepto e sem interação
#Exemplo selecao de covariaveis
y <- c(78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,93.1,115.9,83.8,113.3,109.4)
x1 <- c(7,1,11,11,7,11,3,1,2,21,1,11,10)
x2 <- c(26,29,56,31,52,55,71,31,54,47,40,66,68)
x3 <- c(6,15,8,8,6,9,17,22,18,4,23,9,8)
x4 <- c(60,52,20,47,33,22,6,44,22,26,34,12,12)
dados<-as.data.frame(cbind(y,x1,x2,x3,x4))
###PROCEDIMENTO “AUTOMÁTICO”
modelo_completo <- lm(y~., data=dados)
summary(modelo_completo)
modelo_final <- step(modelo_completo) #seleção de variáveis pelo critério de AIC
#ver outras opções de procedimentos no help
summary(modelo_final)
##função alternativa
require(MASS)
modelo_final2 <- stepAIC(modelo_completo)
summary(modelo_final2)
#Exemplo selecao de covariaveis
y <- c(78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,93.1,115.9,83.8,113.3,109.4)
x1 <- c(7,1,11,11,7,11,3,1,2,21,1,11,10)
x2 <- c(26,29,56,31,52,55,71,31,54,47,40,66,68)
x3 <- c(6,15,8,8,6,9,17,22,18,4,23,9,8)
x4 <- c(60,52,20,47,33,22,6,44,22,26,34,12,12)
dados<-as.data.frame(cbind(y,x1,x2,x3,x4))
###PROCEDIMENTO “MANUAL”
### CRITÉRIO ADOTADO: Estatística do teste F parcial
##procedimento forward (pe = 0,05)
#Passo 1
cor(dados) #x4 maior correlacao com y
#Passo 2
ajust2a <- lm(y~x4+x1)
anova(ajust2a)
ajust2b <- lm(y~x4+x2)
anova(ajust2b)
ajust2c <- lm(y~x4+x3)
anova(ajust2c) #menor p quando inclui x1, na presenca de x4
#Passo 3
ajust3a <- lm(y~x4+x1+x2)
anova(ajust3a)
ajust3b <- lm(y~x4+x1+x3)
anova(ajust3b)
#p>criterio minimo; modelo final: y~x1+x4
summary(ajust2a)
##procedimento backward (criterio minimo = 0,05)
#Passo 1:
ajustc <- lm(y~., dados)
summary(ajustc) #x3 maior p
#Passo 2:
ajust3 <-lm(y~x1+x2+x4)
summary(ajust3) #x4 maior p
#Passo 3:
ajust2 <-lm(y~x1+x2)
summary(ajust2)
#p<criterio minimo; modelo final: y~x1+x2
##procedimento stepwise (criterio minimo = 0,05)
#Passo1: x4 entra (igual ao Passo 1 em forward)
#Passo2: x1 entra (igual ao Passo 2 em forward)
#Passo3: x4 sai com a entrada de x1?
ajust1 <- lm(y~x1)
anova(ajust1,ajust2a)
#x4 nao sai
#Passo4: x2 ou x3 entra no modelo com x1 e x4?
ajust3a <- lm(y~x4+x1+x2)
anova(ajust3a)
ajust3b <- lm(y~x4+x1+x3)
anova(ajust3b)
#p>criterio minimo; modelo final: y~x1+x4
Download

SELEÇÃO DE VARIÁVEIS objetivo → interpretação complexa dos