Sobre el autor:

  1. Jimmy Cueva Ruesta

  2. E-mail:

  3. LinkedIn: https://www.linkedin.com/in/jimmy-cueva-ruesta-30852811b/

1 Caso I&D

Con base en 32 empresas estadounidense de la industria química, se tiene la base de datos I&D.xls, del cual se tienen las siguientes variables de interés:

  1. ID = Gasto en Investigación y Desarrollo (En millones de USD)
  2. VENTAS = Vol. de ventas anuales (En millones de USD)
  3. MG = Margen de beneficios (en % de las ventas)

2 Desarrollo en RStudio

2.1 Paquetes

  1. install.packages(“lmtest”): Sirve para realizar tests de diagnósticos sobre modelos lineales (heterocedasticidad “bptest”, autocorrelación “dwtest”“bgtest”) Especificación del modelo (resettest “Ramsey test”), coincidencia de restricciones (“waldtest”)
  2. install.packages(“tseries”): Sirve para análisis y modelado de series de tiempo (Prueba de raiz unitaria “adf.test”, Pruebas de normalidad “jarque.bera.test”) Modelos financieros (“garch”, “arma”), Manejo de datos financieros (“get.hist.quote”)
  3. install.packages(“car”): Herramienta Avanzada para análisis de regresión (Multicolinealidad “vif”, prueba de hipótesis lineales “linearHypothesis”) Gráficos de diagnósticos (“infleuncePlot”, “qqPlot”)
  4. install.packages(“RcmdrMisc”): Sirve para el análisis estadístico complementario (pruebas estadísticas como t de student, ANOVA, correlaciones, etc y cálculo de intervalos de confianza)
  5. install.packages(“robust”): Proporcionar herramientas para regresión, estimación y diagnóstico robustos, que produzcan resultados confiables incluso cuando los datos tienen outliers o errores no normales.
  6. install.packages(“tibble”):Crear, visualizar y manipular datos de forma más clara.
  7. install.packages(“psych”): Análisis psicométrico y estadística multivariante (Uso típico como Alfa de Cronbach, análisis factorial, descriptivos avanzados)
  8. install.packages(“pwr”):Planificación de experimentos, diseño de encuestas y validación de hipótesis con tamaño muestral adecuado.
  9. gc(): Clear unused memory.
  10. cat(“): Clear the console.
  11. graphics.off(): Clear the charts. 12: windows(), luego plot: Para generar el gráfico en una ventana aparte.
library(psych)
library(pwr)

2.2 Se pide realizar lo siguiente:

2.2.1 Estadística descriptiva para Gasto en Investigación y Desarrollo (ID)

2.2.1.1 Interprete cuatro momentos estadísticos

rm(list=ls())
library(readxl)
datos <- read_excel("C:/Users/Jimmy Cueva/Desktop/R para finanzas/Econometría/Regresión general/I&D/I&D.xlsx")
View(datos)
attach(datos) #Permite acceder a las columnas de un data frame directamente por nombre
names(datos)
## [1] "N"          "ID"         "VENTAS"     "MG"         "BENEFICIOS"
describe(ID)
##    vars  n   mean     sd median trimmed   mad min  max  range skew kurtosis
## X1    1 32 153.68 324.64   42.6   66.72 47.44 1.7 1428 1426.3 2.82      7.2
##       se
## X1 57.39

2.2.1.2 Calcule e intérprete los percentiles de las observaciones: 10%, 25%, 50%, 75%,90%

