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(ggplot2)
library(olsrr)
##
## Attaching package: 'olsrr'
## The following object is masked from 'package:datasets':
##
## rivers
set.seed(60)
x = runif(5000,0,100)
b0=2
b1=5
mu = b0 + b1*x
set.seed(100)
#parametros
n <- 2000
p <- 0.7
e =rbinom(5000,n,p)-n*p
mean(e) # Aprox. cero
## [1] 0.0582
y = mu + e
modelo <-lm(y~x)
modelo
##
## Call:
## lm(formula = y ~ x)
##
## Coefficients:
## (Intercept) x
## 3.089 4.980
modelo |> residuals() -> residuales
data.frame(residuales) |>
ggplot(aes(sample=residuales))+
stat_qq(size = 2) +
stat_qq_line(distribution = "qnorm")+
labs(x = "Cuantil teórico",
y = "Residuales")+
theme_minimal()
Nivel de significancia: α = 0.05
Estadistico: Test de normalidad de Shapiro Wilk
residuales |> shapiro.test()
##
## Shapiro-Wilk normality test
##
## data: residuales
## W = 0.99983, p-value = 0.9798
Decisión: Como el p-value = 0.9798 > 0.05 , No se rechaza Ho.
Conclusión: A un 95% de confianza existe evidencia estadística para afirmar que los errores se distribuyen normalmente.
modelo |> plot(which=1)
Nivel de significancia: α = 0.05
Estadistico: Prueba de Breusch Pagan
modelo |> ols_test_breusch_pagan()
##
## Breusch Pagan Test for Heteroskedasticity
## -----------------------------------------
## Ho: the variance is constant
## Ha: the variance is not constant
##
## Data
## -----------------------------
## Response : y
## Variables: fitted values of y
##
## Test Summary
## ------------------------------
## DF = 1
## Chi2 = 6.662752
## Prob > Chi2 = 0.009844877
Decisión: Como el p-value = 0.0098 < 0.05 , Se rechaza Ho.
Conclusión: A un 95% de confianza existe evidencia estadística para afirmar que los errores No tienen varianza homogénea.
De las preguntas 7 y 8 se observa que el problema que debemos corregir es la heterocedasticidad de los errores.
mu = (mu-min(mu))/(max(mu)-min(mu)) #valores entre 0 y 1
set.seed(140)
e =rbinom(5000,n,p)-n*p
y = mu + e
y = (y-min(y))/(max(y)-min(y))#valores entre 0 y 1
par(mfrow=c(2,2))
plot(x,y)
plot(x,asin(sqrt(y)))
plot(lm(y~x),which=1)
plot(lm(asin(sqrt(y))~x),which=1)
modelo2<-lm(asin(sqrt(y))~x)
Nivel de significancia: α = 0.05
Estadistico: Prueba de Breusch Pagan
modelo2 |> ols_test_breusch_pagan()
##
## Breusch Pagan Test for Heteroskedasticity
## -----------------------------------------
## Ho: the variance is constant
## Ha: the variance is not constant
##
## Data
## -----------------------------------------
## Response : asin(sqrt(y))
## Variables: fitted values of asin(sqrt(y))
##
## Test Summary
## -----------------------------
## DF = 1
## Chi2 = 0.07838392
## Prob > Chi2 = 0.7794995
Decisión: Como el p-value = 0.7795 > 0.05 , No se rechaza Ho.
Conclusión: A un 95% de confianza existe evidencia estadística para afirmar que los errores tienen varianza homogénea. Se ha corregido el problema de la pregunta 8 con el modelo2.