Conocer algo de forma meramente cualitativa es conocerlo de manera vaga. Si tenemos conocimiento cuantitativo – captando alguna medida numérica que lo distinga de un número infinito de otras posibilidades – estamos comenzando a conocerlo en profundidad, comprendemos algo de su belleza y accedemos a su poder y al conocimiento que proporciona. El miedo a la cuantificación supone limitarse, renunciar a una de las perspectivas más firmes para entender y cambiar el mundo.
Carl Sagan. “Miles de Millones”
En el año de 1910 Pawel Ciompa utilizó por primera vez en Alemania el termino “econometría”. El significado literal de econometría es el de “medición económica”.
En el modelo de regresión lineal simple se quieren conocer las interrelaciones entre dos variables, de las cuales por lo menos una es una variable aleatoria
La relación entre Y y X es lineal.
Las Xi son variables no estocásticas (no aleatorias) cuyos valores son fijos (o controlados por el experimentador).
La media del término error es cero.
La varianza del término error es igual en todos los niveles de X. Es el principio de homocedasticidad.
No existe autocorrelación entre el término error de diferentes niveles de X.
La covarianza entre el término error y la variable explicativa X es cero.
El número de observaciones (el tamaño de la muestra) debe ser superior al número de parámetros a estimar.
Los valores de X en una muestra dada no pueden ser todos iguales, teóricamente la var(X) debe ser un número finito positivo.
El modelo está correctamente especificado.
No existe multicolinealidad perfecta.
url1<-"https://raw.githubusercontent.com/armandovl/datasets_uno/main/GPA_Y_CRECIMIENTO.csv"
Datos<-read.csv(url(url1))
head(Datos,4)
str(Datos)
## 'data.frame': 64 obs. of 3 variables:
## $ Pais : chr "ARGENTINA" "ARGENTINA" "ARGENTINA" "ARGENTINA" ...
## $ Gasto_Publico : num 3.57 3.8 3.57 3.69 5.36 5.8 5.36 5.4 13 13 ...
## $ Tasa_Crecimiento: num 2.06 2.1 2.06 2.16 1.81 1.8 1.81 1.8 3.6 3.56 ...
#sacar la correlación
cor(Datos[,2:3])
## Gasto_Publico Tasa_Crecimiento
## Gasto_Publico 1.000000 0.813722
## Tasa_Crecimiento 0.813722 1.000000
#desviación estandar en x
sd(Datos$Gasto_Publico)
## [1] 4.04219
#desviación estandar en y
sd(Datos$Tasa_Crecimiento)
## [1] 1.551846
#valor de la pendiente
correlacionXY<-cor(Datos[,2:3])[2]
desvX<-sd(Datos$Gasto_Publico)
desvY<-sd(Datos$Tasa_Crecimiento)
pendiente<-correlacionXY*(desvY/desvX)
print(pendiente)
## [1] 0.3123979
#calcular el valor de la pendiente 2
covarianzaXY<-cov(Datos$Gasto_Publico,Datos$Tasa_Crecimiento)
varianzaX<-var(Datos$Gasto_Publico)
pendiente2<-covarianzaXY/varianzaX
print(pendiente2)
## [1] 0.3123979
#cálculo del intercepto
mediaY<-mean(Datos$Tasa_Crecimiento)
mediaX<-mean(Datos$Gasto_Publico)
intercepto<-mediaY-(pendiente2*mediaX)
print(intercepto)
## [1] 0.7365085
#El modelo
regresion<-lm(Tasa_Crecimiento~Gasto_Publico, Datos)
regresion #los coeficientes
##
## Call:
## lm(formula = Tasa_Crecimiento ~ Gasto_Publico, data = Datos)
##
## Coefficients:
## (Intercept) Gasto_Publico
## 0.7365 0.3124
residuos=residuals(regresion)
la media de los residuos debe ser cero Tienen una media igual a cero
mean(residuos)
## [1] -2.072351e-17
la varianza debe ser constante Tienen varianza constante
#solo los residuos
plot(residuos)
Debe haber homogeneidad de varianzas, si no lo hay, se ve un embudo en el plot También podemos hacer la prueba Breusch-Pagan Test
library(lmtest)
#se busca que este valor sea mayor a o.o5 h0=homogeneidad de varianzas
bptest(regresion)
##
## studentized Breusch-Pagan test
##
## data: regresion
## BP = 0.030721, df = 1, p-value = 0.8609
Los errores son independientes. los errores se distribuyen en forma normal
hist(residuos, breaks=18 , col="lightblue")
hist(residuos, breaks=50 , col="lightblue", freq = FALSE)
lines(density(residuos), lwd = 2, col = 'blue')
hist(residuos, breaks=50 , col="lightblue", freq = FALSE)
lines(density(residuos), lwd = 2, col = 'blue')
#tendencia de curva normal
x <- seq(min(residuos), max(residuos), length = 40)
f <- dnorm(x, mean = mean(residuos), sd = sd(residuos))
lines(x, f, col = "red", lwd = 2)
#grafico unido
par(mfcol = c(1, 2))
plot(residuos)
hist(residuos, prob = TRUE, main = "Histograma de residuos")
lines(density(residuos), lwd = 2, col = 'blue')
par(mfcol = c(1, 1)) #resetea el parámetro
boxplot(residuos)
#datos resumen del modelo
summary(regresion)
##
## Call:
## lm(formula = Tasa_Crecimiento ~ Gasto_Publico, data = Datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.2914 -0.6642 -0.0423 0.2239 2.0047
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.73651 0.21572 3.414 0.00113 **
## Gasto_Publico 0.31240 0.02834 11.023 3.03e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9093 on 62 degrees of freedom
## Multiple R-squared: 0.6621, Adjusted R-squared: 0.6567
## F-statistic: 121.5 on 1 and 62 DF, p-value: 3.026e-16
Nos interesa saber si X es un buen predictor de Y, para ello hay que probar la hipótesis nula de que el parámetro 1 = 0 (o sea que la pendiente es cero) versus la alternativa de que es diferente de cero
La técnica de análisis de varianza parte del hecho de que la suma de cuadrados totales (SCT) se puede particionar en porciones a las cuales se les puede asignar un significado preciso: una parte debida a la media (SCM), otra debida al modelo de regresión (SCR) y una última no explicada y que es la suma de cuadrados de los residuos (SCE).
anova(regresion)
pr<0.05 Se rechaza la hipótesis nula y se concluye que el parámetro beta1 es diferente de cero, indicando con ello que X sí tiene capacidad predictiva sobre Y.
Mínimos cuadrados generalizados
Máxima verosimilitud
Regresion bayesiana
Regresion bde kernel
Regresión del proceso de gauss
vcov(regresion)
## (Intercept) Gasto_Publico
## (Intercept) 0.046536059 -0.0051962259
## Gasto_Publico -0.005196226 0.0008031649