quantile(ID, c(0.10, 0.25, 0.50, 0.75, 0.90)) #percentiles
##    10%    25%    50%    75%    90% 
##   3.52  10.85  42.60  78.85 406.64
  1. El 10% de las observaciones tiene un gasto en I+D menor o igual a 3.52. 🔹 Indica que la mayoría de las unidades con gasto más bajo invierten muy poco en investigación.
  2. Percentil 25 (10.85). →El 25% de las observaciones gasta hasta 10.85 en I+D. 🔹 Es el primer cuartil (Q1) y marca el límite inferior del 25% de las menores inversiones
  3. Percentil 50 (42.60) → El 50% (la mediana) gasta menos o igual a 42.60. 🔹 La mitad de las observaciones invierte menos de 42.60 y la otra mitad más. 🔹 Mide la tendencia central, sin verse afectada por valores extremos.
  4. Percentil 90 (406.64) → El 10% superior gasta más de 406.64 en I+D. 🔹 Indica una alta dispersión y la presencia de valores extremos, pues hay entidades con gastos en I+D muy elevados comparadas con la mayoría.

2.2.1.3 Realice un diagrama de dispersión para el ID, las VENTAS y el MG, ¿qué relación preliminar se aprecia?

Confirme e interprete los coeficientes de correlación para las tres variables con su nivel de significancia estadística.

library(car)
boxplot(datos$VENTAS,
        main = "Diagrama de Cajas de Ventas",
        ylab = "Monto de Ventas",
        col = "lightblue",
        border = "darkblue")

boxplot(datos[, c("VENTAS", "ID")],
        main = "Distribución de Variables",
        col = c("skyblue", "salmon"))

Variable ventas: El cajón (box) representa el rango intercuartílico, donde se concentra el 50% central de las empresas.

La línea dentro del cajón es la mediana, que se encuentra cerca de la base del cajón → indica que la mayoría de las empresas tienen ventas por debajo del promedio general.

Los puntos fuera del bigote superior son valores atípicos (outliers), es decir, empresas con ventas extraordinariamente altas, que distorsionan el promedio.

Esto sugiere alta dispersión y la posible presencia de empresas grandes junto a muchas pequeñas (heterogeneidad empresarial).

Variable ID (Gasto en I+D): La caja es muy estrecha y cercana al eje cero, lo que muestra que la mayoría de las empresas invierten poco o casi nada en I+D.

También aparecen algunos outliers, es decir, pocas empresas con gastos muy elevados en investigación y desarrollo en comparación con el resto.

Esto refleja una brecha tecnológica o de innovación significativa entre empresas.

Conclusión: El diagrama evidencia una alta desigualdad tanto en ventas como en gasto en I+D, con predominio de valores bajos y pocos casos extremos muy altos. Esto refleja un sector empresarial heterogéneo, donde la mayoría de las firmas operan a pequeña escala, y la inversión en innovación es limitada y concentrada en pocas empresas.

scatterplot(ID~VENTAS, regLine=TRUE, smooth=FALSE, boxplots='xy',
            ellipse=list(levels=c(.5, .9)), xlab="Ventas (en millones de USD)", 
            ylab="I&D (en mill. de USD)",
            main="Relación entre Ventas e I&D")

scatterplot(ID~MG, regLine=TRUE, smooth=FALSE, boxplots='xy',
            ellipse=list(levels=c(.5, .9)), xlab="Mg de Benef. (Benef. en % de ventas)", 
            ylab="I&D (en mill. de USD)",
            main="Relación entre Margen de beneficios e I&D")

library(PerformanceAnalytics)
chart.Correlation(datos[2:4]) 

library(corrplot)
cor(datos[2:4])
##                ID       VENTAS           MG
## ID     1.00000000  0.949592876  0.014700184
## VENTAS 0.94959288  1.000000000 -0.004658616
## MG     0.01470018 -0.004658616  1.000000000

2.2.2 Estime e interprete los parámetros de los siguientes modelos de regresión:

Primera estimación: \[ log(\widehat{ID})_i= \widehat{\alpha}+ \widehat{\beta}* log(VENTAS)_i+\widehat{\varepsilon_i} \] Segunda estimación: \[ log(\widehat{ID})_i= \widehat{\alpha}+ \widehat{\beta}* log(VENTAS)_i+\widehat{\delta}MG_i +\widehat{\varepsilon_i} \] Creamos las variables log

