um guia passo-a-passo para a regressão linear em R

regressão Linear é um modelo de regressão que utiliza uma linha recta para descrever a relação entre variáveis. Ele encontra a linha de melhor ajuste através de seus dados, buscando o valor do(s) coeficiente (s) de regressão que minimiza o erro total do modelo.,

Existem dois tipos principais de regressão linear:

  • regressão linear Simples, utiliza apenas uma variável independente
  • análise de regressão linear Múltipla utiliza duas ou mais variáveis independentes

neste passo-a-passo, vamos orientá-lo através de regressão linear em R, usando o exemplo de dois conjuntos de dados.

regressão linear simples
o primeiro conjunto de dados contém observações sobre rendimento (num intervalo de $15k a $75k) e felicidade (avaliado numa escala de 1 a 10) numa amostra imaginária de 500 pessoas., Os valores de renda são divididos em 10 mil para fazer com que os dados de renda coincidam com a escala das Pontuações de felicidade (assim, um valor de $2 representa $20.000, $3 é $30.000, etc.)
regressão linear Múltipla
O segundo conjunto de dados contém observações sobre o percentual de pessoas de bicicleta para o trabalho a cada dia, o percentual de pessoas de fumar, e o percentual de pessoas com doenças do coração em um imaginário amostra de 500 cidades.

descarregue os conjuntos de dados de amostra para o experimentar.,

dados de regressão simples conjunto de dados de regressão múltipla conjunto de dados de regressão múltipla

começar em R

começar por descarregar R e RStudio. Em seguida, abra o RStudio e clique no Arquivo > Novo Arquivo > R Script.

à medida que passamos por cada passo, você pode copiar e colar o código das Caixas de texto diretamente em seu script. Para executar o código, seleccione as linhas que deseja executar e carregue no botão Executar no canto superior direito do editor de texto (ou carregue em ctrl + enter no teclado).,p>

Para instalar os pacotes necessários para a análise, executar esse código (você só precisará fazer isso uma vez):

install.packages("ggplot2")
install.packages("dplyr")
install.packages("broom")
install.packages("ggpubr")

em seguida, carregar os pacotes para o seu ambiente R executando este código (o que você precisa fazer isso toda vez que você reiniciar R):

library(ggplot2)
library(dplyr)
library(broom)
library(ggpubr)

Passo 1: Carregar os dados para R

Siga estes quatro passos para cada conjunto de dados:

  1. No RStudio, vá para o Arquivo > Importar conjunto de dados > a Partir de Texto (base).,
  2. escolha o ficheiro de dados que transferiu (rendimento.dados ou coração.dados), e uma janela de Dados De Importação aparece.
  3. na janela da Moldura de dados, você deve ver uma coluna e colunas X (índice) listando os dados para cada uma das variáveis (renda e felicidade ou ciclismo, fumar e coração.doenca).
  4. carregue no botão Importar e o ficheiro deverá aparecer na sua página de ambiente no lado superior direito do ecrã RStudio.

Depois de carregar os dados, verifique se foram lidos correctamente usando summary().,

de regressão Simples

summary(income.data)

Devido a ambas as variáveis são quantitativas, quando estamos a executar essa função, podemos ver uma tabela em nosso console com um resumo numérico dos dados.,Isto diz-nos o mínimo, mediana, média e máxima de valores da variável independente (renda) e a variável dependente (felicidade):

de regressão Múltipla

summary(heart.data)

Novamente, porque as variáveis são quantitativas, executando o código produz um resumo numérico dos dados para as variáveis independentes (de fumar e andar de bicicleta) e a variável dependente (doenças do coração):

o Que é o plágio pontuação?,Compare o seu trabalho com mais de 60 mil milhões de páginas web e 30 milhões de publicações.

  • o Melhor verificador de plágio de 2020
  • Plágio relatório & porcentagem
  • Maior plágio de banco de dados

Scribbr Verificador de Plágio

Passo 2: certifique-se de que seus dados satisfazem os pressupostos

podemos usar o R para verificar que os nossos dados de cumprir os quatro principais premissas para a regressão linear.,

regressão simples

  1. independência das observações (também conhecida como sem autocorrelação)

porque só temos uma variável independente e uma variável dependente, não precisamos testar quaisquer relações ocultas entre as variáveis.

