Hitters é uma base de dados que se refere a temporada entre 1986 e 1987, da liga principal de baseball dos Estados Unidos.Os dados são divididos em 20 tipos de informações sobre 322 jogadores.O interesse é saber quais das variáveis coletadas influenciam no salário de um jogador de baseball.

Poderiamos usar regressão Linear simples para resolver este problema, mas como a quantidade de variáveis é muito maior que o número de observações, a técnica de mínimos quadrados nesta situação pode não predizer com precisão e nem possuir uma interpretação ideal pro modelo.

Isso significa que muitas variáveis seriam ajustadas e o modelo ficaria super estimado, com uma variância infinita , sendo inviável o método dos mínimos quadrados, pois resultaria em um modelo inútil para a representação da realidade, apenas resultando em predições de seu próprio conjunto de dados.Com simples técnicas de restringir ou reduzir os coeficientes, resulta na redução significante da variância e assim em predições mais precisas, além disso o modelo resultante é mais facilmente interpretável.Quando o problema há o problema p>n existe tres métodos que podemos utilizar:

Seleção de um subconjunto de coeficientes: Identificar um conjunto de variáveis que possuem uma certa relação com a resposta e assim usar o método de mínimos quadrados.

Reduzir o valor dos coeficientes: Ajustamos o modelo com todas as variáveis, porém os coeficientes tendem a zero, reduzindo assim a variância dos dados. Esse método também é conhecido como regularização, e dependendo de qual tipo é usado, certos coeficientes podem chegar a zero.

Reduzir a dimensão: Ajustamos vários modelos com diferentes coeficiente mas com dimensão menor, aplicando o método de mínimos quadrados.

O foco do nosso trabalho é utilizar a Regularização, um método onde colocamos um determinado peso sobre nossos coeficientes, conseguindo minimizalos para encontrar um modelo adequado, por isso é natural que quanto maior o peso dado, menor os coeficientes.Existe tres tipos de regularização:Ridge, Lasso eHorseshoe.

Ridge:

library(ISLR)
library(glmnet)

Hitters<-na.omit(Hitters)

x<-model.matrix(Salary~., Hitters)[,-1]
y<-Hitters$Salary
grid<-10^seq(10, -2, length=100)

ridge.mod<-glmnet(x,y,alpha=0, lambda=grid)
plot(ridge.mod)

Escolhendo alguns lambdas como exemplo, esperamos que um lambda maior resulte em coeficientes menores.

ridge.mod$lambda[50]
## [1] 11497.57
coef(ridge.mod)[,50]
##   (Intercept)         AtBat          Hits         HmRun          Runs 
## 407.356050200   0.036957182   0.138180344   0.524629976   0.230701523 
##           RBI         Walks         Years        CAtBat         CHits 
##   0.239841459   0.289618741   1.107702929   0.003131815   0.011653637 
##        CHmRun         CRuns          CRBI        CWalks       LeagueN 
##   0.087545670   0.023379882   0.024138320   0.025015421   0.085028114 
##     DivisionW       PutOuts       Assists        Errors    NewLeagueN 
##  -6.215440973   0.016482577   0.002612988  -0.020502690   0.301433531
ridge.mod$lambda[60]
## [1] 705.4802
coef(ridge.mod)[,60]
##  (Intercept)        AtBat         Hits        HmRun         Runs 
##  54.32519950   0.11211115   0.65622409   1.17980910   0.93769713 
##          RBI        Walks        Years       CAtBat        CHits 
##   0.84718546   1.31987948   2.59640425   0.01083413   0.04674557 
##       CHmRun        CRuns         CRBI       CWalks      LeagueN 
##   0.33777318   0.09355528   0.09780402   0.07189612  13.68370191 
##    DivisionW      PutOuts      Assists       Errors   NewLeagueN 
## -54.65877750   0.11852289   0.01606037  -0.70358655   8.61181213

Lasso:

lasso.mod<-glmnet(x,y,alpha=1, lambda=grid)
plot(lasso.mod)