Como criar um histograma de resíduos em r


Uma das principais suposições da regressão linear é que os resíduos são normalmente distribuídos.

Uma forma de verificar visualmente esta suposição é criar um histograma dos resíduos e observar se a distribuição segue ou não um “formato de sino” que lembra a distribuição normal .

Este tutorial fornece um exemplo passo a passo de como criar um histograma de resíduos para um modelo de regressão em R.

Etapa 1: crie os dados

Primeiro, vamos criar alguns dados falsos para trabalhar:

 #make this example reproducible
set.seed(0)

#createdata
x1 <- rnorm(n=100, 2, 1)
x2 <- rnorm(100, 4, 3)
y <- rnorm(100, 2, 3)
data <- data.frame(x1, x2, y)

#view first six rows of data
head(data)

        x1 x2 y
1 3.262954 6.3455776 -1.1371530
2 1.673767 1.6696701 -0.6886338
3 3.329799 2.1520303 5.8081615
4 3.272429 4.1397409 3.7815228
5 2.414641 0.6088427 4.3269030
6 0.460050 5.7301563 6.6721111

Passo 2: Ajustar o modelo de regressão

A seguir, ajustaremos um modelo de regressão linear múltipla aos dados:

 #fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=data)

Etapa 3: Crie um histograma de resíduos

Por fim, usaremos o pacote de visualização ggplot para criar um histograma dos resíduos do modelo:

 #load ggplot2
library (ggplot2)

#create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
    geom_histogram(fill = ' steelblue ', color = ' black ') +
    labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ')

Histograma de resíduos em R

Observe que também podemos especificar o número de caixas para colocar os resíduos usando o argumento bin .

Quanto menos caixas houver, mais largas serão as barras no histograma. Por exemplo, poderíamos especificar 20 compartimentos :

 #create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
    geom_histogram(bins = 20 , fill = ' steelblue ', color = ' black ') +
    labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ') 

Histograma residual em R

Ou poderíamos especificar 10 compartimentos :

 #create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
    geom_histogram(bins = 10 , fill = ' steelblue ', color = ' black ') +
    labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ') 

Não importa quantas caixas especifiquemos, podemos ver que os resíduos têm distribuição aproximadamente normal.

Também poderíamos realizar um teste estatístico formal como Shapiro-Wilk, Kolmogorov-Smirnov ou Jarque-Bera para testar a normalidade.

No entanto, tenha em mente que estes testes são sensíveis a amostras grandes – ou seja, muitas vezes concluem que os resíduos não são normais quando o tamanho da amostra é grande.

Por esta razão, muitas vezes é mais fácil avaliar a normalidade criando um histograma dos resíduos.

Add a Comment

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