# Define o espelho do CRAN (escolha um próximo a você)
options(repos = c(CRAN = "https://cran.rstudio.com/")) # Ou outro espelho
# Carregar pacotes necessários}
library(ggplot2)
# Criar dados de exemplo
set.seed(123)
x <- 1:100
y <- 2 * x + rnorm(100, mean = 0, sd = 10)
# Ajustar modelo de regressão linear
modelo <- lm(y ~ x)
# Criar gráfico de dispersão com linha de regressão
ggplot(data = data.frame(x, y), aes(x = x, y = y)) +
geom_point() +
geom_smooth(method = "lm", col = "blue") +
labs(title = "Regressão Linear Simples", x = "Número de Participantes", y = "Custo variável")
Regressão Linear
Tutorial Transformação Digital nº11
Neste tutorial são abordados alguns conceitos sobre regressão linear, incluindo regressão linear simples e múltipla e análise, utilizando a linguagem e ambiente de computação estatística R. São apresentados alguns exemplos práticos com os respectivos códigos na linguagem R.
Contato: transformacao.digital@fjp.mg.gov.br
1 Introdução
A regressão linear é um método estatístico usado para entender a relação entre uma variável dependente (ou resposta) e uma ou mais variáveis independentes (ou preditoras). O objetivo é encontrar uma equação que descreva essa relação, de forma que, dado um valor das variáveis independentes, possamos prever o valor da variável dependente.
Tipicamente usada quando o desfecho (ou variável dependente) é numérico ou contínuo, pois a relação entre a variável dependente e as variáveis independentes é modelada por uma linha reta. Isso significa que a variável dependente pode assumir uma infinidade de valores dentro de um intervalo, como a temperatura, a altura, o preço, a quantidade de vendas, entre outros.
Em uma regressão linear simples, onde há apenas uma variável independente, a relação é representada por uma linha reta. A equação dessa linha é geralmente expressa como:
y=a+bx
Onde:
y = é a variável dependente,
x = é a variável independente,
a = é o intercepto (onde a linha cruza o eixo y),
b = é o coeficiente de inclinação, que mostra a mudança em y para uma unidade de mudança em x.
Quando há mais de uma variável independente, a regressão linear múltipla é usada, estendendo essa fórmula para incluir múltiplos coeficientes.
Exemplo:
Suponha que o custo de atos públicos (Y) em Alphaville seja determinado pelo número de participantes (x), da seguinte forma: Y = valor_fixo + custo_variável * x. Utilizando regressão linear, analisamos essa relação.
O gráfico demonstra a tendência de aumento de custos com o crescimento do público.
2 Interpretação e Aplicações
A reta de regressão é uma ferramenta poderosa que nos permite:
Modelar a Relação entre Variáveis: Representar a dependência de uma variável quantitativa (desfecho ou variável resposta) em relação a outra variável (explicativa ou preditora), que pode ser quantitativa ou qualitativa, por meio de uma equação linear. Essa equação descreve a relação matemática entre as variáveis.
Predizer Valores: Estimar valores para a variável resposta (Y) a partir de valores especificados da variável preditora (x), mesmo que esses valores de x não tenham sido observados diretamente nos dados originais. Importante: A predição é mais confiável dentro da faixa de valores de x observados nos dados utilizados para construir o modelo. Extrapolar para valores muito fora dessa faixa pode levar a resultados imprecisos.
Avaliar a Qualidade do Ajuste: O coeficiente de determinação (R²) mede a proporção da variabilidade na variável resposta que é explicada pelo modelo de regressão. R² varia de 0 a 1, onde valores mais próximos de 1 indicam um melhor ajuste. Por exemplo, um R² de 0,71 significa que 71% da variação nos dados é explicada pela reta de regressão
3 Requisitos:
Para garantir a validade das inferências feitas a partir de um modelo de regressão linear, algumas suposições importantes devem ser atendidas:
- Homocedasticidade: A variância da variável resposta (y) deve ser constante para todos os valores da variável preditora (x). Em outras palavras, a dispersão dos pontos em torno da reta de regressão deve ser similar ao longo de toda a reta.
- Linearidade: A relação entre as variáveis deve ser linear. O gráfico de dispersão dos dados deve mostrar uma tendência linear, e não uma relação curvilínea ou outra forma não-linear.
- Independência: As observações devem ser independentes umas das outras. Isso significa que o valor de y para uma observação não deve ser influenciado pelo valor de y para outras observações.
- Normalidade (aproximada) dos Resíduos: Os resíduos (a diferença entre os valores observados de y e os valores preditos pelo modelo) devem seguir uma distribuição aproximadamente normal. Essa suposição é importante para a validade dos testes estatísticos associados à regressão.
- Mensuração sem Erro da Variável Preditora (X): Idealmente, a variável preditora deve ser medida sem erro. Na prática, algum erro de mensuração é comum, mas erros grandes podem afetar a precisão do modelo.
Os gráficos são os seguintes:
- Homocedasticidade e Linearidade: Gráfico de resíduos vs preditos
Os pontos devem ficar aleatoriamente distribuídos em torno de uma linha horizontal paralela ao eixo x na altura do resíduo zero
Homocedasticidade (somente); Gráfico de \(\sqrt(abs( resíduo ) )\) vs valor pedito:
Os pontos devem ficar aleatoriamente distribuídos em torno de uma linha horizontal paralela ao eixo x mas não do valor zero
Normalidade: gráfico de probabilidade dos resíduos. Os pontos deve ficar distribuídos ao longo da reta y = x
Detecção de pontos atípicos: distância de Cook: valores grandes são identificados como outliers.
3.1 Tratamento inicial
Para começar, é necessário colocar sua base no R. Pode ser criada diretamente ou lida através do comando read. E a seguir classifica as variáveis do estudo conforme necessidade.
# df<-read.table("base_de_dados.txt",h=T) #Caso tenha uma base de dados a ser inserida
# is.numeric(x) #verifica se a variável está como númerica
# is.factor(z) #verifica se a variável está como categórica
# x <- as.numeric(x) #classifica variável como númerica
# z <- as.factor(z) # Converte para categóricoNo nosso caso, estamos atuando apenas com variáveis numéricas. Mas o script apresentado oferece as demais opções.
3.2 Gráfico de Dispersão
Primeiro passo na análise de regressão é visualizar a relação entre as duas variáveis através de um gráfico de dispersão.
O gráfico ajuda a identificar qualquer padrão linear entre as variáveis.
# Criar gráfico de dispersão com linha de regressão
ggplot(data = data.frame(x, y), aes(x = x, y = y)) +
geom_point() +
geom_smooth(method = "lm", col = "blue") +
labs(title = "Relação de custo variável por participante", x = "Número de Participantes", y = "Custo variável")3.3 Correlação
Agora vamos calcular a correlação entre ambos.
A correlação nos dá uma medida da força e direção da relação entre as duas variáveis. O valor varia de -1 (correlação negativa perfeita) a +1 (correlação positiva perfeita). Um valor próximo de 0 indica que não há correlação linear significativa.
Para testar estatisticamente a hipótese de que a correlação é diferente de zero, podemos usar o teste de correlação:
O teste de correlação nos fornecerá o valor-p, que nos ajuda a avaliar se a correlação observada é estatisticamente significativa.
# Calculando a correlação entre custo variável e participante
cor(x, y)[1] 0.9882186
# Realizando o teste de correlação
cor.test(x, y)
Pearson's product-moment correlation
data: x and y
t = 63.92, df = 98, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.9825096 0.9920716
sample estimates:
cor
0.9882186
4 Regressão Linear Simples
Agora, vamos ajustar o modelo de regressão linear simples para modelar a relação entre altura e idade. O modelo de regressão linear simples assume que a relação entre as variáveis é linear.
# Ajustando o modelo de regressão linear simples
mod1 <- lm(y ~ x)
# Exibindo o resumo do modelo
summary(mod1)
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-24.5356 -5.5236 -0.3462 6.4850 20.9487
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.36404 1.84287 -0.198 0.844
x 2.02511 0.03168 63.920 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 9.145 on 98 degrees of freedom
Multiple R-squared: 0.9766, Adjusted R-squared: 0.9763
F-statistic: 4086 on 1 and 98 DF, p-value: < 2.2e-16
O sumário do modelo nos fornece informações sobre os coeficientes da regressão, seus erros padrão, os valores t e os valores-p. A partir dos coeficientes, podemos obter a equação da reta de regressão.
Além disso, podemos calcular os intervalos de confiança para os coeficientes do modelo. O default do R calcula como 95% de certeza.
# Calculando os intervalos de confiança para os coeficientes
confint(mod1) 2.5 % 97.5 %
(Intercept) -4.021162 3.293085
x 1.962239 2.087983
4.1 Gráficos para Verificação da Adequação do Ajuste
Agora, vamos verificar a adequação do modelo ajustado através de gráficos dos resíduos. A suposição de homocedasticidade e a análise de normalidade dos resíduos são fundamentais para validar o modelo de regressão linear.
Serão gerados 4 gráficos com este trecho.
Gráfico 1: Resíduos vs. Valores Ajustados
O que é mostrado:
Este gráfico exibe os resíduos do modelo (diferença entre os valores observados e os valores ajustados) no eixo y, e os valores ajustados (preditos pelo modelo) no eixo x.
Como interpretar:
Bom ajuste: Resíduos dispersos de maneira aleatória em torno de zero, sem formar padrões visíveis.
Problema de homocedasticidade: Padrões como “funil”, onde os resíduos são maiores para valores ajustados mais altos ou baixos.
Gráfico 2: Normal Q-Q (Quantis-Quantis)
O que é mostrado:
Este gráfico compara os resíduos do modelo com a distribuição normal. Os quantis dos resíduos (valores ordenados) são plotados contra os quantis de uma distribuição normal padrão.
Bom ajuste: Os pontos devem seguir aproximadamente a linha reta, o que indica que os resíduos têm distribuição normal.
Problema de normalidade: Se os pontos se afastam da linha reta, especialmente nas extremidades (caudas), isso pode indicar não-normalidade dos resíduos, sugerindo que outras distribuições podem ser mais adequadas.
Gráfico 3: Resíduos vs. Leverage
O que é mostrado:
Este gráfico mostra os resíduos (no eixo y) contra a leverage (no eixo x). Leverage é uma medida de quanto um ponto de dados influencia o modelo de regressão.
Como interpretar:
Bom ajuste: Não há pontos com alto leverage que distorçam o modelo, e os resíduos são pequenos para todos os pontos.
Problema de pontos influentes: Se houver pontos isolados com resíduos grandes e leverage alto (geralmente destacados no gráfico com círculos ou símbolos diferentes), isso indica que esses pontos podem estar influenciando muito o modelo.
Gráfico 4: Resíduos Padronizados vs. Valores Ajustados
O que é mostrado:
Este gráfico mostra os resíduos padronizados (resíduos divididos pela estimativa de erro padrão) em função dos valores ajustados. Isso ajuda a verificar a variação nos resíduos de forma padronizada.
Como interpretar:
Bom ajuste: Os resíduos padronizados devem estar espalhados aleatoriamente em torno de zero, sem formar padrões evidentes.
Problemas possíveis: Se os resíduos tiverem padrões ou se houver muitos resíduos padronizados fora da faixa de -3 a +3, isso pode indicar problemas no modelo, como outliers ou heterocedasticidade.
par(mfrow=c(2,2))
plot(mod1, which=c(1:4), add.smooth=T,pch=20)4.2 Teste de Normalidade dos Resíduos:
Além das observações dos gráficos, podemos realizar análises estatísticas sobre nosso estudo.
Vamos agora verificar se os resíduos seguem uma distribuição normal usando o teste de normalidade de Shapiro-Wilk.
O teste de Shapiro-Wilk nos ajuda a verificar a hipótese de que os resíduos seguem uma distribuição normal. Se o valor-p for pequeno (geralmente menor que 0,05), rejeitamos a hipótese de normalidade dos resíduos.
# Teste de normalidade dos resíduos
shapiro.test(mod1$resid)
Shapiro-Wilk normality test
data: mod1$resid
W = 0.99343, p-value = 0.9124
4.3 Teste de Homocedasticidade
A homocedasticidade é a suposição de que a variância dos resíduos é constante para todos os valores de idade. Para testar essa suposição, podemos fazer um teste simples.
Este teste nos ajuda a avaliar se a variância dos resíduos é constante ao longo dos valores ajustados. O valor-p nos informa se devemos ou não rejeitar a hipótese de homocedasticidade.
# Teste de variância não-constante (homocedasticidade)
summary(lm(abs(residuals(mod1)) ~ fitted(mod1)))
Call:
lm(formula = abs(residuals(mod1)) ~ fitted(mod1))
Residuals:
Min 1Q Median 3Q Max
-7.136 -4.013 -1.394 3.606 17.319
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.434830 1.091833 6.809 7.92e-10 ***
fitted(mod1) -0.001497 0.009294 -0.161 0.872
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 5.433 on 98 degrees of freedom
Multiple R-squared: 0.0002647, Adjusted R-squared: -0.009937
F-statistic: 0.02595 on 1 and 98 DF, p-value: 0.8724
5 Regressão Linear Simples Múltipla
5.1 O que é Regressão Linear Múltipla?
A regressão linear múltipla é uma extensão da regressão linear simples que permite modelar a relação entre uma variável dependente e várias variáveis independentes (como idade, x1, x2, etc.). Essa abordagem é útil quando acreditamos que mais de uma variável pode influenciar a variável de resposta.
A fórmula geral para um modelo de regressão linear múltipla é:
y=β0+β1x1+β2x2+ϵ
Onde:
y é a variável dependente (PIO),
x1 e x2 são as variáveis independentes,
β0 é o intercepto,
β1 e β2 são os coeficientes das variáveis independentes,
ϵ é o erro (resíduo).
5.2 Ajustando o Modelo de Regressão Linear Múltipla
Vamos ajustar um modelo de regressão linear múltipla, incluindo duas variáveis independentes (x1 e x2), além de idade (se já disponível no seu conjunto de dados).
O resumo do modelo nos fornece:
Coeficientes das variáveis independentes: Indica o efeito de cada variável explicativa na variável dependente.
Valor p: Para testar se o coeficiente de cada variável é estatisticamente significativo. Se o valor p for menor que 0,05, a variável é significativa.
R² ajustado: A proporção da variação da variável dependente explicada pelas variáveis independentes.
# Ajustando o modelo de regressão linear simples
mod1 <- lm(y ~ x)
# Exibindo o resumo do modelo
summary(mod1)
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-24.5356 -5.5236 -0.3462 6.4850 20.9487
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.36404 1.84287 -0.198 0.844
x 2.02511 0.03168 63.920 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 9.145 on 98 degrees of freedom
Multiple R-squared: 0.9766, Adjusted R-squared: 0.9763
F-statistic: 4086 on 1 and 98 DF, p-value: < 2.2e-16
5.3 Verificando a Adequação do Ajuste no Modelo Múltiplo
Para verificar a adequação do modelo, geramos gráficos de diagnóstico. Esses gráficos ajudam a avaliar a normalidade dos resíduos, a homocedasticidade, a presença de outliers e o leverage dos pontos, como já visto.
# Gerando os gráficos de diagnóstico para o modelo de regressão múltipla
par(mfrow = c(2, 2))
plot(modelo)5.3.1 Interpretação do Modelo de Regressão Linear Múltipla
Após ajustar o modelo, podemos usar o summary(modelo) para obter o resumo do modelo. O resumo fornece informações sobre os coeficientes e a significância estatística.
# Exibindo o resumo do modelo
summary(modelo)
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-24.5356 -5.5236 -0.3462 6.4850 20.9487
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.36404 1.84287 -0.198 0.844
x 2.02511 0.03168 63.920 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 9.145 on 98 degrees of freedom
Multiple R-squared: 0.9766, Adjusted R-squared: 0.9763
F-statistic: 4086 on 1 and 98 DF, p-value: < 2.2e-16
A variável pessoas_beneficiarias_pbf tem uma relação positiva relativamente alta com o primeiro componente principal (Dim.1) e uma relação positiva menor com o segundo componente principal (Dim.2). Isso indica que essa variável contribui significativamente para ambos os componentes principais, mas tem uma importância maior no primeiro.
Por fim, o PIB tem uma relação positiva muito alta com o segundo componente principal (Dim.2) e uma relação positiva menor com o primeiro componente principal (Dim.1). Isso sugere que essa variável é essencialmente representada pelo segundo componente principal e tem uma importância menor no primeiro.
6 Referências
UNIVERSIDADE FEDERAL DE MINAS GERAIS. Análise de Regressão Linear no Pacote R. Disponível em: https://www.est.ufmg.br/portal/wp-content/uploads/2023/01/RTE-01-2009.pdf. Acesso em: 18 mar. 2025.
UNIVERSIDADE DE PASSO FUNDO. Análise de Regressão Linear com o Auxílio do RStudio. Disponível em: https://www.upf.br/_uploads/Conteudo/cepeac/textos-discussao/texto-07-2021.pdf. Acesso em: 18 mar. 2025.
SASSI, Cecília P.; PEREZ, Felipe G.; MYAZATO, Leticia; YE, Xiao; FERREIRA-SILVA, Paulo H.; LOUZADA, Francisco. Modelos de regressão linear múltipla utilizando os softwares R E Statistica: uma aplicação a dados de conservação de frutas. São Paulo: Universidade de São Paulo, 2011. Disponível em: https://repositorio.usp.br/item/002297573. Acesso em: 18 mar. 2025.
NASCIMENTO, Edgar. Correlação e Regressão Linear no R. RPubs, 2020. Disponível em: https://rpubs.com/Prof_Edgar_Nascimento/657579. Acesso em: 18 mar. 2025.