logID <- log(ID)
logventas <-log(VENTAS)

mod1<- lm(logID~logventas)
summary(mod1)
## 
## Call:
## lm(formula = logID ~ logventas)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.90406 -0.40086 -0.02178  0.40562  1.10438 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.10472    0.45277  -9.066 4.27e-10 ***
## logventas    1.07573    0.06183  17.399  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5294 on 30 degrees of freedom
## Multiple R-squared:  0.9098, Adjusted R-squared:  0.9068 
## F-statistic: 302.7 on 1 and 30 DF,  p-value: < 2.2e-16
alpha1<-exp(-4.10472)  # Intercepto antilog.
alpha1
## [1] 0.01649464
mod2<- lm(logID~logventas+MG)
summary(mod2)
## 
## Call:
## lm(formula = logID ~ logventas + MG)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.97681 -0.31502 -0.05828  0.39020  1.21783 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.37827    0.46802  -9.355 2.93e-10 ***
## logventas    1.08422    0.06020  18.012  < 2e-16 ***
## MG           0.02166    0.01278   1.694    0.101    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5136 on 29 degrees of freedom
## Multiple R-squared:  0.918,  Adjusted R-squared:  0.9123 
## F-statistic: 162.2 on 2 and 29 DF,  p-value: < 2.2e-16
alpha2<-exp(-4.37827)  # Intercepto antilog.
alpha2
## [1] 0.01254705

2.2.3 Para los modelos (1) y (2) verifique si se cumplen los siguientes supuestos :

  1. Normalidad de los residuos (Pruebas Jarque-Bera y Shapiro Wilk).
