15 tipos de regressão mais frequentes

Foram utilizadas as informações contidas no site:

https://www.listendata.com/2018/03/regression-analysis.html

Temos um conhecimento medio em 2-3 tipos de regressão e seus algoritimos, mas existem mais de 10 tipos de lgoritimos de regressão, tendo cada um seu proprio significado, logo todo analista de deve saber qual forma usar variando sua escolha pelo tipo de dados e sua distribuição.

Índice

  1. O Que é Análise de Regressão?

  2. Terminologias Relacionadas à Regressão

  3. Tipos de Regressão

    • Regressão Linear

    • Regressão Polinomial

    • Regressão Logística

    • Regressão Quantílica

    • Regressão Ridge

    • Regressão Lasso

    • Regressão ElasticNet

    • Regressão de Componentes Principais

    • Regressão por Mínimos Quadrados Parciais

    • Regressão Vetorial de Suporte

    • Regressão Ordinal

    • Regressão de Poisson

    • Regressão Binomail Negativa

    • Regressão Quasi-Poisson

    • Regressão de Cox

  4. Como escolher o Modelo de Regressão correto?

O Que é Análise de Regressão?

Utilizndo um simples exemplo : suponha que seu gerente pediu para você prever as vendas anuais. Pode haver uma centena de fatores (drivers) que afetam as vendas. Nesse caso, as vendas são sua variável dependente . Fatores que afetam as vendas são variáveis independentes . A análise de regressão ajudaria você a resolver esse problema.

Em outras palavras, análise de regressão é usada para modelar a relação entre a variável dependente e uma ou mais variáveis independentes.

Isso nos ajuda a responder as seguintes perguntas:

  1. Quais dos motoristas têm um impacto significativo nas vendas.
  2. Qual é o motorista mais importante de vendas?
  3. Como os motoristas interagem uns com os outros?
  4. Quais seriam as vendas anuais no próximo ano?

Terminologias Relacionadas à Regressão

1. Outliers

Suponha que haja uma observação no conjunto de dados que está tendo um valor muito alto ou muito baixo em comparação com as outras observações nos dados, ou seja, não pertence à população, tal observação é chamada de outlier. Em palavras simples, é um valor extremo. Um outlier é um problema porque muitas vezes dificulta os resultados que obtemos.

2. Multicolinearidade

Quando as variáveis independentes são altamente correlacionadas entre si, as variáveis são consideradas multicolineares. Muitos tipos de técnicas de regressão pressupõem que a multicolinearidade não deve estar presente no conjunto de dados. É porque causa problemas na classificação de variáveis com base em sua importância. Ou dificulta o trabalho na seleção da variável independente mais importante (fator).

3. Heteroscedasticidade

Quando a variabilidade da variável dependente não é igual entre os valores de uma variável independente, ela é chamada de heterocedasticidade. Exemplo - À medida que a renda aumenta, a variabilidade do consumo de alimentos aumenta. Uma pessoa mais pobre gastará uma quantia bastante constante comendo sempre comida barata; uma pessoa mais rica pode, ocasionalmente, comprar comida barata e, outras vezes, comer refeições caras. Aqueles com maiores rendimentos apresentam uma maior variabilidade de consumo de alimentos.

4. Underfitting e Overfitting

Quando usamos variáveis explicativas desnecessárias, isso pode levar ao overfitting. Overfitting significa que nosso algoritmo funciona bem no conjunto de treinamento, mas não consegue ter um desempenho melhor nos conjuntos de teste. Também é conhecido como problema de alta variância.

Quando nosso algoritmo funciona tão mal que é incapaz de encaixar bem o conjunto de treinamento, então dizemos que ele não serve para os dados. Também é conhecido como problema de alto viés

No diagrama a seguir, podemos ver que ajustar uma regressão linear (linha reta na figura 1) iria ajustar os dados, ou seja, levaria a grandes erros, mesmo no conjunto de treinamento. Usar um ajuste polinomial na fig 2 é balanceado, isto é, um ajuste como esse pode funcionar bem nos conjuntos de treinamento e teste, enquanto na fig 3 o ajuste levará a erros baixos no conjunto de treinamento, mas não funcionará bem no conjunto de testes.

Tipos de Regressão

Cada técnica de regressão tem algumas suposições anexadas a ela que precisamos cumprir antes de executar a análise. Estas técnicas diferem em termos de tipo de variáveis dependentes e independentes e distribuição.

1. Regressão Linear

É a forma mais simples de regressão. É uma técnica na qual a variável dependente é contínua na natureza. A relação entre a variável dependente e as variáveis independentes é assumida como linear por natureza. Podemos observar que o enredo dado representa uma relação de alguma forma linear entre a quilometragem e o deslocamento de carros. Os pontos verdes são as observações reais, enquanto a linha preta ajustada é a linha de regressão.

Quando você tem apenas 1 variável independente e uma variável dependente, ela é chamada de regressão linear simples. Quando você tem mais de 1 variável independente e uma variável dependente, ela é chamada de regressão linear múltipla.

A equação de regressão linear múltipla é listada abaixo -

\[ Y = \beta_1 + \beta_2X_2 + \beta_3X_3 + ... + \beta_kX_k + \varepsilon \]

Equação de Regressão Múltipla

Aqui, ‘Y’ é a variável dependente a ser estimada, e X são as variáveis independentes e ε é o termo de erro. βi’s são os coeficientes de regressão.

Suposições de regressão linear:
  1. Deve haver uma relação linear entre variáveis independentes e dependentes.

  2. Não deve haver nenhum outliers presente.

  3. Sem heterocedasticidade

  4. As observações da amostra devem ser independentes.

  5. Os termos de erro devem ser normalmente distribuídos com média 0 e variância constante.

  6. Ausência de multicolinearidade e autocorrelação.

Estimando os parâmetros

Para estimar os coeficientes de regressão βi usamos o princípio dos mínimos quadrados, que é minimizar a soma dos quadrados devido aos termos de erro, ou seja,

\[ Min \sum\varepsilon^2 = Min \sum(Y-(\beta_1 + \beta_2X_2 + \beta_3X_3 + ... + \beta_kX_k))^2 \]

Ao resolver a equação acima matematicamente, obtemos os coeficientes de regressão como:

\[ \hat\beta = (X'X)^{-1}X'Y \]

Interpretação dos coeficientes de regressão

Vamos considerar um exemplo em que a variável dependente são marcas obtidas por um estudante e as variáveis explicativas são o número de horas estudadas e não. das aulas frequentadas. Suponha que, ao ajustar a regressão linear, tenhamos a regressão linear como:

Marcas obtidas = 5 + 2 (nº de horas estudadas) + 0,5 (nº de aulas frequentadas)

Assim, podemos ter os coeficientes de regressão 2 e 0,5 que podem ser interpretados como:

1.Se não. de horas estudadas e não. das aulas são 0 então o aluno obterá 5 valores.

  1. Mantendo não. de turmas atendidas constantes, se estuda por uma hora mais, então ele vai marcar mais 2 marcas no exame.

  2. Da mesma forma, mantendo não. de horas estudadas constante, se o aluno frequentar mais uma turma, ele atingirá 0,5 ponto a mais.

Regressão Linear em R

Consideramos o conjunto de dados suíços para realizar a regressão linear em R. Usamos a função lm () no pacote base. Tentamos estimar a fertilidade com a ajuda de outras variáveis.

library (dataset)

model = lm (Fertility ~., data = swiss)

lm_coeff = model $ coefficients

lm_coeff

summary (model)

A saída que recebemos é:

Assim, podemos ver que 70% da variação na taxa de fertilidade pode ser explicada via regressão linear.

2. Regressão Polinomial

É uma técnica para ajustar uma equação não linear tomando funções polinomiais de variável independente. Na figura abaixo, você pode ver que a curva vermelha se ajusta melhor aos dados do que a curva verde. Assim, nas situações em que a relação entre a variável dependente e independente parece ser não-linear, podemos implantar modelos de regressão polinomial.

Assim, um polinômio de grau k em uma variável é escrito como:

\[ Y= \beta_0 + \beta_1X_1 + \beta_2X^2 + ... + \beta_kX^k + \varepsilon \]

Aqui podemos criar novos recursos como

\[ X_1 = x, X_2=x^2, ... , X_k = x^k \]

e pode caber regressão linear da mesma maneira.

No caso de múltiplas variáveis dizer X_1 e X_2, podemos criar um terceiro novo recurso (digamos X3) que é o produto de X1 e X2, ou seja,

\[X_3 = X_1 * X_2\]

Isenção de Responsabilidade:

Deve-se ter em mente que a criação de recursos extras desnecessários ou a adaptação de polinômios de grau mais alto podem levar ao overfitting.

Regressão polinomial em R:
Estamos usando dados poly.csv para ajustar regressão polinomial, onde tentamos estimar os preços da casa dada a sua área.

Primeiro, lemos os dados usando read.csv () e os dividimos na variável dependente e independente

data = read.csv (“poly.csv”)

x = dados $ Area

y = data $ Price

Para comparar os resultados da regressão linear e polinomial, primeiramente ajustamos a regressão linear:

model1 = lm (y ~ x)

model1 $ ajuste

model1 $ coeff

Os coeficientes e valores previstos obtidos são:

> model1 $ fit 
       1 2 3 4 5 6 7 8 9 10 
169.0995 178.9081 188.7167 218.1424 223.0467 266.6949 291.7068 296.6111 316.2282 335.8454 
> model1 $ coeff 
 (Intercept) x 
120.05663769 0.09808581

Criamos um dataframe onde a nova variável é x e x square.

new_x = cbind (x, x ^ 2)

new_x

        x         
[1,] 500 250000 
[2] 600 360000 
[3] 700 490000 
[4,] 1000 1000000 
[5,] 1050 1102500 
[6,] 1495 2235025 
[7,] 1750 3062500 
[8,] 1800 3240000 
[ 9,] 2000 4000000 
[10] 2200 4840000

Agora nós ajustamos o OLS usual aos novos dados:

model2 = lm (y ~ new_x)

model2 $ ajuste

model2 $ coeff

Os valores ajustados e os coeficientes de regressão da regressão polinomial são:

> model2 $ fit 
       1 2 3 4 5 6 7 8 9 10 
122.5388 153.9997 182.6550 251.7872 260.8543 310.6514 314.1467 312.6928 299.8631 275.8110 
> model2 $ coeff 
  (Intercept) new_xx new_x 
-7.684980e + 01 4.689175e-01 -1.402805e-04

Usando o pacote ggplot2, tentamos criar um gráfico para comparar as curvas por regressão linear e polinomial.

biblioteca (ggplot2)

ggplot (dados = dados) + pontos geométricos (aes (x = Área, y = Preço)) +

geom_line (aes (x = Área, y = model1 $ fit), color = “red”) +

geom_line (aes (x = Área, y = model2 $ fit), color = “blue”) +

tema (panel.background = element_blank ())

3. Regressão Logística

Na regressão logística, a variável dependente é de natureza binária (tendo duas categorias). Variáveis independentes podem ser contínuas ou binárias. Na regressão logística multinomial, você pode ter mais de duas categorias em sua variável dependente.

Aqui meu modelo é

\[ p=\frac{1}{1+e^{-(b_0+b_1X_1+b_2X_2+ --- + b_kX_k)}} \]

Por que não usamos regressão linear neste caso?
  • A suposição de homocedasticidade é violada.

  • Erros não são normalmente distribuídos

  • y segue a distribuição binomial e, portanto, não é normal.

Exemplos
  • Análise de RH: As empresas de TI recrutam um grande número de pessoas, mas um dos problemas que encontram é depois de aceitar a oferta de emprego na qual muitos candidatos não participam. Então, isso resulta em excesso de custos porque eles precisam repetir todo o processo novamente. Agora, quando você recebe um aplicativo, é possível prever se o candidato provavelmente ingressará na organização (Resultado Binário - Ingressar / Não Participar).

  • Eleições: Suponha que estamos interessados nos fatores que influenciam se um candidato político vence uma eleição. A variável de resultado (resposta) é binária (0/1); ganhar ou perder. As variáveis de previsão de interesse são a quantidade de dinheiro gasto na campanha e a quantidade de tempo gasto fazendo campanha negativamente.

Prever a categoria de variável dependente para um determinado vetor X de variáveis independentes

Através de regressão logística temos -

P (Y = 1) = exp (a + BₙX) / (1+ exp (a + BₙX))

Assim, escolhemos um corte de probabilidade, digamos ‘p’ e se P (Yi = 1)> p, então podemos dizer que Yi pertence à classe 1, caso contrário, 0.

Interpretando os coeficientes de regressão logística (Conceito de Odds Ratio)

Se tomarmos exponenciais de coeficientes, então obteremos odds ratio com a variável explicativa. Suponha que odds ratio seja igual a dois, então as chances de evento são 2 vezes maiores que as chances de não-evento. Suponha que a variável dependente seja o desgaste do cliente (se o cliente fechará relação com a empresa) e a variável independente é o status de cidadania (nacional / expatriado). A probabilidade de expatriação é 3 vezes maior do que as chances de um atributo nacional.

Se tomarmos exponenciais de coeficientes, então obteremos odds ratio com a variável explicativa. Suponha que odds ratio seja igual a dois, então as chances de evento são 2 vezes maiores que as chances de não-evento. Suponha que a variável dependente seja o desgaste do cliente (se o cliente fechará relação com a empresa) e a variável independente é o status de cidadania (nacional / expatriado). A probabilidade de expatriação é 3 vezes maior do que as chances de um atributo nacional.

Regressão Logística em R:

Neste caso, estamos tentando estimar se uma pessoa terá câncer dependendo se ele fuma ou não.

Ajustamos a regressão logística com a função glm () e estabelecemos family = “binomial”

model <- glm (Lung.Cancer..Y. ~ Smoking..X., data = dados, family = “binomial”)

As probabilidades previstas são dadas por:

“Probabilidades de Predicted”

modelo $ fitted.values

        1 2 3 4 5 6 7 8 9 
0,4545455 0,4545455 0,6428571 0,6428571 0,4545455 0,4545455 0,4545455 0,4545455 0,6428571 
       10 11 12 13 14 15 16 17 18 
0,6428571 0,4545455 0,4545455 0,6428571 0,6428571 0,6428571 0,4545455 0,6428571 0,6428571 
       19 20 21 22 23 24 25 
0,6428571 0,4545455 0,6428571 0,6428571 0,4545455 0,6428571 0,6428571

Prever se a pessoa terá câncer ou não quando escolhermos a probabilidade de corte ser 0.5

data $ prediction <- model $ fitted.values> 0.5

    data $ prediction 
     [1] FALSE FALSE VERDADEIRO VERDADE FALSO FALSE FALSE FALSE VERDADEIRO VERDADE FALSO FALSE VERDADEIRO VERDADEIRO VERDADEIRO 
    [16] FALSO VERDADEIRO VERDADEIRO FALSO VERDADEIRO VERDADEIRO FALSO VERDADEIRO VERDADEIRO

4. Regressão Quantílica

A regressão quantílica é a extensão da regressão linear e geralmente a usamos quando outliers, alta skeweness e heterocedasticidade existem nos dados.

Na regressão linear, predizemos a média da variável dependente para determinadas variáveis independentes. Como a média não descreve toda a distribuição, a modelagem da média não é uma descrição completa de uma relação entre variáveis dependentes e independentes. Assim, podemos usar a regressão quantílica, que prevê um quantil (ou percentil) para determinadas variáveis independentes.

O termo “quantile” é o mesmo que “percentile”

Idéia básica de regressão quantílica:

Na regressão quantílica, tentamos estimar o quantil da variável dependente dados os valores de X’s. Observe que a variável dependente deve ser contínua.

O modelo de regressão quantílica:

Para o ´qth´ quantil, temos o seguinte modelo de regressão:

\[ Y_i=X_i'\beta + \varepsilon_i \]

Isso parece semelhante ao modelo de regressão linear, mas aqui a função objetiva que consideramos minimizar é:

\[ q\sum |\varepsilon_i| + (1-q)\sum |\varepsilon_i| \]

onde q é o ´qtl´ quantil.

Se q = 0,5 ou seja, se estamos interessados na mediana, então, torna-se a regressão mediana (ou menor regressão desvio absoluto) e substituindo o valor de q = 0,5 na equação acima obtemos a função objetivo como:

\[\sum |\varepsilon_i|\]

Interpretando os coeficientes em regressão quantílica:

Suponha que a equação de regressão para o 25º quantil de regressão seja:

y = 5,2333 + 700,823 x

Isso significa que, para um aumento unitário em x, o aumento estimado no 25º quantil de y em 700.823 unidades.

Vantagens do Quantile sobre Regressão Linear
  • Bastante benéfico quando a heteroscedasticidade está presente nos dados.
  • Robusto para outliers
  • A distribuição da variável dependente pode ser descrita através de vários quantis.
  • É mais útil do que a regressão linear quando os dados são distorcidos.
Disclaimer em usar a regressão quantile!

Deve-se ter em mente que os coeficientes que obtemos na regressão quantílica para um quantil particular devem diferir significativamente daqueles obtidos a partir da regressão linear. Se não é assim, então o nosso uso da regressão quantílica não é justificável. Isso pode ser feito observando-se os intervalos de confiança dos coeficientes de regressão das estimativas obtidas a partir de ambas as regressões.

Regressão Quantílica em R

Precisamos instalar o pacote quantreg para realizar a regressão quantílica.

biblioteca install.packages (“quantreg”) (quantreg)

Usando a função rq , tentamos prever a estimativa do 25º quantil da Taxa de Fertilidade em dados suíços. Para isso, definimos tau = 0,25.

model1 = rq (Fertilidade ~., dados = suíço, tau = 0,25)

resumo (modelo1)

tau: [1] 0,25 
Coeficientes: 
                 coeficientes mais baixos bd superior bd 
(Intercepção) 76,63132 2,12518 93,99111 
Agricultura -0,18242 -0,44407 0,10603 
Exame -0,53411 -0,91580 0,63449 
Educação -0,82689 -1,25865 -0,50734 
Católica 0,06116 
0,00420 0,22848 InfantilMortalidade 0,69341 -0,10562 2,36095

Definindo tau = 0,5, executamos a regressão mediana.

model2 = rq (Fertilidade ~., dados = suíço, tau = 0,5)

resumo (modelo2)

tau: [1] 0.5 
Coeficientes: 
                 coeficientes mais baixos bd superior bd 
(Intercepção) 63.49087 38.04597 87.66320 
Agricultura -0.20222 -0.32091 -0.05780 
Exame -0.45678 -1.04305 0.34613 
Educação -0.79138 -1.25182 -0.06436 
Católicos 0.10385 0.01947 0.15534 
Infância.Mortalidade 1.45550 0.87146 2.21101

Podemos executar a regressão quantílica para vários quantis em um único gráfico.

model3 = rq (Fertilidade ~., dados = swiss, tau = seq (0,05,0.95, por = 0,05))

quantplot = resumo (model3)

quantplot

Podemos verificar se nossos resultados de regressão quantílica diferem dos resultados do OLS usando gráficos.

enredo (quantplot)

Vários quantis são representados pelo eixo X. A linha central vermelha indica as estimativas dos coeficientes de OLS e as linhas vermelhas pontilhadas são os intervalos de confiança em torno desses coeficientes de OLS para vários quantis. A linha pontilhada preta são as estimativas de regressão quantílica e a área cinza é o intervalo de confiança para elas para vários quantis. Podemos ver que, para todas as variáveis, a regressão estimada coincide para a maioria dos quantis. Portanto, nosso uso de regressão quantílica não é justificável para tais quantis. Em outras palavras, queremos que as linhas vermelha e cinza se sobreponham o menos possível para justificar nosso uso da regressão quantílica.

5. Regressão de Ridge

É importante entender o conceito de regularização antes de pular para a regressão da crista.

1. Regularização

A regularização ajuda a resolver problemas de ajuste excessivo, o que implica que o modelo tenha um bom desempenho nos dados de treinamento, mas tenha um desempenho ruim nos dados de validação (teste). A regularização resolve esse problema adicionando um termo de penalidade à função objetivo e controla a complexidade do modelo usando esse termo de penalidade.

A regularização geralmente é útil nas seguintes situações:

  • Grande número de variáveis
  • Relação baixa de observações numéricas para número de variáveis
  • Alta Multi-Colinearidade

2. Função L1 Loss ou Regularização L1

Na regularização de L1, tentamos minimizar a função objetivo adicionando um termo de penalidade à soma dos valores absolutos dos coeficientes. Isso também é conhecido como o método de menor desvio absoluto. Lasso Regression faz uso da regularização L1.

3. L2 Loss function ou L2 Regularization

Na regularização de L2, tentamos minimizar a função objetivo adicionando um termo de penalidade à soma dos quadrados dos coeficientes. Regressão de Ridge ou regressão de encolhimento faz uso da regularização de L2.

Em geral, L2 tem melhor desempenho que a regularização L1. L2 é eficiente em termos de computação. Existe uma área onde L1 é considerada como uma opção preferida sobre L2. L1 possui seleção de recursos incorporados para espaços de recursos esparsos. Por exemplo, você está prevendo se uma pessoa está tendo um tumor cerebral usando mais de 20.000 marcadores genéticos (características). Sabe-se que a grande maioria dos genes tem pouco ou nenhum efeito sobre a presença ou gravidade da maioria das doenças.

Na função objetivo de regressão linear, tentamos minimizar a soma dos quadrados dos erros. Na regressão ridge (também conhecida como regressão de contração) adicionamos uma restrição na soma dos quadrados dos coeficientes de regressão. Assim, na regressão das cristas, nossa função objetiva é:

\[ Min (\sum\varepsilon^2 + \lambda\beta^2) = Min \sum(Y-(\beta_1 + \beta_2X_2+ \beta_3 + ... + \beta_kX_k))^2 + \lambda\sum\beta^2 \]

Aqui λ é o parâmetro de regularização que é um número não negativo. Aqui não assumimos normalidade nos termos de erro.

Nota muito importante:

Nós não regularizamos o termo de interceptação. A restrição é apenas a soma dos quadrados dos coeficientes de regressão dos X’s.

Podemos ver que a regressão de cumeeira faz uso da regularização de L2.

Ao resolver a função objetivo acima, podemos obter as estimativas de β como:

\[ \hat\beta = (X'X + \lambda I)^{-1}X'Y \] Onde I é uma matriz idenidade.

Como podemos escolher o parâmetro de regularização λ?

Se escolhermos lambda = 0, retornamos às estimativas usuais de OLS. Se lambda for escolhido para ser muito grande, isso levará ao underfitting. Assim, é altamente importante determinar um valor desejável de lambda. Para resolver esse problema, plotamos as estimativas dos parâmetros em relação a diferentes valores de lambda e selecionamos o valor mínimo de λ após o qual os parâmetros tendem a se estabilizar.

Código R para Regressão de Ridge

Considerando o conjunto de dados da Swiss, criamos dois conjuntos de dados diferentes, um contendo variável dependente e outro contendo variáveis independentes.

X = swiss [, - 1]

y = swiss [, 1]

Precisamos carregar a biblioteca glmnet para realizar a regressão das margens .

biblioteca (glmnet)

Usando a função cv.glmnet () , podemos fazer validação cruzada. Por padrão alfa = 0, o que significa que estamos realizando regressão de crista. lambda é uma sequência de vários valores de lambda que será usada para validação cruzada.

set.seed (123) #Setting a semente para obter resultados semelhantes.

model = cv.glmnet (como.matriz (X), y, alfa = 0, lambda = 10 ^ seq (4, -1, -0,1))

Usamos o melhor lambda usando lambda.min e, portanto, obtemos os coeficientes de regressão usando a função predict .

best_lambda = modelo $ lambda.min

ridge_coeff = predict (modelo, s = best_lambda, type = “coefficients”)

ridge_coeff Os coeficientes obtidos usando a regressão da crista são:

6 x 1 Matriz esparsa da classe "dgCMatrix"
                           1
(Interceptar) 64.92994664
Agricultura -0.13619967
Exame -0.31024840
Educação -0.75679979
Católico 0.08978917
Infantil.Mortalidade 1.09527837

6. Regressão Lasso

Lasso significa Least Absolute Shrinkage and Selection Operator . Faz uso da técnica de regularização L1 na função objetivo. Assim, a função objetivo na regressão LASSO torna-se:

\[ Min (\sum\varepsilon^2 + \lambda\sum|\beta|) = Min \sum(Y-(\beta_1 + \beta_2X_2+ \beta_3 + ... + \beta_kX_k))^2 + \lambda\sum|\beta| \]

λ é o parâmetro de regularização e o termo de interceptação não é regularizado.

Não assumimos que os termos de erro sejam normalmente distribuídos.

Para as estimativas, não temos nenhuma fórmula matemática específica, mas podemos obter as estimativas usando algum software estatístico.

Observe que a regressão lasso também precisa de padronização.

Vantagem do laço sobre a regressão de ridge

A regressão lasso pode executar a seleção de variáveis incorporadas, bem como o encolhimento de parâmetros. Ao usar a regressão de rebentamento, pode-se acabar obtendo todas as variáveis, mas com os Paramaters encolhidos

Código R para Regressão de Lasso

Considerando o swiss dataset do pacote datasets, temos:

#Criando variáveis dependentes e independentes.

X = swiss [, - 1]

y = swiss [, 1]

Usando cv.glmnet no pacote glmnet nós fazemos validação cruzada. Para a regressão do laço, definimos alfa = 1. Por padrão, padronizar = TRUE, portanto, não precisamos padronizar as variáveis separadamente.

#Setting the seed for reproducibility

set.seed (123)

model = cv.glmnet (como.matriz (X), y, alfa = 1, lambda = 10 ^ seq (4, -1, -0.1))

# Por padrão, padronize = TRUE

Consideramos o melhor valor de lambda, filtrando lamba.min do modelo e, portanto, obtendo os coeficientes usando a função predict .

# Obtendo o melhor lambda

best_lambda = model $ lambda.min

lasso_coeff = predizer (model, s = best_lambda, type = “coeficientes”)

lasso_coeff Os coeficientes de laço que obtivemos são:

      6 x 1 Matriz esparsa da classe "dgCMatrix" 
                           1 
    (Intercepção) 65.46374579 
    Agricultura -0.14994107 
    Exame -0.24310141 
    Educação -0.83632674 
    Católica 0.09913931 
    Infância.Mortalidade 1.07238898

Qual deles é melhor - Regressão Ridge ou Regressão Lasso?

Tanto a regressão da crista como a regressão do laço são endereçadas para lidar com a multicolinearidade.

A regressão de Ridge é computacionalmente mais eficiente em relação à regressão de laço. Qualquer um deles pode ter um melhor desempenho. Portanto, a melhor abordagem é selecionar esse modelo de regressão que se ajusta bem aos dados do conjunto de testes.

7. Regressão Elastic Net

A regressão Elastic Net é preferida tanto na regressão ridge quanto no lasso quando se está lidando com variáveis independentes altamente correlacionadas.

É uma combinação de regularização L1 e L2.

A função objetivo no caso da Regressão Elastic Net é:

\[ Min (\sum\varepsilon^2 + \lambda_1\sum\beta^2 + \lambda_2\sum|\beta|) = Min \sum(Y-(\beta_1 + \beta_2X_2+ \beta_3 + ... + \beta_kX_k))^2 \ \lambda_1\sum\beta^2 + \lambda_2\sum|\beta| \]

Como Ridge e a regressão Lasso, esta não assume normalidade.

Código R para Regressão Elastic Net

Definindo algum valor diferente de alfa entre 0 e 1, podemos realizar uma regressão elastic net.

set.seed(123)

model = cv.glmnet(as.matrix(X),y,alpha = 0.5,lambda = 10^seq(4,-1,-0.1))

#Taking the best lambda

best_lambda = model$lambda.min

en_coeff = predict(model,s = best_lambda,type = “coefficients”)

en_coeff

Os coeficientes que obtivemos são:

6 x 1 sparse Matrix of class "dgCMatrix"
                          1
(Intercept)      65.9826227
Agriculture      -0.1570948
Examination      -0.2581747
Education        -0.8400929
Catholic          0.0998702
Infant.Mortality  1.0775714

8. Regressão de Componentes Principais (PCR)

PCR é uma técnica de regressão que é amplamente utilizada quando você tem muitas variáveis independentes ou a multicolinearidade existe em seus dados. Ela está dividida em 2 etapas:

1.Obtendo os componentes principais

2.Executar análise de regressão nos componentes principais

As características mais comuns da PCR são:

  1. Redução de dimensionalidade

  2. Remoção de multicolinearidade

Obtendo os componentes principais

A análise de componentes principais é um método estatístico para extrair novos recursos quando os recursos originais são altamente correlacionados. Criamos novos recursos com a ajuda dos originais, de modo que os novos não sejam correlacionados.

Vamos considerar o primeiro componente principal:

\[ U_1 = \beta_1X_1 + \beta_2X_2 + ... + \beta_pX_p \ \ => \sum\beta^2=1 \]

O primeiro PC (componente principal) está tendo a variação máxima.

Da mesma forma, podemos encontrar o segundo compoente principal U2 de tal modo que ele não seja correlacionado com U1 e tenha a segunda maior variância.

De maneira similar para recursos ‘p’, podemos ter um máximo de PCs ‘p’ de tal forma que todos os PCs não sejam correlacionados entre si e o primeiro PC tenha a variância máxima, então o segundo PC tem a variância máxima e assim por diante.

Desvantagens:

Deve ser mencionado que o PCR não é uma técnica de seleção de recursos, mas sim uma técnica de extração de características. Cada componente principal que obtemos é uma função de todos os recursos. Portanto, ao se usar componentes principais, seria impossível explicar qual fator está afetando a variável dependente em qual extensão.

Regressão de componentes principais em R

Usamos o conjunto de dados longley disponível em R, que é usado para alta multicolinearidade. Nós criamos a coluna Ano (Year).

data1 = longley[,colnames(longley) != “Year”]

View(data) - É assim que algumas das observações no nosso conjunto de dados serão semelhantes:

Usamos o pacote pls para executar o PCR.

install.packages(“pls”)

library(pls)

Na PCR estamos tentando estimar o número de pessoas empregadas; scale = T denota que estamos padronizando as variáveis; validação = “CV” denota a aplicabilidade da validação cruzada.

pcr_model <- pcr(Employed~., data = data1, scale = TRUE, validation = “CV”)

summary(pcr_model)

Obtemos o resumo como:

Data:  X dimension: 16 5 
 Y dimension: 16 1
Fit method: svdpc
Number of components considered: 5

VALIDATION: RMSEP
Cross-validated using 10 random segments.
       (Intercept)  1 comps  2 comps  3 comps  4 comps  5 comps
CV           3.627    1.194    1.118   0.5555   0.6514   0.5954
adjCV        3.627    1.186    1.111   0.5489   0.6381   0.5819

TRAINING: % variance explained
          1 comps  2 comps  3 comps  4 comps  5 comps
X           72.19    95.70    99.68    99.98   100.00
Employed    90.42    91.89    98.32    98.33    98.74

Aqui no RMSEP, os erros de raiz quadrada média estão sendo denotados. Enquanto em ‘Treinamento:% de variância explicada’ o% cumulativo de variância explicado pelos componentes principais está sendo representado. Podemos ver que, com 3 PCs, mais de 99% da variação pode ser atribuída. Também podemos criar um gráfico representando o erro de quadrados médios para o número de vários PCs.

validationplot (pcr_model, val.type = “MSEP”)

Escrevendo val.type = “R2” podemos traçar o quadrado R para vários não. de PCs.

validationplot (pcr_model, val.type = “R2”)

Se quisermos ajustar o pcr para 3 componentes principais e, portanto, obter os valores previstos, podemos escrever:

pred = predict (pcr_model, data1, ncomp = 3)

9. Regressão de Mínimos Quadrados Parciais (PLS)

É uma técnica alternativa de regressão de componentes principais quando você tem variáveis independentes altamente correlacionadas. Também é útil quando há um grande número de variáveis independentes.

Diferença entre PLS e PCR

Ambas as técnicas criam novas variáveis independentes chamadas componentes que são combinações lineares das variáveis preditoras originais, mas a PCR cria componentes para explicar a variabilidade observada nas variáveis preditoras, sem considerar a variável resposta. Enquanto o PLS considera a variável dependente e, portanto, muitas vezes leva a modelos que são capazes de ajustar a variável dependente com menos componentes.

Regressão PLS em R

Dados da biblioteca (plsdepot) (veículos)

pls.model = plsreg1 (veículos [, c (1: 12,14: 16)], veículos [, 13], composições = 3)

# R-Square

pls.model $ R2

10. Regressão Vetorial de Suporte

A regressão vetorial de suporte pode resolver modelos lineares e não lineares. O SVM usa funções de kernel não lineares (como polinômios) para encontrar a solução ideal para modelos não lineares.

A ideia principal do SVR é minimizar o erro, individualizando o hiperplano que maximiza a margem.

library (e1071)

svr.model <- svm (Y ~ X, data)

pred <- predizer (svr.model, data)

pontos (dados $ X, pred, col = “red”, pch = 4)

11. Regressão Ordinal

Regressão Ordinal é usada para prever valores ordenados. Em palavras simples, esse tipo de regressão é adequado quando a variável dependente é ordinal por natureza. Exemplo de variáveis ordinais - Respostas da pesquisa (escala de 1 a 6), reação do paciente à dose de medicamento (nenhuma, leve, grave).

Por que não podemos usar a regressão linear ao lidar com a variável alvo ordinal?

Na regressão linear, a variável dependente assume que as mudanças no nível da variável dependente são equivalentes em todo o intervalo da variável. Por exemplo, a diferença de peso entre uma pessoa com 100 kg e uma pessoa com 120 kg é de 20 kg, o que tem o mesmo significado que a diferença de peso entre uma pessoa que tem 150 kg e uma pessoa com 170 kg. Essas relações não são necessariamente válidas para variáveis ordinais.

biblioteca (ordinal)

o.model <- clm (classificação ~., dados = vinho)

resumo (o.modelo)

12. Regressão de Poisson

A regressão de Poisson é usada quando a variável dependente possui dados de contagem .

Aplicação da Regressão de Poisson -

1.Prever o número de chamadas no atendimento ao cliente relacionadas a um produto específico

  1. Estimando o número de chamadas de serviço de emergência durante um evento

A variável dependente deve atender às seguintes condições

  1. A variável dependente possui uma distribuição de Poisson.

  2. Contagens não podem ser negativas.

  3. Este método não é adequado em números não inteiros.

No código abaixo, estamos usando conjuntos de dados chamados warpbreaks, que mostram o número de quebras no Yarn durante a tecelagem. Neste caso, o modelo inclui termos para o tipo de lã, a tensão da lã e a interação entre os dois.

pos.model <-glm (quebra ~ lã * tensão, dados = warpbreaks, família = poisson)

resumo (pos.model)

13. Regressão Binomial Negativa

Como a Regressão de Poisson, também lida com dados de contagem. A questão surge “como é diferente da regressão de poisson”. A resposta é negativa. Regressão binomial não assume distribuição de contagem tendo variância igual à sua média. Enquanto a regressão de poisson assume a variância igual à sua média.

Quando a variância dos dados de contagem é maior que a contagem média, é um caso de superdispersão. O oposto da afirmação anterior é um caso de sub-dispersão.

biblioteca (MASS)

nb.model <- glm.nb (Dias ~ Sexo / (Idade + Eth * Lrn), dados = quine)

resumo (nb.model)

14. Regressão Qausi-Poisson

É uma alternativa à regressão binomial negativa. Também pode ser usado para dados de contagem superdispersos. Ambos os algoritmos dão resultados semelhantes, existem diferenças na estimativa dos efeitos das covariáveis. A variância de um modelo quase-Poisson é uma função linear da média, enquanto a variância de um modelo binomial negativo é uma função quadrática da média.

qs.pos.model <- glm (Dias ~ Sexo / (Idade + Eth * Lrn), dados = quine, familia = “quasipoisson”)

A regressão Quasi-Poisson pode lidar com superdispersão e sub-dispersão.

15. Regressão de Cox

A regressão Cox é adequada para dados de tempo até o evento. Veja os exemplos abaixo -

  1. O tempo do cliente abriu a conta até o atrito.

  2. Tempo após o tratamento do câncer até a morte.

  3. Tempo do primeiro ataque cardíaco ao segundo.

A regressão logística usa uma variável dependente binária, mas ignora o tempo dos eventos.

Além de estimar o tempo necessário para alcançar um determinado evento, a análise de sobrevivência também pode ser usada para comparar o tempo até o evento para vários grupos.

Alvos duplos são definidos para o modelo de sobrevivência

  1. Uma variável contínua representando o tempo para o evento.

  2. Uma variável binária que representa o status se um evento ocorreu ou não.

library(survival)

# Lung Cancer Data

# status: 2=death

lung$SurvObj <- with(lung, Surv(time, status == 2))

cox.reg <- coxph(SurvObj ~ age + sex + ph.karno + wt.loss, data = lung)

cox.reg

Como escolher o modelo de regressão correto?

  1. Se a variável dependente é contínua e o modelo sofre de colinearidade ou existem muitas variáveis independentes, você pode tentar regressões de PCR, PLS, cume, laço e rede elástica. Você pode selecionar o modelo final com base em R-quadrado ajustado, RMSE, AIC e BIC.

  2. Se você está trabalhando em dados de contagem, você deve tentar poisson, quase-poisson e regressão binomial negativa.

  3. Para evitar overfitting, podemos usar o método de validação cruzada para avaliar os modelos usados para previsão. Também podemos usar técnicas de regressão de rede elástica, laço e elástico para corrigir o problema de ajuste excessivo.

  4. Tente a regressão vetorial de suporte quando você tiver um modelo não linear.