Se você sabe que você tem autocorrelação dentro de variáveis (ou seja, múltiplas observações do mesmo sujeito de teste), então não avance com uma simples regressão linear! Use um modelo estruturado, como um modelo linear de efeitos mistos, em vez disso.,

  1. Normalidade

Para verificar se a variável dependente segue uma distribuição normal, use o hist() função.

hist(income.data$happiness)

As observações são aproximadamente em forma de sino (mais observações no meio da distribuição, menos nas caudas), para que possamos prosseguir com a regressão linear.

  1. linearidade

a relação entre a variável independente e dependente deve ser linear., Podemos testar isso visualmente com um gráfico de dispersão para ver se a distribuição de pontos de dados pode ser descrita com uma linha reta.

plot(happiness ~ income, data = income.data)

A relação olha aproximadamente linear, para que possamos prosseguir com o modelo linear.

  1. Homoscedasticidade (também conhecida como homogeneidade da variância)

isto significa que o erro de previsão não muda significativamente ao longo do intervalo de previsão do modelo. Podemos testar esta suposição mais tarde, depois de encaixar o modelo linear.,

regressão múltipla

  1. independência das observações (também conhecida como sem autocorrelação)

Use a função

para testar a relação entre as suas variáveis independentes e garantir que não estão muito correlacionadas.

cor(heart.data$biking, heart.data$smoking)

Ao executarmos este código, a saída é de 0,015. A correlação entre andar de bicicleta e fumar é pequena (0,015 é apenas uma correlação de 1,5%), por isso podemos incluir ambos os parâmetros em nosso modelo.,

  1. normalidade

Use a funçãohist() para testar se a sua variável dependente segue uma distribuição normal.

hist(heart.data$heart.disease)

A distribuição das observações aproximadamente em forma de sino, para que possamos prosseguir com a regressão linear.

  1. linearidade

Podemos verificar isto usando dois folhetos scatterplots: um para ciclismo e doenças cardíacas, e um para fumar e doenças cardíacas.,

plot(heart.disease ~ biking, data=heart.data)

plot(heart.disease ~ smoking, data=heart.data)

Embora a relação entre o tabagismo e a doença cardíaca é um pouco menos claro, ele ainda aparece linear. Podemos prosseguir com regressão linear.

  1. Homoscedasticidade

vamos verificar isto depois de fazer o modelo.,

Passo 3: realizar a análise de regressão linear

Agora que determinou que os seus dados cumprem os pressupostos, pode efectuar uma análise de regressão linear para avaliar a relação entre as variáveis independentes e dependentes.

regressão simples: renda e felicidade

vamos ver se há uma relação linear entre renda e felicidade em nossa pesquisa de 500 pessoas com renda variando de $15k a $75k, onde a felicidade é medida em uma escala de 1 a 10.,

para realizar uma análise de regressão linear simples e verificar os resultados, você precisa executar duas linhas de código. A primeira linha de código faz com que o modelo linear, e a segunda linha imprime o resumo do modelo:

income.happiness.lm <- lm(happiness ~ income, data = income.data)summary(income.happiness.lm)

A saída se parece com isso:

Esta tabela de saída de primeiro apresenta o modelo de equação e, em seguida, resume o modelo de resíduos (ver passo 4).,

a secção dos coeficientes mostra:

  1. as estimativas (estimativa) para os parâmetros do modelo – o valor da interceptação em y (neste caso 0,204) e o efeito estimado da renda na felicidade (0,713).
  2. o erro padrão dos valores estimados (DST. Erro).
  3. a estatística do ensaio (valor t, neste caso a estatística t).
  4. o valor de p [Pr(>| t|)], ou seja, a probabilidade de encontrar a dada estatística de t se a hipótese nula de nenhuma relação fosse verdadeira.,

As três últimas linhas são diagnósticos de modelos – a coisa mais importante a notar é o valor p (aqui é 2.2 e-16, ou quase zero), que irá indicar se o modelo se encaixa bem com os dados.

destes resultados, podemos dizer que há uma relação positiva significativa entre renda e felicidade (valor p < 0,001), com um aumento de 0,713-unidade (+/- 0,01) na felicidade para cada aumento unitário na renda.,

regressão múltipla: ciclismo, tabagismo e doenças cardíacas