library(tseries)
jarque.bera.test(mod1$residuals)
## 
##  Jarque Bera Test
## 
## data:  mod1$residuals
## X-squared = 1.025, df = 2, p-value = 0.599
shapiro.test(mod1$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  mod1$residuals
## W = 0.97661, p-value = 0.6968
jarque.bera.test(mod2$residuals)
## 
##  Jarque Bera Test
## 
## data:  mod2$residuals
## X-squared = 0.67063, df = 2, p-value = 0.7151
shapiro.test(mod2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  mod2$residuals
## W = 0.97898, p-value = 0.7695

Interpretación general

Si el p-valor < 0.05, se rechaza la normalidad de los residuos.

Si el p-valor > 0.05, no hay evidencia suficiente para rechazar la normalidad.

Ver en formato tabla

library(tibble)   # para crear tablas elegantes
library(dplyr)    # para manipular datos fácilmente
library(tidyr)    # (opcional) para formatear la tabla

jarque1 <- tseries::jarque.bera.test(mod1$residuals)
shapiro1 <- shapiro.test(mod1$residuals)

jarque2 <- tseries::jarque.bera.test(mod2$residuals)
shapiro2 <- shapiro.test(mod2$residuals)

tabla_normalidad <- tibble(
  Modelo = c("Modelo 1", "Modelo 1", "Modelo 2", "Modelo 2"),
  Prueba = c("Jarque-Bera", "Shapiro-Wilk", "Jarque-Bera", "Shapiro-Wilk"),
  Estadístico = c(jarque1$statistic, shapiro1$statistic, jarque2$statistic, shapiro2$statistic),
  p_valor = c(jarque1$p.value, shapiro1$p.value, jarque2$p.value, shapiro2$p.value)
)

print(tabla_normalidad)
## # A tibble: 4 × 4
##   Modelo   Prueba       Estadístico p_valor
##   <chr>    <chr>              <dbl>   <dbl>
## 1 Modelo 1 Jarque-Bera        1.02    0.599
## 2 Modelo 1 Shapiro-Wilk       0.977   0.697
## 3 Modelo 2 Jarque-Bera        0.671   0.715
## 4 Modelo 2 Shapiro-Wilk       0.979   0.770

Ver histograma

hist(mod1$residuals, breaks = 15, col = "skyblue", probability = TRUE,
     main = "Histograma de los residuos vs curva teórica del modelo 1", xlab = "Residuos")
curve(dnorm(x, mean = mean(mod1$residuals), sd = sd(mod1$residuals)), add = TRUE, col = "red", lwd = 2)

hist(mod2$residuals, breaks = 15, col = "skyblue", probability = TRUE,
     main = "Histograma de los residuos vs curva teórica del modelo 2", xlab = "Residuos")
curve(dnorm(x, mean = mean(mod2$residuals), sd = sd(mod2$residuals)), add = TRUE, col = "red", lwd = 2)

  1. No Heterocedasticidad (Pruebas Goldfeld-Quandt y Harrison-Mccabe).
library(skedastic)

Prueba de Goldfed-Quandt Test Ho: Los residuos son homoscedásticos.

library(lmtest)
gqtest(mod1)
## 
##  Goldfeld-Quandt test
## 
## data:  mod1
## GQ = 1.4181, df1 = 14, df2 = 14, p-value = 0.261
## alternative hypothesis: variance increases from segment 1 to 2
gqtest(mod2)
## 
##  Goldfeld-Quandt test
## 
## data:  mod2
## GQ = 1.2124, df1 = 13, df2 = 13, p-value = 0.3668
## alternative hypothesis: variance increases from segment 1 to 2

Prueba Harrison-McCabe test

hmctest(mod1)
## 
##  Harrison-McCabe test
## 
## data:  mod1
## HMC = 0.41212, p-value = 0.251
hmctest(mod2)
## 
##  Harrison-McCabe test
## 
## data:  mod2
## HMC = 0.43946, p-value = 0.32

Breusch Pagan

bptest(mod1)
## 
##  studentized Breusch-Pagan test
## 
## data:  mod1
## BP = 0.00036846, df = 1, p-value = 0.9847
bptest(mod2)
## 
##  studentized Breusch-Pagan test
## 
## data:  mod2
## BP = 0.25463, df = 2, p-value = 0.8805

Glejser

glejser(mod1)
## # A tibble: 1 × 4
##   statistic p.value parameter alternative
##       <dbl>   <dbl>     <dbl> <chr>      
## 1   0.00436   0.947         1 greater
glejser(mod2)
## # A tibble: 1 × 4
##   statistic p.value parameter alternative
##       <dbl>   <dbl>     <dbl> <chr>      
## 1     0.290   0.865         2 greater

Asintótica de White

white(mod1)
## # A tibble: 1 × 5
##   statistic p.value parameter method       alternative
##       <dbl>   <dbl>     <dbl> <chr>        <chr>      
## 1     0.296   0.862         2 White's Test greater
white(mod2)
## # A tibble: 1 × 5
##   statistic p.value parameter method       alternative
##       <dbl>   <dbl>     <dbl> <chr>        <chr>      
## 1     0.795   0.939         4 White's Test greater
# Ejecutas las pruebas
library(lmtest)
library(car)
library(olsrr)

# Resultados de las pruebas
tests <- data.frame(
  Prueba = c("Breusch-Pagan", "Harvey-Collier", "Glejser", "White"),
  Mod1_p = c(bptest(mod1)$p.value,
             hmctest(mod1)$p.value,
             glejser(mod1)$p.value,
             white(mod1)$p.value),
  Mod2_p = c(bptest(mod2)$p.value,
             hmctest(mod2)$p.value,
             glejser(mod2)$p.value,
             white(mod2)$p.value)
)

# Crear una función para interpretar
interpretar <- function(p) ifelse(p > 0.05, "Sí (Homocedástica)", "No (Heterocedástica)")

# Añadir columnas interpretadas
tests$Mod1_Homocedástica <- interpretar(tests$Mod1_p)
tests$Mod2_Homocedástica <- interpretar(tests$Mod2_p)

# Mostrar la tabla final
print(tests, digits = 4)
##           Prueba Mod1_p Mod2_p Mod1_Homocedástica Mod2_Homocedástica
## 1  Breusch-Pagan 0.9847 0.8805 Sí (Homocedástica) Sí (Homocedástica)
## 2 Harvey-Collier 0.2340 0.3030 Sí (Homocedástica) Sí (Homocedástica)
## 3        Glejser 0.9474 0.8650 Sí (Homocedástica) Sí (Homocedástica)
## 4          White 0.8624 0.9391 Sí (Homocedástica) Sí (Homocedástica)
  1. No multicolinealidad (Factor inflacionario de varianza, VIF en inglés).
library(car)
vif(mod2)
## logventas        MG 
##  1.006978  1.006978
library(mctest)
mctest(mod2)
## 
## Call:
## omcdiag(mod = mod, Inter = TRUE, detr = detr, red = red, conf = conf, 
##     theil = theil, cn = cn)
## 
## 
## Overall Multicollinearity Diagnostics
## 
##                        MC Results detection
## Determinant |X'X|:         0.9931         0
## Farrar Chi-Square:         0.2051         0
## Red Indicator:             0.0832         0
## Sum of Lambda Inverse:     2.0140         0
## Theil's Method:           -0.9041         0
## Condition Number:         11.5241         0
## 
## 1 --> COLLINEARITY is detected by the test 
## 0 --> COLLINEARITY is not detected by the test
mctest(mod2, type="i")
## 
## Call:
## imcdiag(mod = mod, method = method, corr = FALSE, vif = vif, 
##     tol = tol, conf = conf, cvif = cvif, ind1 = ind1, ind2 = ind2, 
##     leamer = leamer, all = all)
## 
## 
## All Individual Multicollinearity Diagnostics Result
## 
##             VIF    TOL     Wi  Fi Leamer   CVIF Klein   IND1 IND2
## logventas 1.007 0.9931 0.2093 Inf 0.9965 0.9174     0 0.0331    1
## MG        1.007 0.9931 0.2093 Inf 0.9965 0.9174     0 0.0331    1
## 
## 1 --> COLLINEARITY is detected by the test 
## 0 --> COLLINEARITY is not detected by the test
## 
## MG , coefficient(s) are non-significant may be due to multicollinearity
## 
## R-square of y on all x: 0.918 
## 
## * use method argument to check which regressors may be the reason of collinearity
## ===================================
  1. Correcta especificación matemática del modelo y de las variables (Pruebas arcoíris y Reset)

Rainbow analysis Ho: El modelo es lineal (en las variables) H1: El modelo no es lineal (en las variables)

rain1 <- raintest(mod1)
rain1
## 
##  Rainbow test
## 
## data:  mod1
## Rain = 1.6378, df1 = 16, df2 = 14, p-value = 0.1797
rain2 <- raintest(mod2)
rain2
## 
##  Rainbow test
## 
## data:  mod2
## Rain = 1.9432, df1 = 16, df2 = 13, p-value = 0.1163
#No existe especificación cuadrática o cúbica en el modelo

# H0: Forma funcional es correcta
reset_1 <- resettest(mod1 , power=2, type="fitted")
resettest(mod1 , power=3, type="fitted")
## 
##  RESET test
## 
## data:  mod1
## RESET = 0.83618, df1 = 1, df2 = 29, p-value = 0.368
reset_2 <- resettest(mod2 , power=2, type="fitted")
resettest(mod2 , power=3, type="fitted")
## 
##  RESET test
## 
## data:  mod2
## RESET = 1.0952, df1 = 1, df2 = 28, p-value = 0.3043
tabla_correcta_especificación <- tibble(
  Modelo = c("Modelo 1", "Modelo 1", "Modelo 2", "Modelo 2"),
  Prueba = c("Arcoíris", "Ramsey", "Arcoíris", "Ramsey"),
  Estadístico = c(rain1$statistic, reset_1$statistic, rain2$statistic, reset_2$statistic),
  p_valor = c(rain1$p.value, reset_1$p.value, rain2$p.value, reset_2$p.value)
)

# Añadimos la columna de interpretación
tabla_correcta_especificación <- tabla_correcta_especificación %>%
  mutate(
    Correcta_Forma_Funcional = ifelse(p_valor > 0.05,
                                      "Sí (Correcta especificación)",
                                      "No (Forma funcional incorrecta)")
  )

print(tabla_correcta_especificación)
## # A tibble: 4 × 5
##   Modelo   Prueba   Estadístico p_valor Correcta_Forma_Funcional    
##   <chr>    <chr>          <dbl>   <dbl> <chr>                       
## 1 Modelo 1 Arcoíris        1.64   0.180 Sí (Correcta especificación)
## 2 Modelo 1 Ramsey          2.38   0.134 Sí (Correcta especificación)
## 3 Modelo 2 Arcoíris        1.94   0.116 Sí (Correcta especificación)
## 4 Modelo 2 Ramsey          2.32   0.139 Sí (Correcta especificación)
  1. Compare si existen diferencias estadísticamente significativas entre el modelo (1) y el modelo (2), ¿cuál modelo utilizaría? # . Utilice la prueba de Wald, prueba F y razón de verosimilitud (LR). # . Criterios de información de Akaike (AIC) y Schwarz (BIC)
# Prueba F (análoga a una prueba de restricciones)
f_test <- anova(mod1, mod2)

# Prueba de Wald
wald_test <- waldtest(mod1, mod2)

# Prueba de razón de verosimilitud (LR)
lr_test <- lrtest(mod1, mod2)

# Criterios de información
aic_values <- AIC(mod1, mod2)
bic_values <- BIC(mod1, mod2)

# --- TABLA DE RESULTADOS ESTADÍSTICOS ---
tabla_comparacion <- tibble(
  Prueba = c("Wald", "F", "Razón de verosimilitud (LR)"),
  Estadístico = c(wald_test$F[2], f_test$F[2], lr_test$Chisq[2]),
  p_valor = c(wald_test$`Pr(>F)`[2], f_test$`Pr(>F)`[2], lr_test$`Pr(>Chisq)`[2])
)

# --- INTERPRETACIÓN SEGÚN p-value ---
tabla_comparacion <- tabla_comparacion %>%
  mutate(
    Diferencia_Significativa = ifelse(p_valor <= 0.05, "Sí (Modelos diferentes)", "No (Modelos similares)"),
    Modelo_Recomendado = ifelse(p_valor <= 0.05, "Modelo 2 (más completo)", "Modelo 1 (más parsimonioso)")
  )

# --- TABLA DE CRITERIOS DE INFORMACIÓN ---
tabla_info <- tibble(
  Modelo = c("Modelo 1", "Modelo 2"),
  AIC = aic_values$AIC,
  BIC = bic_values$BIC
) %>%
  mutate(
    Mejor_Modelo_AIC = ifelse(AIC == min(AIC), "✔", ""),
    Mejor_Modelo_BIC = ifelse(BIC == min(BIC), "✔", "")
  )
# Mostrar resultados
print(tabla_comparacion, digits = 4)
## # A tibble: 3 × 5
##   Prueba           Estadístico p_valor Diferencia_Significa…¹ Modelo_Recomendado
##   <chr>                  <dbl>   <dbl> <chr>                  <chr>             
## 1 Wald                    2.87  0.101  No (Modelos similares) Modelo 1 (más par…
## 2 F                       2.87  0.101  No (Modelos similares) Modelo 1 (más par…
## 3 Razón de verosi…        3.02  0.0822 No (Modelos similares) Modelo 1 (más par…
## # ℹ abbreviated name: ¹​Diferencia_Significativa
print(tabla_info, digits = 4)
## # A tibble: 2 × 5
##   Modelo     AIC   BIC Mejor_Modelo_AIC Mejor_Modelo_BIC
##   <chr>    <dbl> <dbl> <chr>            <chr>           
## 1 Modelo 1  54.0  58.4 ""               "✔"             
## 2 Modelo 2  53.0  58.9 "✔"              ""

Interpretación de la primera tabla:

En todas las pruebas, el p-value > 0.05, por lo tanto no hay evidencia estadística suficiente para afirmar que el Modelo 2 sea significativamente mejor que el Modelo 1.

En consecuencia, ambos modelos explican los datos de manera similar.

Dado eso, se recomienda mantener el Modelo 1, porque es más parsimonioso (usa menos variables

Interpretación de la segunda tabla:

AIC es ligeramente menor en el Modelo 2, lo que sugiere que tiene un mejor ajuste.

BIC, sin embargo, favorece al Modelo 1, porque penaliza más la complejidad (número de parámetros).

Como las diferencias son pequeñas y las pruebas estadísticas no mostraron diferencias significativas, el criterio de decisión final es:Elegir el Modelo 1 por parsimonia y porque no hay mejora significativa al incluir más variables.

. Para el mejor modelo seleccionado estime los intervalos de confianza según la técnica de Muestreo Bootstrap

library(RcmdrMisc)

.bs.samples <- Boot(mod2, R=999, method="case")
plotBoot(.bs.samples)

confint(.bs.samples, level=0.95, type="basic")
## Bootstrap basic confidence intervals
## 
##                    2.5 %      97.5 %
## (Intercept) -5.080123685 -3.20256237
## logventas    0.936837049  1.18204390
## MG          -0.007068097  0.04401046
remove(.bs.samples)

Interpretación: Genera una distribución empírica de los coeficientes del modelo repitiendo la estimación 999 veces con muestras distintas (con reemplazo).Eso permite obtener intervalos de confianza robustos y analizar la estabilidad de los parámetros.

  1. Para el modelo (2), realice las siguientes pruebas de hipótesis: \[ a) H_o:\ \ \delta=0; b) H_o:\ \ \beta=1; c) H_o:\ \ \beta=1; d) \ H_1:\ \ \beta>1; e) H_o:\ \ \delta=\beta=0; f) H_o:\ \ \beta+\delta=1.20 \]
