Se carga la libreria AER el cual es un paquete de Econometría Aplicada que contiene conjuntos de datos y herramientas para análisis econométricos.
library(AER)
Se cargan los datos USMacroG, un conjunto de datos macroeconómicos de EE.UU. disponible en el paquete AER previamente cargada. Este contiene datos del período comprendido entre 1950 y el año 2000. Para la regresión lineal simple, se utilizarán las variables gdp (Producto Interno Bruto) y government (gasto del gobierno en bienes y servicios),
library(ggplot2)
data("USMacroG")
La función head() muestra los primeros 15 datos de las dos variables seleccionadas, posteriormente la función lm() estima cómo el gasto público influye en el PIB.
head(USMacroG[, c("government", "gdp")], 15)
## government gdp
## [1,] 361.0 1610.5
## [2,] 366.4 1658.8
## [3,] 359.6 1723.0
## [4,] 382.5 1753.9
## [5,] 421.9 1773.5
## [6,] 480.1 1803.7
## [7,] 534.2 1839.8
## [8,] 563.7 1843.3
## [9,] 584.8 1864.7
## [10,] 604.4 1866.2
## [11,] 610.5 1878.0
## [12,] 620.8 1940.2
## [13,] 641.2 1976.0
## [14,] 655.9 1992.2
## [15,] 647.6 1979.5
USA1 <- lm(gdp ~ government, data = USMacroG)
Para crear un diagrama de dispersión que nos muestre la relación entre las dos variables usamos las siguientes instrucciones.
ggplot(data= USMacroG, aes(x = government, y = gdp)) +
geom_point(col= "black") +
geom_smooth(method = 'lm', formula = y~x, se=FALSE, col="brown")+
theme_classic()+
theme(panel.border = element_rect(
fill = "transparent", color = "black", linewidth = 1.5))+
labs(title = "PIB vs Gastos reales del gobierno",
subtitle = "gdp = 6.607e+00 (government) - 2.025e+03")+
theme(plot.tag.position = "bottomright")+
theme(plot.title = element_text(family = "serif",
face = "bold",color = "brown",size=15))+
theme(plot.tag =element_text(family = "serif", face = "bold"))+
theme(axis.title = element_text(family = "serif", face = "bold")) +
theme(panel.grid.major.x = element_line(color = "grey",
linewidth = 0.25,
linetype = 1)) +
theme(panel.grid.minor.y = element_line(color = "grey",
linewidth = 0.25,
linetype = 1)) +
theme(panel.grid.major.y = element_line(color = "grey",
linewidth = 0.25,
linetype = 1)) +
theme(panel.grid.minor.x = element_line(color = "grey",
linewidth = 0.25,
linetype = 1)) +
scale_y_continuous(breaks = seq(0, 10000, by = 500)) +
scale_x_continuous(breaks = seq(200, 1600, by = 200))
Se ejecuta “USA1” para inspeccionar el modelo de regresión lineal previamente ajustado, lo cual mostrara los valores estimados de β0 y β1.
USA1
##
## Call:
## lm(formula = gdp ~ government, data = USMacroG)
##
## Coefficients:
## (Intercept) government
## -2024.678 6.607
Para obtener un resumen estadístico de USA1 se usa summary(USA1). El cual incluye los coeficientes de la regresión, sus errores estándar, valores t y p para evaluar su significancia y el coeficiente de determinación (R²) que mide el ajuste del modelo.
summary(USA1)
##
## Call:
## lm(formula = gdp ~ government, data = USMacroG)
##
## Residuals:
## Min 1Q Median 3Q Max
## -855.06 -273.40 -20.37 219.78 1371.79
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.025e+03 9.975e+01 -20.30 <2e-16 ***
## government 6.607e+00 9.546e-02 69.21 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 426.3 on 202 degrees of freedom
## Multiple R-squared: 0.9595, Adjusted R-squared: 0.9593
## F-statistic: 4790 on 1 and 202 DF, p-value: < 2.2e-16
A continuación se utiliza $fitted.value para extraer y analizar los valores ajustados, los cuales corresponden a los puntos sobre la recta de regresión lineal estimada.
(head(USA1$fitted.value, 15)) #Muestra la variable x y su valor en la recta con respecto al modelo
## 1 2 3 4 5 6 7 8
## 360.4625 396.1406 351.2127 502.5139 762.8312 1147.3608 1504.8015 1699.7091
## 9 10 11 12 13 14 15
## 1839.1176 1968.6156 2008.9185 2076.9710 2211.7546 2308.8781 2254.0396
A continuación se muestra el código para extraer el elemento $residuals que contiene los residuales. Los cuales indican la distancia entre las observaciones reales de los valores predichos, lo que permite evaluar el ajuste del modelo.
(head(USA1$residuals, 15))
## 1 2 3 4 5 6 7
## 1250.03745 1262.65945 1371.78731 1251.38614 1010.66884 656.33923 334.99847
## 8 9 10 11 12 13 14
## 143.59085 25.58235 -102.41559 -130.91853 -136.77102 -235.75459 -316.67805
## 15
## -274.53964