Regressão Diagnóstico Pressupostos
Você não precisa usar o R, mas provavelmente é uma boa ideia.
Os modelos de regressão linear são um dos melhores procedimentos estatísticos quando utilizados corretamente. Quando usados de uma forma ingênua, eles podem ser enganadores ou pouco informativos.
Como todos os métodos úteis, os modelos lineares têm limitações. Eles não podem ser utilizados em toda base de dados que você encontrar ai. Em algum momento você precisa avaliar os seu pressupostos.
Os intervalos de confiança e os testes estatísticos só serão válidos se essas premissas forem verdadeiras para os dados que estão sendo analisados. Isso porque que todos os testes e intervalos baseiam-se, nas suas equações, em erros e resíduos. Portanto, é necessário verificar se essas premissas estão presentes antes de analisar a regressão
Quando as pressuposições são violadas, a confiabilidade de todos os testes paramétricos ficam comprometidas podendo levar a falsas conclusões.
Os comandos lm() e summary() são uma combinação útil para produzir valores agregados ou resumidos de um bancos de dados.
Usaremos o banco de dados CARROS para essas atividades.
source('https://raw.githubusercontent.com/DATAUNIRIO/Miscellaneous_Functions_Rstats/master/CARROS.R',encoding = "UTF-8")
library(DT)
CARROS %>% datatable(options = list(pageLength = 5, dom = 'tip'),fillContainer = FALSE,
caption = 'Tabela 1: Base de dados CARROS.')
Call:
lm(formula = Kmporlitro ~ +HP + Peso + Amperagem_circ_eletrico,
data = CARROS)
Residuals:
Min 1Q Median 3Q Max
-3.3598 -1.8374 -0.5099 0.9681 5.7078
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 29.394934 6.156303 4.775 5.13e-05 ***
HP -0.032230 0.008925 -3.611 0.001178 **
Peso -3.227954 0.796398 -4.053 0.000364 ***
Amperagem_circ_eletrico 1.615049 1.226983 1.316 0.198755
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.561 on 28 degrees of freedom
Multiple R-squared: 0.8369, Adjusted R-squared: 0.8194
F-statistic: 47.88 on 3 and 28 DF, p-value: 3.768e-11
Vou apresentar alguns procedimetos para avaliar um modelo de regressão. Todos os outros procedimentos podem ser vistos aqui. Esse artigo também está muito bom.
Shapiro-Wilk normality test
data: residuos
W = 0.91718, p-value = 0.01744
#Computes a score test of the hypothesis of constant error variance against the alternative that the error variance changes with the level of the response (fitted values), or with a linear combination of predictors.
library("lmtest")
bptest(fit, data = CARROS, studentize = TRUE)
studentized Breusch-Pagan test
data: fit
BP = 1.5987, df = 3, p-value = 0.6597
No Studentized residuals with Bonferroni p < 0.05
Largest |rstudent|:
rstudent unadjusted p-value Bonferroni p
Toyota Corolla 2.576771 0.015758 0.50427
A função gvlma() no pacote gvlma realiza uma validação global dos pressupostos de modelos lineares, bem como avaliações separadas de assimetria, curtose e heterocedasticidade.
Call:
lm(formula = Kmporlitro ~ +HP + Peso + Amperagem_circ_eletrico,
data = CARROS)
Residuals:
Min 1Q Median 3Q Max
-3.3598 -1.8374 -0.5099 0.9681 5.7078
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 29.394934 6.156303 4.775 5.13e-05 ***
HP -0.032230 0.008925 -3.611 0.001178 **
Peso -3.227954 0.796398 -4.053 0.000364 ***
Amperagem_circ_eletrico 1.615049 1.226983 1.316 0.198755
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.561 on 28 degrees of freedom
Multiple R-squared: 0.8369, Adjusted R-squared: 0.8194
F-statistic: 47.88 on 3 and 28 DF, p-value: 3.768e-11
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 13.852150 0.007782 Assumptions NOT satisfied!
Skewness 4.280466 0.038553 Assumptions NOT satisfied!
Kurtosis 0.008505 0.926519 Assumptions acceptable.
Link Function 8.802895 0.003008 Assumptions NOT satisfied!
Heteroscedasticity 0.760284 0.383240 Assumptions acceptable.
Duas referências: * https://www.statmethods.net/stats/rdiagnostics.html *http://r-statistics.co/Assumptions-of-Linear-Regression.html
Para fazer o download do banco de dados CARROS (e outros), copie e cole no R um desses dois códigos abaixo.
source('https://raw.githubusercontent.com/DATAUNIRIO/aulauniriov2/master/download_das_bases_de_dados_do_curso_de_estatistica.R')
install.packages("usethis")
usethis::use_course("https://github.com/DATAUNIRIO/Base_de_dados/archive/master.zip")
Para saber sobre outras funções no R e no Python, você pode acessar o meu blog https://blog.metodosquantitativos.com/ ou o meu site pessoal https://steven.metodosquantitativos.com/