# Reglas de decisión dada la Prob. (p-value)
# Prob. < 5 y es < 1%; rechazamos la Ho.
# Prob. > 5% y > 10%; No se rechaza la Ho.

# Ho: MG =0
# H1: MG es diferente de 0

linearHypothesis(mod2, "MG = 0")
## 
## Linear hypothesis test:
## MG = 0
## 
## Model 1: restricted model
## Model 2: logID ~ logventas + MG
## 
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1     30 8.4077                           
## 2     29 7.6505  1   0.75717 2.8701  0.101
# Ho: logventas  =1
# H1: logventas  es diferente de 1

linearHypothesis(mod2, "logventas = 1")
## 
## Linear hypothesis test:
## logventas = 1
## 
## Model 1: restricted model
## Model 2: logID ~ logventas + MG
## 
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1     30 8.1669                           
## 2     29 7.6505  1   0.51642 1.9575 0.1724
# Ho: logventas  = 1
# H1: logventas  > 1

summary(mod2)
## 
## Call:
## lm(formula = logID ~ logventas + MG)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.97681 -0.31502 -0.05828  0.39020  1.21783 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.37827    0.46802  -9.355 2.93e-10 ***
## logventas    1.08422    0.06020  18.012  < 2e-16 ***
## MG           0.02166    0.01278   1.694    0.101    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5136 on 29 degrees of freedom
## Multiple R-squared:  0.918,  Adjusted R-squared:  0.9123 
## F-statistic: 162.2 on 2 and 29 DF,  p-value: < 2.2e-16
# testim = Beta - 1/ee(B1)
testim <- (1.08422-1)/0.06020
testim # 1. 399003
## [1] 1.399003
# n-k-1 = 32 -2 -1 = 29 grados de libertad
signif<- c(0.10, 0.05, 0.01) # al 5 y 1% de significancia estadística
# t crítico
qt(1-signif, 29)
## [1] 1.311434 1.699127 2.462021
#t estimado < tcrítico, no se rechaza la Ho., 1 cola
pval <- pt(-abs(testim), 29)
pval
## [1] 0.08620849
# Ho: logventas = MG = 0
# H1: logventas  y MG son diferentes de cero

