El comando stargazer produce código LaTeX, código HTML y texto ASCII para tablas bien formateadas que contienen los resultados del análisis de regresión de varios modelos uno al lado del otro. También puede generar estadísticas resumidas y contenido del marco de datos. stargazer admite una gran cantidad de objetos modelo de una variedad de paquetes.
Algunos argumentos importantes para sus uso
type: Un vector de caracteres que especifica qué tipo de salida debe producir el comando. Los valores posibles son “latex” (predeterminado) para el código LaTeX, “html” para el código HTML / CSS, “texto” para la salida de texto ASCII.
…: Uno o más objetos de modelo (para tablas de análisis de regresión) o marcos de datos / vectores / matrices (para estadísticas de resumen o salida directa de contenido). También se pueden incluir como listas (o incluso listas dentro de listas).
title: Un vector de caracteres con títulos para las tablas.
summary: Un valor lógico que indica si el paquete debe generar una tabla de resumen de estadísticas cuando se le da un marco de datos. Si es FALSE, el paquete generará en su lugar el contenido del marco de datos.
allign: Un valor lógico que indica si los valores numéricos de la misma columna deben alinearse con la marca decimal en la salida LaTeX. Requiere usepackage {dcolumn} en el preámbulo de LaTeX.
Ahora, para ejecutar un modelo de regresión simple de mínimos cuadrados ordinarios (OLS) y un modelo corregido con estimación HAC robusta, se colocaran los dos en el argumento “…” ambos separados por una coma. No sin antes de haber realizado la estimación robusta del modelo
options(scipen = 999999)
library(foreign)
datos_regresion <- read.dta("https://stats.idre.ucla.edu/stat/data/crime.dta")
modelo_crime<-lm(crime~poverty+single,data=datos_regresion)
print(modelo_crime)
##
## Call:
## lm(formula = crime ~ poverty + single, data = datos_regresion)
##
## Coefficients:
## (Intercept) poverty single
## -1368.189 6.787 166.373
library(lmtest)
white_test<-bptest(modelo_crime,~I(poverty^2)+I(single^2)+poverty*single,data = datos_regresion)
print(white_test)
##
## studentized Breusch-Pagan test
##
## data: modelo_crime
## BP = 10.73, df = 5, p-value = 0.057
Hay evidencia de heterocedasticidad y autocorrelación ya que p value < que 0.05
Autocorrelación de segundo orden
library(lmtest)
prueba_LM<-bgtest(modelo_crime,order = 2)
print(prueba_LM)
##
## Breusch-Godfrey test for serial correlation of order up to 2
##
## data: modelo_crime
## LM test = 0.27165, df = 2, p-value = 0.873
No hay evidencia de autocorrelación de 2° orden ya que p.value > 0.05
library(car)
## Loading required package: carData
durbinWatsonTest(model = modelo_crime)
## lag Autocorrelation D-W Statistic p-value
## 1 -0.07014421 2.040007 0.954
## Alternative hypothesis: rho != 0
No hay evidencia de autocorrelación de 1° orden ya que p.value > 0.05
options(scipen = 99999)
library(lmtest)
#Sin corregir:
coeftest(modelo_crime)
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1368.1887 187.2052 -7.3085 0.00000000247861 ***
## poverty 6.7874 8.9885 0.7551 0.4539
## single 166.3727 19.4229 8.5658 0.00000000003117 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
options(scipen = 99999)
library(lmtest)
library(sandwich)
#Corregido
estimacion_omega<-vcovHC(modelo_crime,type = "HC0")
coeftest(modelo_crime,vcov. = estimacion_omega)
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1368.1887 276.4111 -4.9498 0.00000956181 ***
## poverty 6.7874 10.6010 0.6403 0.5251
## single 166.3727 25.4510 6.5370 0.00000003774 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
library(stargazer)
errores_corregidos<- sqrt(diag(estimacion_omega))
stargazer(modelo_crime,modelo_crime,se=list(NULL,errores_corregidos),
type = "html",title = "Comparación de modelos con estimación HAC",column.labels = c("modelo original", "modelo corregido"))
| Dependent variable: | ||
| crime | ||
| modelo original | modelo corregido | |
| (1) | (2) | |
| poverty | 6.787 | 6.787 |
| (8.989) | (10.601) | |
| single | 166.373*** | 166.373*** |
| (19.423) | (25.451) | |
| Constant | -1,368.189*** | -1,368.189*** |
| (187.205) | (276.411) | |
| Observations | 51 | 51 |
| R2 | 0.707 | 0.707 |
| Adjusted R2 | 0.695 | 0.695 |
| Residual Std. Error (df = 48) | 243.610 | 243.610 |
| F Statistic (df = 2; 48) | 57.964*** | 57.964*** |
| Note: | p<0.1; p<0.05; p<0.01 | |
library(lmtest)
library(sandwich)
#Corregido:
estimacion_omega2<-NeweyWest(modelo_crime,lag = 2)
coeftest(modelo_crime,vcov. = estimacion_omega)
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1368.1887 276.4111 -4.9498 0.00000956181 ***
## poverty 6.7874 10.6010 0.6403 0.5251
## single 166.3727 25.4510 6.5370 0.00000003774 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
options(scipen = 999999)
library(robustbase)
library(stargazer)
modelo_crime_robust<-lmrob(crime~poverty+single,data=datos_regresion)
# print(summary(modelo_crime_robust))
stargazer(modelo_crime,modelo_crime_robust,type = "html",title = "comparación de modelos con estimación robusta de orden 1",column.labels = c("original","corregido"))
| Dependent variable: | ||
| crime | ||
| OLS | MM-type | |
| linear | ||
| original | corregido | |
| (1) | (2) | |
| poverty | 6.787 | 11.466 |
| (8.989) | (9.263) | |
| single | 166.373*** | 176.569*** |
| (19.423) | (23.223) | |
| Constant | -1,368.189*** | -1,539.640*** |
| (187.205) | (235.765) | |
| Observations | 51 | 51 |
| R2 | 0.707 | 0.795 |
| Adjusted R2 | 0.695 | 0.787 |
| Residual Std. Error (df = 48) | 243.610 | 191.864 |
| F Statistic | 57.964*** (df = 2; 48) | |
| Note: | p<0.1; p<0.05; p<0.01 | |
estimacion.omega2 <- NeweyWest(modelo_crime,lag = 2)
errores_standard_corregidos.2 <- sqrt(diag(estimacion.omega2))
stargazer(modelo_crime,modelo_crime, se = list(NULL, errores_standard_corregidos.2),
column.labels = c("original", "corregido"),
type = "html",
title="Comparación de modelos con estimación robusta de orden 2")
| Dependent variable: | ||
| crime | ||
| original | corregido | |
| (1) | (2) | |
| poverty | 6.787 | 6.787 |
| (8.989) | (10.594) | |
| single | 166.373*** | 166.373*** |
| (19.423) | (25.915) | |
| Constant | -1,368.189*** | -1,368.189*** |
| (187.205) | (303.847) | |
| Observations | 51 | 51 |
| R2 | 0.707 | 0.707 |
| Adjusted R2 | 0.695 | 0.695 |
| Residual Std. Error (df = 48) | 243.610 | 243.610 |
| F Statistic (df = 2; 48) | 57.964*** | 57.964*** |
| Note: | p<0.1; p<0.05; p<0.01 | |