En este Notebook presentamos las instrucciones básica del programa R para la realización del análisis de regresión lineal simple. para ello trabajeremos con los datos de la pluviosisdad acuosa y la altitud de 12 ciudades (en cientos de metros) para determinar la relación entre estas dos variables mediante un modelo de regresión lineal simple .
#Lectura de los datos
altitud <- c(9.3,6.1, 15.0, 23, 21,4,1.0, 14, 17, 0.5, 1.5, 10) # variable dependiente Y
precipitacion <- c(7.6,9.5,17.7,12.3,9.2,6.3,7.2,10.7,13.1,7.5,9.1,9.5 ) # variable predictora X
plot(altitud,precipitacion,main="Precipitación ~ altitud")# Gráfico de dispersión
# Ajuste del modelo lineal
modreg <- lm(precipitacion~altitud)
modreg
##
## Call:
## lm(formula = precipitacion ~ altitud)
##
## Coefficients:
## (Intercept) altitud
## 7.4566 0.2469
abline(modreg,col="green") # Pueden cambiar el el color a la linea, ejemplor , escribiendo red , blue...etc
El modelo de regresión lineal muestral es \(pluviosidad_i= 7.4566 + 0.2469*precipitación_i\)
#Anova del modelo
anova(modreg)
## Analysis of Variance Table
##
## Response: precipitacion
## Df Sum Sq Mean Sq F value Pr(>F)
## altitud 1 41.131 41.131 5.9584 0.03479 *
## Residuals 10 69.031 6.903
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# resumen del modelo, prueba sobre los parámetros y Coeficiente de determinación r^2
summary(modreg)
##
## Call:
## lm(formula = precipitacion ~ altitud)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.4415 -1.1626 -0.3194 0.7212 6.5399
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.4566 1.2805 5.823 0.000168 ***
## altitud 0.2469 0.1011 2.441 0.034790 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.627 on 10 degrees of freedom
## Multiple R-squared: 0.3734, Adjusted R-squared: 0.3107
## F-statistic: 5.958 on 1 and 10 DF, p-value: 0.03479
# I.C del 95% para los parámetros del modelo (beta0 y beta1)
confint(modreg)
## 2.5 % 97.5 %
## (Intercept) 4.60344782 10.3097428
## altitud 0.02152904 0.4722758
Análisis gráficos
# Graficas de verificación de normalidad , homogeneidad, independencia y datos influyente
par(mfrow=c(2,2))
plot(modreg)
# Obteniendo los residuales del modelo de regresión lineal muestral (error= observado - pronósticado)
errores <- modreg$residuals
# mostramos los errores redondeado a 3 cifras decimales con la función round()
round(errores,3)
## 1 2 3 4 5 6 7 8 9 10 11
## -2.153 0.537 6.540 -0.835 -3.442 -2.144 -0.503 -0.213 1.446 -0.080 1.273
## 12
## -0.426
Verificando el supuesto de normalidad
aplicamos el gráfico quantil-quantil o mejor conocido como el qqplot
qqnorm(errores)
qqline(errores,col="green")
Aplicando la prueba de Kolmogorov-Smirnoff y la prueba de Shapiro-Wilk
Las pruebas de normalidad más aplicadas son las pruebas de Shapiro-Wilk y de Kolmogorov-Smirnov . En estas pruebas se busca aceptar la \(H_0\): los errores se distribuye normal
ks.test(errores,"pnorm",mean=0,sd=sqrt(6.903)) # errores con media cero y desviación raiz(CME)
##
## Exact one-sample Kolmogorov-Smirnov test
##
## data: errores
## D = 0.20769, p-value = 0.6074
## alternative hypothesis: two-sided
shapiro.test(errores) #
##
## Shapiro-Wilk normality test
##
## data: errores
## W = 0.86474, p-value = 0.05608
Verificación del supuesto de Homogeneidad de varianza y Autocorrelación Se prueba la hipótesis de que la varianza de los residuales son iguales, es decir \(H_0\): la varianza de los errores es constante. aplicaremos la prueba de Breusch-Pagan Test, La función bptest del paquete lmtest 1 Zeileis and Hothorn (2002) implementa esta prueba.
# Carga de la libreria lmtest para la prueba de homogeneidad de varianza
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.3.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
bptest(modreg)
##
## studentized Breusch-Pagan test
##
## data: modreg
## BP = 1.0272, df = 1, p-value = 0.3108
De la salida anterior se observa que valor-P < del 5%, por lo tanto, se decide que se cumple la homogeneidad de los \(e_i\)
Prueba de autocorrelación o de independencia se estudian la siguiente hipótesis.\(H_0\):los errores son independientes.
implementando el test de Durbin-Watson
dwtest(modreg)
##
## Durbin-Watson test
##
## data: modreg
## DW = 1.7197, p-value = 0.2854
## alternative hypothesis: true autocorrelation is greater than 0
Bibliografia
Acevedo, Miguel. 2013. Data Analysis and Statistics for Geography, Environmental Science, and Engineering. Estados Unidos – Boca Ratón: CRC Press Taylor & Francis Group
Breusch, T. S. y Pagan, A. R. (1979). A simple test for heteroscedasticity and random coefficient variation. Econometrica, 47(5):1287–94.
CHATTERJEE, S. (1977). Regression analysis by example. New York: Wiley.
Ebdon, David. 1982. Estadística para geógrafos. España – Barcelona: Oikos-tau, s.a. – ediciones
R Core Team (2023). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/
Zeileis, Achim, and Torsten Hothorn. 2002. “Diagnostic Checking in Regression Relationships.” R News 2 (3): 7–10. https://CRAN.R-project.org/doc/Rnews/.
En el siguiente link se presenta como se realiza la descarga y carga de libreria en R como descargar y cargar libreria en R↩︎