hipotesis<-c("logventas=0", "MG=0")
linearHypothesis(mod2, hipotesis)
## 
## Linear hypothesis test:
## logventas = 0
## MG = 0
## 
## Model 1: restricted model
## Model 2: logID ~ logventas + MG
## 
##   Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
## 1     31 93.247                                  
## 2     29  7.651  2    85.597 162.23 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# La suma de los efectos de Ventas + MG = 1.20

#Ho: ID + MG = 1.20
#Ho: ID + MG ES DIFERENTE DE 1.20

linearHypothesis(mod2, "logventas+ MG= 1.2")
## 
## Linear hypothesis test:
## logventas  + MG = 1.2
## 
## Model 1: restricted model
## Model 2: logID ~ logventas + MG
## 
##   Res.Df    RSS Df Sum of Sq     F Pr(>F)
## 1     30 8.2475                          
## 2     29 7.6505  1     0.597 2.263 0.1433

2.3 Presentación final

library(stargazer)

stargazer(mod1, mod2, type="text",
          title = "Resultados de regresiones, modelos alternativos")
## 
## Resultados de regresiones, modelos alternativos
## ===================================================================
##                                   Dependent variable:              
##                     -----------------------------------------------
##                                          logID                     
##                               (1)                     (2)          
## -------------------------------------------------------------------
## logventas                  1.076***                1.084***        
##                             (0.062)                 (0.060)        
##                                                                    
## MG                                                   0.022         
##                                                     (0.013)        
##                                                                    
## Constant                   -4.105***               -4.378***       
##                             (0.453)                 (0.468)        
##                                                                    
## -------------------------------------------------------------------
## Observations                  32                      32           
## R2                           0.910                   0.918         
## Adjusted R2                  0.907                   0.912         
## Residual Std. Error     0.529 (df = 30)         0.514 (df = 29)    
## F Statistic         302.722*** (df = 1; 30) 162.231*** (df = 2; 29)
## ===================================================================
## Note:                                   *p<0.1; **p<0.05; ***p<0.01
stargazer(mod1, mod2, type="text",
          title = "Resultados de regresiones, modelos alternativos",
          dep.var.labels = "Log (Gasto en I&D)",
          intercept.bottom = FALSE,
          column.labels = c("MCO", "MCO"),
          notes= "Comentarios a rogerbanegas.edu.bo",
          covariate.labels = c("Constante","Log (Ventas)",  "MG de beneficios (en %)"))
## 
## Resultados de regresiones, modelos alternativos
## =======================================================================
##                                       Dependent variable:              
##                         -----------------------------------------------
##                                       Log (Gasto en I&D)               
##                                   MCO                     MCO          
##                                   (1)                     (2)          
## -----------------------------------------------------------------------
## Constante                      -4.105***               -4.378***       
##                                 (0.453)                 (0.468)        
##                                                                        
## Log (Ventas)                   1.076***                1.084***        
##                                 (0.062)                 (0.060)        
##                                                                        
## MG de beneficios (en %)                                  0.022         
##                                                         (0.013)        
##                                                                        
## -----------------------------------------------------------------------
## Observations                      32                      32           
## R2                               0.910                   0.918         
## Adjusted R2                      0.907                   0.912         
## Residual Std. Error         0.529 (df = 30)         0.514 (df = 29)    
## F Statistic             302.722*** (df = 1; 30) 162.231*** (df = 2; 29)
## =======================================================================
## Note:                                       *p<0.1; **p<0.05; ***p<0.01
##                                       Comentarios a rogerbanegas.edu.bo