Como usar regsubsets() em r para seleção de modelo
Você pode usar a função regsubsets() do pacote Leaps em R para encontrar o subconjunto de variáveis preditoras que produz o melhor modelo de regressão.
O exemplo a seguir mostra como usar esta função na prática.
Exemplo: Usando regsubsets() para seleção de modelo em R
Para este exemplo, usaremos o conjunto de dados mtcars integrado ao R, que contém medições de 11 atributos diferentes para 32 carros diferentes.
#view first six rows of mtcars dataset
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
Suponha que queiramos ajustar um modelo de regressão usando hp como variável de resposta e as seguintes variáveis preditoras potenciais:
- mpg
- peso
- merda
- qsec
Podemos usar a função regsubsets() do pacote leaps para realizar uma pesquisa exaustiva para encontrar o melhor modelo de regressão:
library (leaps)
#find best regression model
bestSubsets <- regsubsets(hp ~ mpg + wt + drat + qsec, data=mtcars)
#view results
summary(bestSubsets)
Subset selection object
Call: regsubsets.formula(hp ~ mpg + wt + drat + qsec, data = mtcars)
4 Variables (and intercept)
Forced in Forced out
mpg FALSE FALSE
wt FALSE FALSE
drat FALSE FALSE
qsec FALSE FALSE
1 subsets of each size up to 4
Selection Algorithm: exhaustive
mpg wt drat qsec
1 ( 1 ) "*" " " " " " "
2 (1) " " "*" " " "*"
3 ( 1 ) “*” “*” “ “ “*”
4 ( 1 ) “*” “*” “*” “*”
As estrelas ( * ) na parte inferior do resultado indicam quais variáveis preditoras pertencem ao melhor modelo de regressão para cada modelo possível com um número diferente de variáveis preditoras.
Veja como interpretar o resultado:
Para um modelo com uma única variável preditora, o melhor modelo de regressão é produzido usando mpg como variável preditora.
Para um modelo com duas variáveis preditoras, o melhor modelo de regressão é produzido usando wt e qsec como variáveis preditoras.
Para um modelo com três variáveis preditoras, o melhor modelo de regressão é produzido usando mpg , wt e qsec como variáveis preditoras.
Para um modelo com quatro variáveis preditoras, o melhor modelo de regressão é produzido usando mpg , wt , drat e qsec como variáveis preditoras.
Observe que você também pode extrair as seguintes métricas para cada modelo:
- rsq : o valor de r ao quadrado para cada modelo
- RSS : A soma residual dos quadrados para cada modelo
- adjr2 : O valor de r-quadrado ajustado para cada modelo
- cp : Cp de malvas para cada modelo
- bic : O valor BIC para cada modelo
Por exemplo, podemos usar a seguinte sintaxe para extrair o valor R-quadrado ajustado para cada um dos quatro melhores modelos:
#view adjusted R-squared value of each model
summary(bestSubsets)$adjr2
[1] 0.5891853 0.7828169 0.7858829 0.7787005
Pelo resultado podemos ver:
- O valor R-quadrado ajustado para o modelo com mpg como variável preditora é 0,589 .
- O valor R-quadrado ajustado para o modelo com wt e qsec como variáveis preditoras é 0,783 .
- O valor R-quadrado ajustado para o modelo com mp g , wt e qsec como variáveis preditoras é 0,786 .
- O valor R-quadrado ajustado para o modelo com mpg , wt , drat e qsec como variáveis preditoras é 0,779 .
Esses valores nos dão uma ideia de quão bem o conjunto de variáveis preditoras previu o valor da variável resposta, ajustado com base no número de variáveis preditoras no modelo.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como realizar regressão linear múltipla em R
Como realizar regressão por partes em R
Como realizar regressão spline em R