vamos ver se há uma relação linear entre ciclismo para o trabalho, tabagismo e doenças cardíacas em nosso levantamento imaginário de 500 cidades. As taxas de ciclismo para o trabalho variam entre 1% e 75%, as taxas de tabagismo entre 0,5% e 30% e as taxas de doenças cardíacas entre 0,5% e 20,5%.

para testar a relação, primeiro encaixamos um modelo linear com doença cardíaca como a variável dependente e motociclismo e fumar como as variáveis independentes., Execute estas duas linhas de código:

heart.disease.lm<-lm(heart.disease ~ biking + smoking, data = heart.data)summary(heart.disease.lm)

A saída se parece com isso:

O efeito estimado da bicicleta sobre a doença de coração é -0.2, enquanto a estimativa do efeito do hábito de fumar é de 0,178.isto significa que, para cada aumento de 1% na ciclagem para o trabalho, há uma diminuição correlacionada de 0, 2% na incidência de doenças cardíacas. Enquanto isso, por cada aumento de 1% no tabagismo, há um aumento de 0,178% na taxa de doenças cardíacas.,

os erros padrão para estes coeficientes de regressão são muito pequenos, e as estatísticas-t são muito grandes (-147 e 50.4, respectivamente). Os valores-p refletem esses pequenos erros e grandes estatísticas-T. Para ambos os parâmetros, há quase zero probabilidade de que este efeito seja devido ao acaso.

lembre-se que estes dados são feitos para este exemplo, então na vida real essas relações não seriam tão claras!,

Passo 4: Verificar a homoscedasticidade

antes de prosseguir com a visualização de dados, devemos certificar-nos de que os nossos modelos se encaixam na suposição homoscedasticidade do modelo linear.

de regressão Simples

Nós podemos executar o plot(income.happiness.lm) para verificar se os dados observados atende o nosso modelo de pressupostos:

par(mfrow=c(2,2))
plot(income.happiness.lm)
par(mfrow=c(1,1))

Note que o par(mfrow()) comando irá dividir as Parcelas janela para o número de linhas e colunas especificado entre parênteses., So par(mfrow=c(2,2)) divide-o em duas linhas e duas colunas. Para voltar a plotar um grafo em toda a janela, defina os parâmetros novamente e substitua o (2,2) por (1,1).

estas são as parcelas residuais produzidas pelo código:

os resíduos são a variância inexplicada. Eles não são exatamente o mesmo que o erro do modelo, mas eles são calculados a partir dele, então ver um viés nos resíduos também indicaria um viés no erro.,

a coisa mais importante a procurar é que as linhas vermelhas que representam a média dos resíduos são todas basicamente horizontais e centradas em torno de zero. Isto significa que não existem valores anómalos ou desvios nos dados que tornem inválida uma regressão linear.

no Q-Qplot Normal no canto superior direito, podemos ver que os resíduos reais do nosso modelo formam uma linha quase perfeita de um para um com os resíduos teóricos de um modelo perfeito.com base nestes resíduos, podemos dizer que o nosso modelo corresponde à suposição de homoscedasticidade.,

de regressão Múltipla

Novamente, devemos verificar que o nosso modelo é, na verdade, um bom ajuste para os dados, e que nós não temos uma grande variação no modelo de erro, executando este código:

par(mfrow=c(2,2))
plot(heart.disease.lm)
par(mfrow=c(1,1))

A saída se parece com isso:

Como com o nosso regressão simples, os resíduos não mostram viés, portanto, podemos dizer que o nosso modelo se encaixa a suposição de homocedasticidade.,

Passo 5: Visualize os resultados com um gráfico

a seguir, podemos traçar os dados e a linha de regressão a partir do nosso modelo de regressão linear para que os resultados possam ser partilhados.

regressão simples

siga 4 passos para visualizar os resultados da sua regressão linear simples.,

  1. Plotar os pontos de dados em um gráfico de
income.graph<-ggplot(income.data, aes(x=income, y=happiness))+ geom_point()income.graph

  1. Adicione a linha de regressão linear para os dados plotados

Adicionar a linha de regressão usando geom_smooth() e digitar lm como método para criar a linha. Isto irá adicionar a linha da regressão linear, bem como o erro padrão da estimativa (neste caso +/- 0.,01) como uma luz cinza listra circundantes a linha:

