Ejercicio de regresion lineal simple

1. Activar librerias

library(moments)
library(nortest)
library(lmtest)
## Cargando paquete requerido: zoo
## 
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric

2. Activar la base de datos

DATOS=as.data.frame(USDistLag)
head(DATOS)
##   consumption     gnp
## 1      522.67  832.57
## 2      550.36  876.32
## 3      578.81  929.40
## 4      605.92  984.89
## 5      620.16 1011.38
## 6      650.47 1058.15
attach(DATOS)

3. Declarar las variables

X = consumption
Y = gnp

4. Analisis de correlacián

#4.1 Diagrama de dispersión

plot(X,Y, main="Producto Nacional Bruto y Consumo real", ylab = "Producto Nacional Bruto",xlab = "Consumo real")

4.2 Coeficiente de correlacion muestral y prueba de hipotesis sobre el coeficiente de correlacion poblacional

r=cor(X,Y)
cat("Coeficiente de correlacion muestral =", {r})
## Coeficiente de correlacion muestral = 0.9977563

4.3 Prueba de hip?tesis sobre el coeficiente de correlaci?n poblacional

prueba_correlacion=cor.test(X,Y)
cat("P_valor=", {prueba_correlacion$p.value})
## P_valor= 1.357174e-22

4.4 Calcular el coeficiente de determinaci?n

R2=r^2
cat("El valor del coeficiente de determinacion es",{round(R2*100,1)})
## El valor del coeficiente de determinacion es 99.6

5. Construccion de la ecuacion de ajuste

ecuacion=lm(Y~X)
cat("estimacion del intercepto, bo=",{ecuacion$coefficients[1]}) 
## estimacion del intercepto, bo= 42.55959
cat("estimacion de la pendiente, b1=",{ecuacion$coefficients[2]}) 
## estimacion de la pendiente, b1= 1.544004

6. Validacion del modelo

residuales=resid(ecuacion)

6.1 Normalidad

6.1.1 Simetria

prueba_simetria=agostino.test(residuales)
cat("P_valor=", {prueba_simetria$p.value})
## P_valor= 0.2024535

6.1.2 Mesocúrtica (Esta prueba solo se realiza si se cumple con la propiedad de simetria)

prueba_mesocurtica=anscombe.test(residuales)
cat("P_valor=", {prueba_mesocurtica$p.value})
## P_valor= 0.3211108

6.1.3 Pruebas de ajuste a la normalidad (se realiza si se cumple con la propiedad de ser mesocurtico)

Opcion 1: Prueba de Jaque Bera

prueba_normalidad_1=jarque.test(residuales)
cat("P_valor=", {prueba_normalidad_1$p.value})
## P_valor= 0.5361567

Opcion 2:Cramer-von Mises

prueba_normalidad_2=cvm.test(residuales)
cat("P_valor=", {prueba_normalidad_2$p.value})
## P_valor= 0.407907

6.2 Prueba de independencia de los errores

prueba_independencia=dwtest(ecuacion)
cat("P_valor=", {prueba_independencia$p.value})
## P_valor= 0.009210101

6.3 Prueba de homocedasticidad

prueba_homocedasticidad=bptest(ecuacion)
cat("P_valor=", {prueba_homocedasticidad$p.value})
## P_valor= 0.2518338

#como realizar predicciones

nuevos.consumos <- data.frame(X = seq(500,1000))

Grafico de dispersion y recta

plot(X,Y, main="Producto Nacional Bruto y Consumo real", ylab = "Producto Nacional Bruto",xlab = "Consumo real")
abline(ecuacion,col="darkgreen")