knitr::opts_chunk$set(echo = TRUE, include = TRUE, fig.align = "center",
                      fig.width = 8.5, fig.height = 9, message = FALSE, 
                      warning = FALSE, results = "asis")
#############################################################################
# Portfolio Opimization
# Author: Matías Vicuña Cofré
#############################################################################
#******************** Configuraciones e Inicializacion *********************#
#############################################################################
{
  # Librerías
  {
    # Lista de paquetes que quieres verificar
    paquetes <- c("tidyverse","skimr","stargazer","wooldridge",
                  "lmtest","car","formattable","rmarkdown")
    
    # Verificar e instalar paquetes que no estén instalados
    for (paquete in paquetes) {
      if (!require(paquete, character.only = TRUE)) {
        install.packages(paquete)
      }
    }
    remove(paquetes)
    
    # Activacion Librerias
    suppressPackageStartupMessages({
      library(tidyverse) # Nucleo de trabajo
      library(skimr) # Estadísticas detalladas 
      library(stargazer) # Visualización resultados Regresión
      library(wooldridge) # Datos libro econometría Wooldridge
      library(lmtest) # Test de modelos de regresión linear
      library(car) # Paquete para regresión linear
      library(formattable) # Darle formato HTML a las tablas
      library(rmarkdown) # Formato rmarkdown
    })
  }
  # Configuraciones Entorno de Trabajo
  {
    # Limpiamos el entorno de trabajo
    rm(list = ls())
    
    # Limpiamos la Memoria (RAM)
    gc(reset = TRUE)
    
    # Limpiamos la consola
    cat("\014")
    
    # De número científico a natural
    options(scipen = 999)
  }
}Para comenzar con el modelo de regresión, usaremos la base de datos
wage1, el cual se encuentra en el paquete
wooldridge (para mas detalle del paquete, sus bases y
descripciones, haz clic aquí),
con ello ya expuesto, procedemos con la carga de la base y su primera
visualización estadística de la misma.
# Cargamos la data desde el paquete Wooldrige
data_1 <- wooldridge::wage1
# Visualizamos la dimensión de la muestra
dim_d1 <- t(as_tibble(dim(data_1)))
dim_d1 <- as_tibble(dim_d1,rownames = NULL)
colnames(dim_d1) <- c("Filas","Columnas")
formattable(dim_d1)| Filas | Columnas | 
|---|---|
| 526 | 24 | 
# Realizamos la primera visualización de los datos
paged_table(skim_without_charts(data_1))para nuestro primer ejemplo, realizaremos un modelo simple, el cual sólo tendría un regresor para la estimación, el modelo se ve de la siguiente forma:
\[ wage_i = \beta_0 + \beta_1 educ_i + u_i \]Siendo \(wage_i\) el salario promedio por hora que ganan los trabajadores de la muestra y \(educ_i\) son los años de educación que posee cada uno de los trabajadores. El objetivo de este primer modelo básico es visualizar el efecto que posee los años de educación sobre la renta promedio por hora, teniendo como teoría el hecho de que “ha mayor nivel de educación, mayor salario promedio/hora recibe el trabajador”.
El modelo se representa de la siguiente forma:
# Generamos el Modelo
modelo_1 <- lm(formula = wage ~ educ, data = data_1)
# Visualizamos el modelo y sus resultados
stargazer(modelo_1,header = FALSE, type = "html",title = "Resultados Modelo 1",align = TRUE)| Dependent variable: | |
| wage | |
| educ | 0.541*** | 
| (0.053) | |
| Constant | -0.905 | 
| (0.685) | |
| Observations | 526 | 
| R2 | 0.165 | 
| Adjusted R2 | 0.163 | 
| Residual Std. Error | 3.378 (df = 524) | 
| F Statistic | 103.363*** (df = 1; 524) | 
| Note: | p<0.1; p<0.05; p<0.01 | 
Copyright © 2024 Matías Vicuña Cofré, Todos los Derechos Reservados.