income.graph <- income.graph + geom_smooth(method="lm", col="black")income.graph

  1. Adicione a equação para a linha de regressão.
income.graph <- income.graph + stat_regline_equation(label.x = 3, label.y = 7)income.graph

  1. Fazer o gráfico pronto para publicação

Nós podemos adicionar alguns parâmetros de estilo usando theme_bw() e fazer etiquetas personalizadas usando labs().,

income.graph + theme_bw() + labs(title = "Reported happiness as a function of income", x = "Income (x$10,000)", y = "Happiness score (0 to 10)")

Este produz acabado de gráfico que você pode incluir em seus documentos:

de regressão Múltipla

A visualização etapa da regressão múltipla é mais difícil do que para a regressão simples, porque agora temos dois preditores. Uma opção é traçar um plano, mas estes são difíceis de ler e não muitas vezes publicado.vamos tentar um método diferente: traçar a relação entre ciclismo e doenças cardíacas em diferentes níveis de tabagismo., Neste exemplo, fumar será tratado como um fator com três níveis, apenas para fins de exibir as relações em nossos dados.existem 7 passos a seguir.

  1. crie um novo dataframe com a informação necessária para desenhar o modelo

Use a função expand.grid() para criar um dataframe com os parâmetros que fornece., Dentro desta função nós iremos:

  • Criar uma sequência do valor mais baixo para o mais alto dos seus dados de ciclismo observados;
  • escolher os valores mínimo, médio e máximo de fumar, a fim de fazer 3 níveis de fumo sobre os quais predizer as taxas de doença cardíaca.

isto não irá criar nada de novo na sua consola, mas deverá ver uma nova moldura de dados a aparecer na página ambiente. Clique nele para vê-lo.,

  1. prevê os valores da doença cardíaca com base no seu modelo linear

em seguida, vamos salvar os nossos valores ‘y previstos’ como uma nova coluna no conjunto de dados que acabamos de criar.

plotting.data$predicted.y <- predict.lm(heart.disease.lm, newdata=plotting.data)
  1. Ronda de fumar números para duas casas decimais

Isso fará com que a legenda de mais fácil leitura mais tarde.,

plotting.data$smoking <- round(plotting.data$smoking, digits = 2)
  1. Alterar o ‘fumar’ variável para o factor

Isto permite-nos assinalar a interação entre a bicicleta e a doença cardíaca em cada um dos três níveis de tabagismo que escolheu.,

plotting.data$smoking <- as.factor(plotting.data$smoking)
  1. Plot the original data
heart.plot <- ggplot(heart.data, aes(x=biking, y=heart.disease)) + geom_point()heart.plot

  1. Add the regression lines
heart.plot <- heart.plot + geom_line(data=plotting.data, aes(x=biking, y=predicted.y, color=smoking), size=1.25)heart.plot

  1. Make the graph ready for publication

Because this graph has two regression coefficients, the stat_regline_equation() function won’t work here., Mas se queremos adicionar o nosso modelo de regressão para o gráfico, podemos fazer assim:

heart.plot + annotate(geom="text", x=30, y=1.75, label=" = 15 + (-0.2*biking) + (0.178*smoking)")

Este é o terminar de gráfico que você pode incluir em seus documentos!

Passo 6: relate os seus resultados

além do gráfico, inclua uma breve declaração explicando os resultados do modelo de regressão.

Relatórios os resultados de regressão linear simples
encontramos uma relação significativa entre renda e felicidade (p < de 0,001, R2 = 0.73 ± 0.,0193), com um aumento de 0,73 unidades na felicidade relatada para cada aumento de $10,000 na renda.
Relatórios os resultados de regressão linear múltipla
Em nossa pesquisa de 500 cidades, nós encontradas relações significativas entre a frequência de bike para o trabalho e a freqüência de doença cardíaca e a frequência de tabagismo e frequência de doença cardíaca (p < 0 e p<0,001, respectivamente).especificamente, encontramos uma diminuição de 0, 2% (±0.,0014) na frequência da doença cardíaca para cada aumento de 1% no ciclismo, e um aumento de 0, 178% (±0, 0035) na frequência da doença cardíaca para cada aumento de 1% no tabagismo.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *