Regressão linear | Prever usando regressão linear em R

Conteúdo

Este artigo foi publicado como parte do Data Science Blogathon.

Introdução

suposição-de-regressão-linear-5360691

Tabela de conteúdo

  • O que é regressão linear?

  • Importância da regressão linear na análise preditiva.

  • Aplicação prática de regressão linear usando R.

  • Aplicação do conjunto de dados de pressão arterial e idade.

O que é uma regressão linear?

A análise de regressão linear simples é uma técnica para encontrar a associação entre duas variáveis. As duas variáveis envolvidas são uma variável Variável dependente responsiva à mudança e a variável independente. Observe que não estamos calculando a dependência da variável dependente da variável independente, apenas a associação.

Por exemplo, uma empresa está investindo uma certa quantia de dinheiro no marketing de um produto e também coletou dados de vendas ao longo dos anos, analisando a correlação entre o orçamento de marketing e os dados de vendas, podemos prever a venda do próximo ano se a empresa alocar uma certa quantia de dinheiro para o departamento de marketing. A ideia de previsão acima parece mágica, mas são estatísticas puras. A regressão linear consiste basicamente em ajustar uma linha reta ao nosso conjunto de dados para que possamos prever eventos futuros.
A linha de melhor ajuste seria da forma:

Y = B0 + B1X

Onde, E – Variável dependente

X – Variável independente

B0 e B1 – Parâmetro de regressão

Predição da pressão arterial por idade por regressão em R

Equação da linha de regressão em nosso conjunto de dados.

BP = 98,7147 + 0,9709 Era

Importando conjunto de dados

Importe um conjunto de dados Idade vs Pressão Arterial que é um arquivo CSV usando a função read.csv () em R e armazenar este conjunto de dados em um dataframe bp.

bp <- read.csv ("bp.csv")

Crie um quadro de dados para prever valores

Criação de um quadro de dados que armazenará a idade de 53 anos. E este quadro de dados será usado para prever a pressão arterial em 53 anos depois de criar um modelo de regressão linear.

p <-  as.data.frame(53)
colnames(p) <- "Era"

Criando um Diagrama de dispersão Usando a biblioteca ggplot2

Com a ajuda da biblioteca ggplot2 em R, podemos ver que existe uma correlação entre a pressão arterial e a idade, como podemos ver que o aumento da idade é seguido por um aumento da pressão arterial.

84168bpvsage-1886189

É bastante evidente a partir do gráfico que a distribuição no gráfico está espalhada de tal forma que podemos encaixar uma linha reta através dos pontos.

Calcule a correlação entre idade e pressão arterial

Também podemos verificar em nossa análise anterior que existe uma correlação entre a pressão arterial e a idade com a ajuda da função cor () em R que é usado para calcular a correlação entre duas variáveis.

cor(bp $ BP,bp $ Idade)

[1] 0,6575673

Crie um modelo de regressão linear

Agora, com a ajuda da função lm (), vamos fazer um modelo linear. A função lm () tem dois atributos, primeiro é uma fórmula onde usaremos “BP ~ Idade” porque a idade é uma variável independente e a pressão arterial é uma variável dependente e a segunda são os dados, onde iremos dar o nome do quadro de dados que contém os dados que neste caso é o quadro de dados bp.

modelo <- lm(BP ~ Idade, dados = bp)

Resumo do nosso modelo de regressão linear

resumo(modelo)

Produção:

##
## Ligar:
## lm(fórmula = BP ~ Idade, dados = bp)
##
## Resíduos:
## Mín. 1Q Mediana 3Q Máx.
## -21.724 -6.994 -0.520 2.931 75.654
##
## Coeficientes:
## Estimativa Std. Valor t de erro Pr(>|t|)
## (Interceptar) 98.7147 10.0005 9.871 1.28e-10 ***
## Era 0.9709 0.2102 4.618 7.87e-05 ***
## ---
## Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Erro padrão residual: 17.31 sobre 28 graus de liberdade
## R-quadrado múltiplo: 0.4324, R-quadrado ajustado: 0.4121
## Estatística F: 21.33 sobre 1 e 28 DF, valor p: 7.867e-05


Interpretação do modelo

## Coeficientes:
## Estimativa Std. Valor t de erro Pr(>|t|)
## (Interceptar) 98.7147 10.0005 9.871 1.28e-10 ***
## Era 0.9709 0.2102 4.618 7.87e-05 ***
## ---
## Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
B0 = 98.7147 (E- interceptar)
B1 = 0.9709 (Coeficiente de idade)
BP = 98.7147 + 0.9709 Era

Isso significa que uma mudança em uma unidade de idade trará 0.9709 unidades para alterar a pressão arterial.

Erro padrão É a variabilidade esperada no coeficiente que captura a variabilidade da amostragem, então a variação na interseção pode ser de até 10.0005 e a variação na idade será 0.2102 não mais do que isso

Valor T: o valor t é o coeficiente dividido pelo erro padrão, é basicamente o quão grande é estimado em relação ao erro, quanto maior o coeficiente em relação ao Std. erro, maior será o t-score e o t-score vem com um valor p devido à sua distribuição. O valor p é o quão estatisticamente significativa é a variável para o modelo para um nível de confiança do 95% vamos comparar este valor com alfa, que será 0.05 , então, em nosso caso, o valor p da interseção e a idade é menor que alfa (alfa = 0.05), isso implica que ambos são estatisticamente significativos para o nosso modelo.

## Erro padrão residual: 17.31 sobre 28 graus de liberdade

## Múltiplos quadrados R: 0,4324, R quadrado ajustado: 0,4121

## Estatística F: 21,33 sobre 1 e 28 DF, valor p: 7,867e-05

Erro padrão residual ou o erro padrão do modelo é basicamente o erro médio do modelo que é 17.31 em nosso caso e significa que nosso modelo pode ter um erro médio de 17.31 ao prever a pressão arterial. Quanto menor o erro, melhor será o modelo ao prever.

Múltiplos R-quadrados é a razão para (1- (soma do quadrado do erro / soma do quadrado total))

R quadrado ajustado:

Se adicionarmos variáveis, não importa se é significativo na previsão ou não, o valor de R ao quadrado aumentará, razão pela qual o R quadrado ajustado é usado, porque se a variável agregada não for significativa para a previsão do modelo, o valor R ajustado - quadrado irá reduzir, é uma das ferramentas mais úteis para evitar overfitting do modelo.

F – Estatisticas é a razão entre o quadrado médio do modelo e o quadrado médio do erro, Em outras palavras, é a razão de quão bem o modelo está funcionando e o que está causando o erro, e quanto maior o valor F, melhor o modelo está funcionando em comparação com o erro.

Um são os graus de liberdade do numerador da estatística F e 28 é o grau de liberdade dos erros.

Preveja o valor da pressão arterial em 53 anos

BP = 98,7147 + 0,9709 Era

A fórmula acima será usada para calcular a pressão arterial na idade de 53 anos e isso será alcançado usando a função de previsão () primeiro iremos escrever o nome do modelo de regressão linear separando-o por uma vírgula dando o valor do novo conjunto de dados em p desde a Idade 53 foi salvo anteriormente no quadro de dados p.

prever(modelo, newdata = p)

## 1

## 150.1708

Então, o valor previsto da pressão arterial é 150,17 aos 53 anos.

Como previmos a pressão arterial com a associação de Idade, agora pode haver mais de uma variável independente envolvida, mostrando uma correlação com uma variável dependente chamada de regressão múltipla.

Modelo de regressão linear múltipla

A análise de regressão multilinear é uma técnica estatística para encontrar a associação de múltiplas variáveis ​​independentes na variável dependente.. Por exemplo, a receita gerada por uma empresa depende de vários fatores, incluindo o tamanho do mercado, o preço, A promoção, o preço da competição, etc. Basicamente, o modelo de regressão linear múltipla estabelece uma relação linear entre uma variável dependente e múltiplas variáveis ​​independentes.

A equação de regressão linear múltipla é a seguinte:

Y = B0 + B1X1 + B2X2 + .. + BnXk + E

Onde

E – Variável dependente

X – Variável independente

B0, B1, B3,. – Coeficientes de regressão linear múltipla

E- Erro

Tomando outro exemplo do conjunto de dados Wine e com a ajuda de AGST, HarvestRain vamos prever o preço do vinho.

Importando o conjunto de dados

Usando a função read.csv (), importar o conjunto de dados wine.csv e wine_test.csv para o data frame wine e wine_test respectivamente.

vinho <- read.csv("wine.csv")
wine_test <- read.csv("wine_test.csv")

Baixe o conjunto de dados abaixo

Encontre a correlação entre as diferentes variáveis

Usando a função cor () e a função redonda () podemos arredondar a correlação entre todas as variáveis ​​no conjunto de dados do vinho para duas casas decimais.

volta(cor(vinho),2)

Produção:

Ano Preço Inverno Chuvas AGST Colheita Idade das chuvas França Pop
## Ano 1.00 -0.45 0.02 -0.25 0.03 -1.00 0.99
## Preço -0.45 1.00 0.14 0.66 -0.56 0.45 -0.47
## WinterRain 0.02 0.14 1.00 -0.32 -0.28 -0.02 0.00
## AGST -0.25 0.66 -0.32 1.00 -0.06 0.25 -0.26
## HarvestRain 0.03 -0.56 -0.28 -0.06 1.00 -0.03 0.04
## Era -1.00 0.45 -0.02 0.25 -0.03 1.00 -0.99
## FrancePop 0.99 -0.47 0.00 -0.26 0.04 -0.99 1.00

Gráficos dispersos

Ao usar a biblioteca ggplot2 em R, criar um gráfico de dispersão que possa mostrar claramente que AGST e o preço do vinho estão altamente correlacionados. Do mesmo modo, a gráfico de dispersão entre o HarvestRain e o preço do vinho também mostra sua correlação.

