En conclusion el tercer modelo \(GastoPercapita=\beta_0+\beta_1(CanonPercapita)+\beta_2(FoncomunPercapita)\) esta correctamente especificado cuenta con una forma funcional correcta no presenta problemas de heterocedasticidad ni autocorrelacion.
Importamos los datos del excel que contiene los datos de la regresion del modelo de gasto donde esta como variable dependiente log de gasto e independientes las variables de canon y foncomun percapita.
datos <- read_excel("E:/datosdelmodelo.xlsx",
col_types = c("text", "numeric", "numeric",
"numeric", "numeric","numeric"))
head(datos)
## Warning: `...` is not empty.
##
## We detected these problematic arguments:
## * `needs_dots`
##
## These dots only exist to allow future extensions and should be empty.
## Did you misspecify an argument?
## # A tibble: 6 x 6
## Distrito Gasto Canon Foncomun Gastolog Gastoper
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 MUNICIPALIDAD PROVINCIAL DE PUNO 67813716 25.1 217. 7.83 488.
## 2 MUNICIPALIDAD DISTRITAL DE ACORA 8838055 45.0 292. 6.95 364.
## 3 MUNICIPALIDAD DISTRITAL DE AMANTANI 3048551 45.8 375. 6.48 857.
## 4 MUNICIPALIDAD DISTRITAL DE ATUNCOLLA 4010084 335. 339. 6.60 832.
## 5 MUNICIPALIDAD DISTRITAL DE CAPACHICA 4298087 62.3 368. 6.63 549.
## 6 MUNICIPALIDAD DISTRITAL DE CHUCUITO 2655902 35.9 244. 6.42 358.
$(GastoTotal)= _1+_2(CanonPercapita)+_3(FoncomunPercapita) $
primermodelo=lm(Gasto ~ Canon + Foncomun, data = datos)
summary(primermodelo)
##
## Call:
## lm(formula = Gasto ~ Canon + Foncomun, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -8360778 -5903113 -3462723 -41550 80932427
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8978132.8 3031068.0 2.962 0.00377 **
## Canon -5642.1 5803.5 -0.972 0.33315
## Foncomun 557.9 6320.0 0.088 0.92982
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 12490000 on 107 degrees of freedom
## Multiple R-squared: 0.008894, Adjusted R-squared: -0.009631
## F-statistic: 0.4801 on 2 and 107 DF, p-value: 0.62
El primer modelo presentado sale poco significativo y con unos coeficientes extraños. ## ESTIMAMOS EL SEGUNDO MODELO DE REGRESION $log(GastoTotal)= _1+_2(CanonPercapita)+_3(FoncomunPercapita) $
segundo_modelo=lm(Gastolog ~ Canon + Foncomun, data = datos)
summary(segundo_modelo)
##
## Call:
## lm(formula = Gastolog ~ Canon + Foncomun, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.92177 -0.26810 -0.03373 0.20541 1.34942
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.543e+00 9.990e-02 65.489 <2e-16 ***
## Canon -8.182e-05 1.913e-04 -0.428 0.6697
## Foncomun 3.666e-04 2.083e-04 1.760 0.0813 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4118 on 107 degrees of freedom
## Multiple R-squared: 0.02815, Adjusted R-squared: 0.009986
## F-statistic: 1.55 on 2 and 107 DF, p-value: 0.217
Observamos que el modelo es siignificativo en la mayoria y el canon percapita es poco significativo. ## ESTIMAMOS EL TERCER MODELO DE REGRESION
$GastoPercapita= _1+_2(CanonPercapita)+_3(FoncomunPercapita) $
tercer_modelo=lm(Gastoper ~ Canon + Foncomun, data = datos)
summary(tercer_modelo)
##
## Call:
## lm(formula = Gastoper ~ Canon + Foncomun, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1052.85 -313.46 -171.69 47.59 3109.98
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -15.1456 155.0400 -0.098 0.9224
## Canon 0.6240 0.2969 2.102 0.0379 *
## Foncomun 2.1089 0.3233 6.524 2.34e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 639 on 107 degrees of freedom
## Multiple R-squared: 0.3411, Adjusted R-squared: 0.3288
## F-statistic: 27.69 on 2 and 107 DF, p-value: 2.028e-10
Vemos lo que es una primera aproximacion del modelo pero no podemos aceptarla porque hay cierto problema en la especificacion del modelo primero que no sabemos si las variables utilizadas son las correctas o tal vez haya una omision de variables lo que nos considera a una mala especificacion o que haya variables que estan consideradas sean tan relevantes PARA ESO USAMOS EL TEST DE RESET RAMSEY:
\(H_0\): El modelo tiene una Fomra funcional correcta
\(H_a\): Forma funcional incorrecta
resettest(tercer_modelo)
##
## RESET test
##
## data: tercer_modelo
## RESET = 0.70739, df1 = 2, df2 = 105, p-value = 0.4953
El Test de reset muestra que el p-value=0.4953>0.05; por lo no se encuentra evidencia suficiente para rechazar la hipotesis nula; por lo que en terminos más simples decimos que el modelo tiene una forma funcional correcta estadisticamente con el test de RAMSEY
pairs(~Gastoper + Canon + Foncomun,
data = datos,
main = "Matriz de dispersiones simple",
col="black")
Detectamos si existe una posible multicolinealidad del modelo
cor(datos[c("Gastoper","Canon","Foncomun")], use ="complete")
## Gastoper Canon Foncomun
## Gastoper 1.0000000 0.2810853 0.5602515
## Canon 0.2810853 1.0000000 0.2141099
## Foncomun 0.5602515 0.2141099 1.0000000
Para asegurarnos que no hay multicolienlidad perfecta en el modelo usamos la prueva VIF(factor de inflacion de Varianza) es sencillo de interpretar si es =1 no existe multicolineadlidas si esta entre 1 a 5 existe multicolinealidad moderada si esta de 5 + existe multicolinealidad perfecta que deberia de ser solucionada, no se especificara la formula de ninguno de los test.
vif(tercer_modelo)
## Canon Foncomun
## 1.048046 1.048046
Vemos que ninguna de las variables tienen multicolinealidad perfecta pero si tienen multicolinealidad imperfecta por lo que es normal esperar este tipo de multicolinealidad.
Vemos que es lo que ocurre en el residuo de modelo porque podrian haber problemas de heterocedasticidad y autocorrelacion
residuos=tercer_modelo$residuals
plot(residuos, type = "l")
Graficamos los cuadrados de la varianza para ver graficamente si podria haber autocorrelacion
cuadrado=residuos^2
plot(cuadrado,type="l")
Podemos intuir que no hay autocorrelacion porque los graficos no siguen tendencias pero es mejor verlo con un test porque la baja cantidad de datos no podemos ver claramente la presencia de autocorrelacion
test de durbin whatson para detectar la autocorrelacion
\(H_0\) No existe autocorrelacion
\(H_a\) Existe autocorrelacion
dwtest(tercer_modelo)
##
## Durbin-Watson test
##
## data: tercer_modelo
## DW = 1.9482, p-value = 0.3866
## alternative hypothesis: true autocorrelation is greater than 0
Se concluye que el pvalue>0.05 entonces se concluye que no hay evidencia suficiente para rechazar la hipotesis nula por lo cual estamos en una zona donde no existe autocorrelacion Usamos otro test
\(H_0\): No existe autocorrelacion
Box.test(residuals(tercer_modelo), type = "Ljung-Box")
##
## Box-Ljung test
##
## data: residuals(tercer_modelo)
## X-squared = 0.054948, df = 1, p-value = 0.8147
Tambien demuestra que no existe autocorrelacion
para ver si hay heterocedasticidad
\(H_0\):Homosedasticidad, forma residual correcta
\(H_a\):Heterocedasticidad
No hay evidencia suficiente para rechazar la hipotesis nula por lo cual hay una homodesaticidad
bptest(tercer_modelo)
##
## studentized Breusch-Pagan test
##
## data: tercer_modelo
## BP = 5.7125, df = 2, p-value = 0.05749
0.0574>0.05 No hay evidencia suficiente para rechazar la hipotesis nula por en conclusion existe homosedasticidad, la forma residual es correcta
En conclusion el tercer modelo \(GastoPercapita=\beta_0+\beta_1(CanonPercapita)+\beta_2(FoncomunPercapita)\) esta correctamente especificado cuenta con una forma funcional correcta no presenta problemas de heterocedasticidad ni autocorrelacion.