U1A13

Jorge Valenzuela Parra

29/9/2020

Regresión lineal simple parte 2

Regresión Lineal Simple

  • Para este ejercicio se utilizará la serie de datos “trees” que son medidas de árboles “black cherry”.

Árboles Black Cherry

  • Importar datos
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(prettydoc)
head(trees)
##   Girth Height Volume
## 1   8.3     70   10.3
## 2   8.6     65   10.3
## 3   8.8     63   10.2
## 4  10.5     72   16.4
## 5  10.7     81   18.8
## 6  10.8     83   19.7
  • Conociendo los datos
glimpse(trees)
## Rows: 31
## Columns: 3
## $ Girth  <dbl> 8.3, 8.6, 8.8, 10.5, 10.7, 10.8, 11.0, 11.0, 11.1, 11.2, 11....
## $ Height <dbl> 70, 65, 63, 72, 81, 83, 66, 75, 80, 75, 79, 76, 76, 69, 75, ...
## $ Volume <dbl> 10.3, 10.3, 10.2, 16.4, 18.8, 19.7, 15.6, 18.2, 22.6, 19.9, ...
  • Resumen estadístico
summary(trees)
##      Girth           Height       Volume     
##  Min.   : 8.30   Min.   :63   Min.   :10.20  
##  1st Qu.:11.05   1st Qu.:72   1st Qu.:19.40  
##  Median :12.90   Median :76   Median :24.20  
##  Mean   :13.25   Mean   :76   Mean   :30.17  
##  3rd Qu.:15.25   3rd Qu.:80   3rd Qu.:37.30  
##  Max.   :20.60   Max.   :87   Max.   :77.00
  • Matriz de diagramas de dispersión
pairs(trees)

  • Matriz de diagramas de correlación
cor(trees)
##            Girth    Height    Volume
## Girth  1.0000000 0.5192801 0.9671194
## Height 0.5192801 1.0000000 0.5982497
## Volume 0.9671194 0.5982497 1.0000000
  • Prueba de correlación de pearson El coeficiente de correlación de Pearson es una prueba que mide la relación estadística entre dos variables continuas. Si la asociación entre los elementos no es lineal, entonces el coeficiente no se encuentra representado adecuadamente.
cor.test(x = trees$Girth, y = trees$Volume, method = "pearson", digits = 3)
## 
##  Pearson's product-moment correlation
## 
## data:  trees$Girth and trees$Volume
## t = 20.478, df = 29, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.9322519 0.9841887
## sample estimates:
##       cor 
## 0.9671194
library(GGally)
## Loading required package: ggplot2
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
ggpairs(trees, lower=list(continuous = "smooth"), diag = list(continuous = "bar"), axisLabels = "none")
## Warning in check_and_set_ggpairs_defaults("diag", diag, continuous =
## "densityDiag", : Changing diag$continuous from 'bar' to 'barDiag'
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

De lo analizado hasta aquí, podemos concluír:

  1. La variable “girth” está relacionada con la variable “volume”, por lo cual la usaremos como respuesta en este modelo.

  2. El coeficiente de correlación de Pearson es bastante alto: 0.9671194, y el valor de P es significativo (p < 2.2e-16). Esto indica una correlación intensa.

  3. Si tiene sentido generar un modelo de regresión lineal simple, dado que tiene una correlación y significancia importante.

Modelo de regresión lineal simple

modelo.lineal <- lm(Volume ~ Girth, data = trees)
summary(modelo.lineal)
## 
## Call:
## lm(formula = Volume ~ Girth, data = trees)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -8.065 -3.107  0.152  3.495  9.587 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -36.9435     3.3651  -10.98 7.62e-12 ***
## Girth         5.0659     0.2474   20.48  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.252 on 29 degrees of freedom
## Multiple R-squared:  0.9353, Adjusted R-squared:  0.9331 
## F-statistic: 419.4 on 1 and 29 DF,  p-value: < 2.2e-16
  • Ecuación de la recta de mínimos cuadrados

\[ -36.9435 +5.0659x \]

  • Intervalos de confianza
confint(modelo.lineal)
##                  2.5 %     97.5 %
## (Intercept) -43.825953 -30.060965
## Girth         4.559914   5.571799
  • Representación gráfica del modelo
ggplot(data = trees, mapping = aes(x = Girth, y = Volume)) +
geom_point(color = "firebrick", size = 2) +
geom_smooth(method = "lm", se = TRUE, color = "black") +
labs(title = "Volumen ~ Diámetro", x = "Diámetro", y = "Volumen") +
theme_bw() + theme(plot.title = element_text(hjust = 0.5)) 
## `geom_smooth()` using formula 'y ~ x'

## Verificar condiciones para aceptar o no el modelo

  • Para evaluar las condiciones que permiten decir que el modelo es válido, se hará un análisis de resultados.
par(mfrow = c(1, 2))
plot(modelo.lineal)

## Contraste de hipótesis (normalidad de los residuos)

Según el método de prueba de Shapiro-wilk El test de Shapiro-Wilks plantea la hipótesis nula que una muestra proviene de una distribución normal. Eligimos un nivel de significanza, por ejemplo 0,05, y tenemos una hipótesis alternativa que sostiene que la distribución no es normal.

shapiro.test(modelo.lineal$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo.lineal$residuals
## W = 0.97889, p-value = 0.7811
  • Según el modelo de prueba de Sairnov Cosmograv

La prueba de Kolmogorov-Smirnov para una muestra es un procedimiento de “bondad de ajuste”, que permite medir el grado de concordancia existente entre la distribución de un conjunto de datos y una distribución teórica específica. Su objetivo es señalar si los datos provienen de una población que tiene la distribución teórica especificada, es decir, contrasta si las observaciones podrían razonablemente proceder de la distribución especificada.

Residuales * Test de Breush-Pagan

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
bptest(modelo.lineal)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo.lineal
## BP = 5.6197, df = 1, p-value = 0.01776
  • Análisis gráfico de autocorrelación de los residuos
ggplot(data = trees, aes(x =seq_along(modelo.lineal$residuals), y= modelo.lineal$residuals))+
  geom_point(aes(color=modelo.lineal$residuals))+
  geom_line(size=0.3)+
  labs(title = "Distribución de los residuos", x="index", y="residuo")+
  geom_hline(yintercept = 0)+
  theme(plot.title = element_text(hjust=0.5), legend.position= "non")

#Residuos estudentizados
studentized_residual <- rstudent(modelo.lineal)
which(abs(studentized_residual)>3)
## named integer(0)

Gráfica de residuos estudentizados

library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
summary(influence(model=modelo.lineal))
##              Length Class  Mode   
## hat          31     -none- numeric
## coefficients 62     -none- numeric
## sigma        31     -none- numeric
## wt.res       31     -none- numeric
influencePlot(model=modelo.lineal)

##      StudRes        Hat      CookD
## 1   1.315573 0.11514037 0.10983618
## 20 -2.030440 0.03328798 0.06408063
## 31  2.837732 0.21519431 0.88805814
  • Redactar este ejercicio con sus palabras y sus conclusiones

Redacción

Con todo este análisis se pueden concluír varias cosas empezando que la correlación inicial que están dependiendo el diámetro del volumen de la muestra de árboles, siendo una correlación de arriba de 0.9.

También nos muestra los intervalos de confianza y la recta de mínimos cuadrados que estas dos variables aplica que su relación es efectiva en casi todas las ocasiones.

Y de igual manera los métodos y análisis de los residuos nos ayudaron a observar y analizar que en esta muestra (y como en la mayoría) existen datos que simplemente no entran en lo que se puede analizar porque están alejados de la recta principal.

Referencias bibliográficas