ggplot(vinho,aes(x = AGST, y = preço)) + geom_point() +geom_smooth(método = "lm")
59382pricevsagst-6601309
ggplot(vinho,aes(x = Colheita e chuva, y = preço)) + geom_point() +geom_smooth(método = "lm")
91812pricevsharvestrain-5031742

Crie um modelo de regressão multilinear

model1 <- lm(Preço ~ AGST + HarvestRain,data = wine)
resumo(model1)

Produção:

##
## Ligar:
## lm(fórmula = Preço ~ AGST + HarvestRain, data = wine)
##
## Resíduos:
## Mín. 1Q Mediana 3Q Máx.
## -0.88321 -0.19600 0.06178 0.15379 0.59722
##
## Coeficientes:
## Estimativa Std. Valor t de erro Pr(>|t|)
## (Interceptar) -2.20265 1.85443 -1.188 0.247585
## AGST 0.60262 0.11128 5.415 1.94e-05 ***
## HarvestRain -0.00457 0.00101 -4.525 0.000167 ***
## ---
## Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Erro padrão residual: 0.3674 sobre 22 graus de liberdade
## R-quadrado múltiplo: 0.7074, R-quadrado ajustado: 0.6808
## Estatística F: 26.59 sobre 2 e 22 DF, valor p: 1.347e-06

Interpretação do modelo

## Coeficientes:
## Estimativa Std. Valor t de erro Pr(>|t|)
## (Interceptar) -2.20265 1.85443 -1.188 0.247585
## AGST 0.60262 0.11128 5.415 1.94e-05 ***
## HarvestRain -0.00457 0.00101 -4.525 0.000167 ***
## Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
B0 = 98.7147 (E- interceptar)
B1 = 0.9709 (Coeficiente de idade)
Preço = -2.20265 + 0.60262 AGST - 0.00457 HarvestRain

Isso significa que uma mudança em uma unidade na AGST trará 0,60262 unidades para mudar no preço e uma mudança de unidade no HarvestRain trará 0,00457 unidades para alterar o preço.

Erro padrão é a variabilidade esperada no coeficiente que captura a variabilidade da amostragem, então a variação na interseção pode ser de até 1.85443 e a variação no AGST será 0.11128 e a variação em HarvestRain é 0.00101 não mais do que isso

Valor T: o valor t é o coeficiente dividido pelo erro padrão, é basicamente o quão grande é estimado em relação ao erro, quanto maior o coeficiente em relação ao Std. erro, maior será o t-score e o t-score vem com um valor p porque é uma distribuição. O valor p é o quão estatisticamente significativa a variável é para o modelo para um nível de confiança do 95% vamos comparar este valor com alfa para ser 0.05, então, em nosso caso, o valor p da interseção, AGST e HarvestRain são menores que alfa (alfa = 0.05), isso implica que todos são estatisticamente significativos para o nosso modelo.

## Erro padrão residual: 0.3674 sobre 22 graus de liberdade

## Múltiplos quadrados R: 0,7074, R quadrado ajustado: 0,6808

## Estatística F: 26.59 sobre 2 e 22 DF, valor p: 1.347e-06

Erro padrão residual ou o erro padrão do modelo é basicamente o erro médio do modelo que é 0.3674 em nosso caso e significa que nosso modelo pode ter uma diferença média de 0.3674 ao prever o preço dos vinhos. Quanto menor o erro, melhor será o modelo ao prever.

Múltiplos R-quadrados é a razão para (1- (soma do quadrado do erro / soma do quadrado total))

R quadrado ajustado:

Se adicionarmos variáveis, não importa se é significativo na previsão ou não, o valor de R ao quadrado aumentará, razão pela qual o R quadrado ajustado é usado, porque se a variável agregada não for significativa para a previsão do modelo, o valor R ajustado - quadrado irá reduzir, é uma das ferramentas mais úteis para evitar overfitting do modelo.

F – Estatisticas é a razão entre o quadrado médio do modelo e o quadrado médio do erro, Em outras palavras, é a razão de quão bem o modelo está funcionando e o que está causando o erro, e quanto maior o valor F, melhor o modelo está funcionando em comparação com o erro.

Dois são os graus de liberdade do numerador da estatística F e 22 é o grau de liberdade dos erros.

Valores de previsão para nosso conjunto de testes

predição <- prever(model1, newdata = wine_test)

Valores previstos com o conjunto de dados de teste

degustação de vinho

## Ano Preço Inverno Chuvas AGST Colheita Idade das chuvas França Pop
## 1 1979 6.9541 717 16.1667 122 4 54835.83
## 2 1980 6.4979 578 16.0000 74 3 55110.24

predição

## 1 2
## 6.982126 7.101033

conclusão

Como podemos ver, a partir do conjunto de dados disponível, podemos criar um modelo de regressão linear e treinar esse modelo, se houver dados suficientes disponíveis, podemos prever com precisão novos eventos ou, Em outras palavras, resultados futuros.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker