Comenzamos por cargar los datos
library(latex2exp)
Datos = read.csv("ejemplo4.csv")
y después realizamos el scatterplot inicial
# Ajuste del modelo
fit=lm(y~x, data=Datos)
# Gráfica
par(mfrow=c(1,1))
par(mar=c(4, 5, 1, 1))
plot(Datos$x, Datos$y, xlab = TeX("$x$"), ylab=TeX("$y$"))
abline(fit, col="red")
Dado que este ejemplo ya fue trabajado, para recordar que los estos supuestos se cumplen cuando transformamos a la variable \(x\) bastará con ver las gráficas que R
trae por defecto. Primero
#Se transforma X a X^2 para lograr linealidad
Datos$Xprima=Datos$x^2
# Se realiza el ajuste con los datos transformados
fit2=lm(y~Xprima, data=Datos)
# Gráfica
par(mfrow=c(1,1))
par(mar=c(4, 5, 1, 1))
plot(Datos$Xprima, Datos$y, xlab = TeX("$x$"), ylab=TeX("$y$"))
abline(fit2, col="red")
Y finalmente
#gráficas para linealidad-homocedasticidad-normalidad
par(mar=c(4, 5, 2, 1))
par(mfrow=c(1,3))
plot(fit2, 1)
plot(fit2, 3)
plot(fit2, 2)
Comenzamos por ver el gráfico sobre el índice de los datos
#gráfica sobre el índice de los datos
# Librería para calcular los errores
library(broom)
Datosfit2=augment(fit2)
# Gráfica
par(mar=c(4, 5, 3, 1))
par(mfrow=c(1,1))
plot(1:length(Datosfit2$.std.resid), Datosfit2$.std.resid, xlab = TeX("$i$"), ylab=TeX("$e_s$") )
Seguimos con el autocorrelograma
#autocorrelograma de los errores
acf(Datosfit2$.std.resid)
Pasamos a realizar las pruebas de rachas
#Prueba de rachas
library(lawstat)
lawstat::runs.test(Datosfit2$.std.resid, plot.it = TRUE)
##
## Runs Test - Two sided
##
## data: Datosfit2$.std.resid
## Standardized Runs Statistic = -0.40204, p-value = 0.6877
library(randtests)
randtests::runs.test(Datosfit2$.std.resid)
##
## Runs Test
##
## data: Datosfit2$.std.resid
## statistic = -0.40204, runs = 49, n1 = 50, n2 = 50, n = 100, p-value =
## 0.6877
## alternative hypothesis: nonrandomness
siendo así que no se está rechanzado \(H_{0}\), lo cual es justamente lo que buscamos.
Finalmente la prueba de Durbin-Watson
#Prueba para autocorrelación de orden 1 (Durbin-Watson)
lmtest::dwtest(fit2)
##
## Durbin-Watson test
##
## data: fit2
## DW = 2.0289, p-value = 0.5368
## alternative hypothesis: true autocorrelation is greater than 0
library(car)
# La librería car tiene una función para revisar más órdenes
durbinWatsonTest(fit2, max.lag=5)
## lag Autocorrelation D-W Statistic p-value
## 1 -0.02506064 2.028857 0.898
## 2 -0.10994695 2.196005 0.274
## 3 0.14725154 1.630055 0.112
## 4 -0.09643929 2.064546 0.488
## 5 -0.01099229 1.887869 0.956
## Alternative hypothesis: rho[lag] != 0
no rechazándose \(H_{0}\) en todas las pruebas. Concluimos pues que no hay evidencia suficiente en contra del supuesto de la covarianza cero.
Analicemos este supuesto en el modelo antes de transformar los datos
# Cálculo de los errores
Datosfit=augment(fit)
# Gráfica original
par(mar=c(4, 5, 3, 1))
par(mfrow=c(1,3))
plot(Datos$x, Datos$y, xlab = TeX("$x$"), ylab=TeX("$y$") )
# Gráfica sobre el índice de los datos
plot(1:length(Datosfit$.std.resid), Datosfit$.std.resid, xlab = TeX("$i$"), ylab=TeX("$e_s$"))
# Prueba de rachas
lawstat::runs.test(Datosfit$.std.resid, plot.it = TRUE)
##
## Runs Test - Two sided
##
## data: Datosfit$.std.resid
## Standardized Runs Statistic = -5.6285, p-value = 1.818e-08
durbinWatsonTest(fit, max.lag=5)
## lag Autocorrelation D-W Statistic p-value
## 1 0.6951288 0.5710322 0.000
## 2 0.1907604 1.5756213 0.050
## 3 -0.3047335 2.5662998 0.004
## 4 -0.6735497 3.2966808 0.000
## 5 -0.7799410 3.4816793 0.000
## Alternative hypothesis: rho[lag] != 0
donde en cada prueba se está rechazando \(H_{0}\), es decir, es plausible asumir que los errores están autocorrelacionados (\(H_{a}\)).
Finalmente comparemos las gráficas:
par(mar=c(4, 5, 3, 1))
par(mfrow=c(1,2))
# Datos transformados
lawstat::runs.test(Datosfit2$.std.resid, plot.it = TRUE)
##
## Runs Test - Two sided
##
## data: Datosfit2$.std.resid
## Standardized Runs Statistic = -0.40204, p-value = 0.6877
# Datos no transformados
lawstat::runs.test(Datosfit$.std.resid, plot.it = TRUE)
##
## Runs Test - Two sided
##
## data: Datosfit$.std.resid
## Standardized Runs Statistic = -5.6285, p-value = 1.818e-08
siendo la gráfica de la derecha en la cual se hace más visible las rachas.