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