Actividad Patentes

Instalar paquetes y llamar librerias

library(WDI)
library(wbstats)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(gplots)
## 
## Attaching package: 'gplots'
## 
## The following object is masked from 'package:stats':
## 
##     lowess
library(plm)
## 
## Attaching package: 'plm'
## 
## The following objects are masked from 'package:dplyr':
## 
##     between, lag, lead
library(readxl)
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## 
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(pglm)
## Loading required package: maxLik
## Loading required package: miscTools
## 
## Please cite the 'maxLik' package as:
## Henningsen, Arne and Toomet, Ott (2011). maxLik: A package for maximum likelihood estimation in R. Computational Statistics 26(3), 443-458. DOI 10.1007/s00180-010-0217-1.
## 
## If you have questions, suggestions, or comments regarding the 'maxLik' package, please use a forum or 'tracker' at maxLik's R-Forge site:
## https://r-forge.r-project.org/projects/maxlik/

Importar base de datos

patentes <- read_xls("/Users/hectordelagarzatrevino/Library/CloudStorage/GoogleDrive-a01177960@tec.mx/My Drive/LIT/8. Octavo semestre/Generación de escenarios futuros con analítica/Modulo 1/Actividades/Actividad 1/PATENT 3.xls")

Entender la base de datos

summary(patentes)
##      cusip            merger           employ            return       
##  Min.   :   800   Min.   :0.0000   Min.   :  0.085   Min.   :-73.022  
##  1st Qu.:368514   1st Qu.:0.0000   1st Qu.:  1.227   1st Qu.:  5.128  
##  Median :501116   Median :0.0000   Median :  3.842   Median :  7.585  
##  Mean   :514536   Mean   :0.0177   Mean   : 18.826   Mean   :  8.003  
##  3rd Qu.:754688   3rd Qu.:0.0000   3rd Qu.: 15.442   3rd Qu.: 10.501  
##  Max.   :878555   Max.   :1.0000   Max.   :506.531   Max.   : 48.675  
##                                    NA's   :21        NA's   :8        
##     patents         patentsg           stckpr              rnd           
##  Min.   :  0.0   Min.   :   0.00   Min.   :  0.1875   Min.   :   0.0000  
##  1st Qu.:  1.0   1st Qu.:   1.00   1st Qu.:  7.6250   1st Qu.:   0.6847  
##  Median :  3.0   Median :   4.00   Median : 16.5000   Median :   2.1456  
##  Mean   : 22.9   Mean   :  27.14   Mean   : 22.6270   Mean   :  29.3398  
##  3rd Qu.: 15.0   3rd Qu.:  19.00   3rd Qu.: 29.2500   3rd Qu.:  11.9168  
##  Max.   :906.0   Max.   :1063.00   Max.   :402.0000   Max.   :1719.3535  
##                                    NA's   :2                             
##     rndeflt             rndstck             sales               sic      
##  Min.   :   0.0000   Min.   :   0.125   Min.   :    1.22   Min.   :2000  
##  1st Qu.:   0.4788   1st Qu.:   5.152   1st Qu.:   52.99   1st Qu.:2890  
##  Median :   1.4764   Median :  13.353   Median :  174.06   Median :3531  
##  Mean   :  19.7238   Mean   : 163.823   Mean   : 1219.60   Mean   :3333  
##  3rd Qu.:   8.7527   3rd Qu.:  74.563   3rd Qu.:  728.96   3rd Qu.:3661  
##  Max.   :1000.7876   Max.   :9755.352   Max.   :44224.00   Max.   :9997  
##                      NA's   :157        NA's   :3                        
##       year     
##  Min.   :2012  
##  1st Qu.:2014  
##  Median :2016  
##  Mean   :2016  
##  3rd Qu.:2019  
##  Max.   :2021  
## 
sum(is.na(patentes))
## [1] 191
sapply(patentes, function(x) sum(is.na(x)))
##    cusip   merger   employ   return  patents patentsg   stckpr      rnd 
##        0        0       21        8        0        0        2        0 
##  rndeflt  rndstck    sales      sic     year 
##        0      157        3        0        0
patentes1 <- na.omit(patentes)

1. Construcción del modelo de datos panel

panelpatentes <- pdata.frame(patentes1, index = c("cusip", "year"))

2. Modelos de Efectos fijos y aleatorios

# Modelo de efectos fijos
modeloefectosfijospatentes <- plm(patents ~ merger + employ + return + patentsg + stckpr + rnd + rndeflt + rndstck + sales + sic, data = panelpatentes, model = "within")
summary(modeloefectosfijospatentes)
## Oneway (individual) effect Within Model
## 
## Call:
## plm(formula = patents ~ merger + employ + return + patentsg + 
##     stckpr + rnd + rndeflt + rndstck + sales + sic, data = panelpatentes, 
##     model = "within")
## 
## Unbalanced Panel: n = 215, T = 2-10, N = 2083
## 
## Residuals:
##       Min.    1st Qu.     Median    3rd Qu.       Max. 
## -468.39577   -1.75634   -0.25666    1.85265  172.64513 
## 
## Coefficients:
##             Estimate  Std. Error  t-value  Pr(>|t|)    
## merger    6.02467998  4.30535335   1.3993    0.1619    
## employ   -0.09095534  0.08057733  -1.1288    0.2591    
## return   -0.01221444  0.12005904  -0.1017    0.9190    
## patentsg  0.03913907  0.02580379   1.5168    0.1295    
## stckpr   -0.03959771  0.03347713  -1.1828    0.2370    
## rnd      -2.04101003  0.15053766 -13.5581 < 2.2e-16 ***
## rndeflt   3.25369409  0.22523191  14.4460 < 2.2e-16 ***
## rndstck   0.19724166  0.01808942  10.9037 < 2.2e-16 ***
## sales    -0.00188938  0.00041715  -4.5293 6.294e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    1090400
## Residual Sum of Squares: 714450
## R-Squared:      0.34479
## Adj. R-Squared: 0.2662
## F-statistic: 108.696 on 9 and 1859 DF, p-value: < 2.22e-16
# Modelo de efectos aleatorios
modeloefectosaleatoriospatentes <- plm(patents ~ merger + employ + return + patentsg + stckpr + rnd + rndeflt + rndstck + sales + sic, data = panelpatentes, model = "random")
summary(modeloefectosaleatoriospatentes)
## Oneway (individual) effect Random Effect Model 
##    (Swamy-Arora's transformation)
## 
## Call:
## plm(formula = patents ~ merger + employ + return + patentsg + 
##     stckpr + rnd + rndeflt + rndstck + sales + sic, data = panelpatentes, 
##     model = "random")
## 
## Unbalanced Panel: n = 215, T = 2-10, N = 2083
## 
## Effects:
##                 var std.dev share
## idiosyncratic 384.3    19.6     1
## individual      0.0     0.0     0
## theta:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       0       0       0       0       0       0 
## 
## Residuals:
##       Min.    1st Qu.     Median    3rd Qu.       Max. 
## -525.42194   -2.59738   -0.31264    1.88763  277.92369 
## 
## Coefficients:
##                Estimate  Std. Error z-value  Pr(>|z|)    
## (Intercept)  1.19864916  2.94181986  0.4075   0.68368    
## merger       1.92231907  4.04770404  0.4749   0.63485    
## employ       0.12548448  0.03060149  4.1006 4.121e-05 ***
## return       0.06432167  0.10374558  0.6200   0.53526    
## patentsg     0.78696226  0.01016726 77.4016 < 2.2e-16 ***
## stckpr       0.00355791  0.02557045  0.1391   0.88934    
## rnd         -0.18291882  0.04480367 -4.0827 4.452e-05 ***
## rndeflt      0.26805014  0.03877619  6.9128 4.753e-12 ***
## rndstck     -0.00122890  0.00628664 -0.1955   0.84502    
## sales       -0.00054529  0.00025769 -2.1161   0.03434 *  
## sic         -0.00049485  0.00081918 -0.6041   0.54579    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    10910000
## Residual Sum of Squares: 1154800
## R-Squared:      0.89416
## Adj. R-Squared: 0.89365
## Chisq: 17504.4 on 10 DF, p-value: < 2.22e-16
# Prueba de Hausman
phtest(modeloefectosfijospatentes, modeloefectosaleatoriospatentes)
## 
##  Hausman Test
## 
## data:  patents ~ merger + employ + return + patentsg + stckpr + rnd +  ...
## chisq = 1104.9, df = 9, p-value < 2.2e-16
## alternative hypothesis: one model is inconsistent
# Como el p-value es menor a 0.05, usaremos la de efectos fijos

3. Pruebas de heterocedasticidad y autocorrelación serial

# Pruebas de heterocedasticidad para el modelo de efectos fijos
bptest(modeloefectosfijospatentes)
## 
##  studentized Breusch-Pagan test
## 
## data:  modeloefectosfijospatentes
## BP = 617.25, df = 10, p-value < 2.2e-16
# Como el p-value es menor a 0.05, hay heterocedasticidad en los residuos (Problema detectado)

# Pruebas de heterocedasticidad para el modelo de efectos aleatorios
bptest(modeloefectosaleatoriospatentes)
## 
##  studentized Breusch-Pagan test
## 
## data:  modeloefectosaleatoriospatentes
## BP = 617.25, df = 10, p-value < 2.2e-16
# Como el p-value es menor a 0.05, hay heterocedasticidad en los residuos (Problema detectado)

# Prueba de autocorrelación serial para el modelo de efectos fijos
pwartest(modeloefectosfijospatentes)
## 
##  Wooldridge's test for serial correlation in FE panels
## 
## data:  modeloefectosfijospatentes
## F = 42.281, df1 = 1, df2 = 1866, p-value = 1.012e-10
## alternative hypothesis: serial correlation
# Como el p-value es menor a 0.05, hay autocorrelacion serial en errores

# Prueba de autocorrelación serial para el modelo de efectos aleatorios
pbnftest(modeloefectosaleatoriospatentes)
## 
##  modified Bhargava/Franzini/Narendranathan Panel Durbin-Watson Test
## 
## data:  patents ~ merger + employ + return + patentsg + stckpr + rnd +  ...
## DW = 1.0069
## alternative hypothesis: serial correlation in idiosyncratic errors
# Como el valor es menor de 1.5 hay autocorrelación positiva significativa

# Corrección del modelo con errores estandar robustos
coeficientescorregidos <- coeftest(modeloefectosfijospatentes, vcov = vcovHC(modeloefectosaleatoriospatentes, type = "HC0"))
solocoeficientes <- coeficientescorregidos[,1]

4. Generar pronosticos y evaluar modelo

datosdeprueba <- data.frame(merger=0, employ=10, return=6, patentsg=24, stckpr=48, rnd=3, rndflt=3, rndstck=16, sales=344)

prediccion <- sum(solocoeficientes*c(1, datosdeprueba$merger, datosdeprueba$employ, datosdeprueba$return, datosdeprueba$patentsg, datosdeprueba$stckpr, datosdeprueba$rnd, datosdeprueba$rndflt, datosdeprueba$rndstck, datosdeprueba$sales))
## Warning in solocoeficientes * c(1, datosdeprueba$merger, datosdeprueba$employ,
## : longer object length is not a multiple of shorter object length
prediccion
## [1] 1990.031
# El valor esperado de la prediccion es 22, y el resultado fue 4.2, por lo que tenemos una diferencia significativa.

Actividad Sesion 1. Modelo Econométrico

Realizado por Héctor de la Garza, Mariana Leal y Genaro Rodríguez

Código sesión 2, 3, 4. Analisis de datos de panel

# Obtener la información de un país
PIB_MEX <- wb_data(country = "MX", indicator = "NY.GDP.PCAP.CD", start_date = "1900", end_date = "2025")
summary(PIB_MEX)
##     iso2c              iso3c             country               date     
##  Length:64          Length:64          Length:64          Min.   :1960  
##  Class :character   Class :character   Class :character   1st Qu.:1976  
##  Mode  :character   Mode  :character   Mode  :character   Median :1992  
##                                                           Mean   :1992  
##                                                           3rd Qu.:2007  
##                                                           Max.   :2023  
##  NY.GDP.PCAP.CD        unit            obs_status          footnote        
##  Min.   :  355.1   Length:64          Length:64          Length:64         
##  1st Qu.: 1427.8   Class :character   Class :character   Class :character  
##  Median : 4006.5   Mode  :character   Mode  :character   Mode  :character  
##  Mean   : 5097.1                                                           
##  3rd Qu.: 8905.4                                                           
##  Max.   :13790.0                                                           
##   last_updated       
##  Min.   :2025-01-28  
##  1st Qu.:2025-01-28  
##  Median :2025-01-28  
##  Mean   :2025-01-28  
##  3rd Qu.:2025-01-28  
##  Max.   :2025-01-28
ggplot(PIB_MEX, aes(x= date, y= NY.GDP.PCAP.CD)) + 
  geom_point() + 
  geom_line() + 
  labs(title = " PIB per capita en México (Current USD$)", x = "Año", y = "Valor")

# Obtener la información de varios país
PIB_PANEL <- wb_data(country = c("MX", "US", "CN"), indicator = "NY.GDP.PCAP.CD", start_date = "1900", end_date = "2025")
summary(PIB_PANEL)
##     iso2c              iso3c             country               date     
##  Length:192         Length:192         Length:192         Min.   :1960  
##  Class :character   Class :character   Class :character   1st Qu.:1976  
##  Mode  :character   Mode  :character   Mode  :character   Median :1992  
##                                                           Mean   :1992  
##                                                           3rd Qu.:2007  
##                                                           Max.   :2023  
##  NY.GDP.PCAP.CD         unit            obs_status          footnote        
##  Min.   :   70.91   Length:192         Length:192         Length:192        
##  1st Qu.:  738.29   Class :character   Class :character   Class :character  
##  Median : 5127.15   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :12217.39                                                           
##  3rd Qu.:11899.33                                                           
##  Max.   :82769.41                                                           
##   last_updated       
##  Min.   :2025-01-28  
##  1st Qu.:2025-01-28  
##  Median :2025-01-28  
##  Mean   :2025-01-28  
##  3rd Qu.:2025-01-28  
##  Max.   :2025-01-28
ggplot(PIB_PANEL, aes(x= date, y= NY.GDP.PCAP.CD, color = iso3c)) + 
  geom_point() + 
  geom_line() + 
  labs(title = "PIB per capita en México (Current USD$)", x = "Año", y = "Valor")

# Obtener la información de varios indicadores en varios país
MEGAPIB <- wb_data(country = c("MX", "US", "CA"), indicator = c("NY.GDP.PCAP.CD", "SP.DYN.LE00.IN"), start_date = "1900", end_date = "2025")
summary(MEGAPIB)
##     iso2c              iso3c             country               date     
##  Length:192         Length:192         Length:192         Min.   :1960  
##  Class :character   Class :character   Class :character   1st Qu.:1976  
##  Mode  :character   Mode  :character   Mode  :character   Median :1992  
##                                                           Mean   :1992  
##                                                           3rd Qu.:2007  
##                                                           Max.   :2023  
##                                                                         
##  NY.GDP.PCAP.CD    SP.DYN.LE00.IN 
##  Min.   :  355.1   Min.   :55.02  
##  1st Qu.: 4059.2   1st Qu.:71.11  
##  Median :10544.4   Median :74.36  
##  Mean   :19152.2   Mean   :73.41  
##  3rd Qu.:29010.1   3rd Qu.:77.49  
##  Max.   :82769.4   Max.   :82.22  
##                    NA's   :3
# Heterogeneidad
# Variacion entre individuos
plotmeans(NY.GDP.PCAP.CD ~ country, main = "Heterogeneidad entre paises", xlab = "País", ylab = "PIB per capita", data = MEGAPIB)
## Warning in arrows(x, li, x, pmax(y - gap, li), col = barcol, lwd = lwd, :
## zero-length arrow is of indeterminate angle and so skipped
## Warning in arrows(x, ui, x, pmin(y + gap, ui), col = barcol, lwd = lwd, :
## zero-length arrow is of indeterminate angle and so skipped

# Interpretacion
# Alta heterogeneidad: Si los puntos (medias) estan muy separados entre paises.
# Baja heterogeneidad: Si los puntos (medias) estan cerca uno de otros.
# En este caso, EUA y Canada tiene un PIB per capita mayor que México, mostrando alta heterogeneidad entre ellos


# Modelos de efectos fijos y aleatorios

# Paso 1. Convertir la base de datos a formato de panel
datospanel <- pdata.frame(PIB_PANEL, index = c("country", "date"))

# Modelo de efectos fijos
modeloefectosfijos <- plm(NY.GDP.PCAP.CD ~ date, data = datospanel, model = "within")
summary(modeloefectosfijos)
## Oneway (individual) effect Within Model
## 
## Call:
## plm(formula = NY.GDP.PCAP.CD ~ date, data = datospanel, model = "within")
## 
## Balanced Panel: n = 3, T = 64, N = 192
## 
## Residuals:
##      Min.   1st Qu.    Median   3rd Qu.      Max. 
## -15521.98  -6737.55    386.77   5874.81  29459.42 
## 
## Coefficients:
##           Estimate Std. Error t-value  Pr(>|t|)    
## date1961    21.406   8760.920  0.0024 0.9980543    
## date1962    83.640   8760.920  0.0095 0.9923979    
## date1963   138.592   8760.920  0.0158 0.9874036    
## date1964   229.019   8760.920  0.0261 0.9791863    
## date1965   326.056   8760.920  0.0372 0.9703708    
## date1966   447.036   8760.920  0.0510 0.9593855    
## date1967   517.952   8760.920  0.0591 0.9529496    
## date1968   649.174   8760.920  0.0741 0.9410492    
## date1969   778.462   8760.920  0.0889 0.9293373    
## date1970   867.335   8760.920  0.0990 0.9212952    
## date1971  1010.496   8760.920  0.1153 0.9083582    
## date1972  1206.004   8760.920  0.1377 0.8907310    
## date1973  1477.344   8760.920  0.1686 0.8663590    
## date1974  1732.494   8760.920  0.1978 0.8435574    
## date1975  2009.102   8760.920  0.2293 0.8189878    
## date1976  2259.565   8760.920  0.2579 0.7968939    
## date1977  2502.719   8760.920  0.2857 0.7756011    
## date1978  2960.431   8760.920  0.3379 0.7359909    
## date1979  3487.656   8760.920  0.3981 0.6912357    
## date1980  4126.586   8760.920  0.4710 0.6384395    
## date1981  4852.620   8760.920  0.5539 0.5806331    
## date1982  4604.540   8760.920  0.5256 0.6001057    
## date1983  4831.573   8760.920  0.5515 0.5822735    
## date1984  5477.929   8760.920  0.6253 0.5329255    
## date1985  5896.178   8760.920  0.6730 0.5021740    
## date1986  5888.544   8760.920  0.6721 0.5027267    
## date1987  6244.852   8760.920  0.7128 0.4772827    
## date1988  6844.967   8760.920  0.7813 0.4360876    
## date1989  7482.877   8760.920  0.8541 0.3946595    
## date1990  7972.165   8760.920  0.9100 0.3645764    
## date1991  8313.261   8760.920  0.9489 0.3444865    
## date1992  8853.853   8760.920  1.0106 0.3141410    
## date1993  9789.524   8760.920  1.1174 0.2659459    
## date1994 10308.750   8760.920  1.1767 0.2415437    
## date1995 10013.299   8760.920  1.1430 0.2552261    
## date1996 10635.679   8760.920  1.2140 0.2270217    
## date1997 11454.589   8760.920  1.3075 0.1934358    
## date1998 12023.500   8760.920  1.3724 0.1723766    
## date1999 12814.728   8760.920  1.4627 0.1460353    
## date2000 13789.633   8760.920  1.5740 0.1179966    
## date2001 14231.679   8760.920  1.6245 0.1067787    
## date2002 14561.610   8760.920  1.6621 0.0989767 .  
## date2003 14922.851   8760.920  1.7033 0.0909692 .  
## date2004 15879.505   8760.920  1.8125 0.0722839 .  
## date2005 17034.704   8760.920  1.9444 0.0540760 .  
## date2006 18156.461   8760.920  2.0724 0.0402637 *  
## date2007 19144.686   8760.920  2.1852 0.0307209 *  
## date2008 19705.898   8760.920  2.2493 0.0262297 *  
## date2009 18668.762   8760.920  2.1309 0.0350390 *  
## date2010 19828.493   8760.920  2.2633 0.0253287 *  
## date2011 20966.800   8760.920  2.3932 0.0181767 *  
## date2012 21794.889   8760.920  2.4877 0.0141621 *  
## date2013 22734.159   8760.920  2.5950 0.0105824 *  
## date2014 23629.102   8760.920  2.6971 0.0079520 ** 
## date2015 23877.811   8760.920  2.7255 0.0073347 ** 
## date2016 23984.823   8760.920  2.7377 0.0070827 ** 
## date2017 25114.708   8760.920  2.8667 0.0048633 ** 
## date2018 26582.262   8760.920  3.0342 0.0029301 ** 
## date2019 27557.879   8760.920  3.1455 0.0020685 ** 
## date2020 26738.968   8760.920  3.0521 0.0027724 ** 
## date2021 30268.468   8760.920  3.4549 0.0007505 ***
## date2022 32879.568   8760.920  3.7530 0.0002655 ***
## date2023 35243.013   8760.920  4.0228 9.852e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    3.2446e+10
## Residual Sum of Squares: 1.4506e+10
## R-Squared:      0.5529
## Adj. R-Squared: 0.32226
## F-statistic: 2.47332 on 63 and 126 DF, p-value: 8.2134e-06
# Modelo de efectos aleatorios
modeloefectosaleatorios <- plm(NY.GDP.PCAP.CD ~ date, data = datospanel, model = "random")
summary(modeloefectosaleatorios)
## Oneway (individual) effect Random Effect Model 
##    (Swamy-Arora's transformation)
## 
## Call:
## plm(formula = NY.GDP.PCAP.CD ~ date, data = datospanel, model = "random")
## 
## Balanced Panel: n = 3, T = 64, N = 192
## 
## Effects:
##                     var   std.dev share
## idiosyncratic 115130579     10730 0.349
## individual    214679191     14652 0.651
## theta: 0.9088
## 
## Residuals:
##       Min.    1st Qu.     Median    3rd Qu.       Max. 
## -16171.057  -7431.122     87.963   5425.707  31001.720 
## 
## Coefficients:
##              Estimate Std. Error z-value  Pr(>|z|)    
## (Intercept)  1148.153  10485.065  0.1095 0.9128030    
## date1961       21.406   8760.920  0.0024 0.9980505    
## date1962       83.640   8760.920  0.0095 0.9923828    
## date1963      138.592   8760.920  0.0158 0.9873785    
## date1964      229.019   8760.920  0.0261 0.9791449    
## date1965      326.056   8760.920  0.0372 0.9703119    
## date1966      447.036   8760.920  0.0510 0.9593047    
## date1967      517.952   8760.920  0.0591 0.9528559    
## date1968      649.174   8760.920  0.0741 0.9409317    
## date1969      778.462   8760.920  0.0889 0.9291962    
## date1970      867.335   8760.920  0.0990 0.9211379    
## date1971     1010.496   8760.920  0.1153 0.9081746    
## date1972     1206.004   8760.920  0.1377 0.8905113    
## date1973     1477.344   8760.920  0.1686 0.8660886    
## date1974     1732.494   8760.920  0.1978 0.8432387    
## date1975     2009.102   8760.920  0.2293 0.8186160    
## date1976     2259.565   8760.920  0.2579 0.7964731    
## date1977     2502.719   8760.920  0.2857 0.7751320    
## date1978     2960.431   8760.920  0.3379 0.7354285    
## date1979     3487.656   8760.920  0.3981 0.6905620    
## date1980     4126.586   8760.920  0.4710 0.6376250    
## date1981     4852.620   8760.920  0.5539 0.5796514    
## date1982     4604.540   8760.920  0.5256 0.5991820    
## date1983     4831.573   8760.920  0.5515 0.5812968    
## date1984     5477.929   8760.920  0.6253 0.5317947    
## date1985     5896.178   8760.920  0.6730 0.5009416    
## date1986     5888.544   8760.920  0.6721 0.5014961    
## date1987     6244.852   8760.920  0.7128 0.4759647    
## date1988     6844.967   8760.920  0.7813 0.4346220    
## date1989     7482.877   8760.920  0.8541 0.3930385    
## date1990     7972.165   8760.920  0.9100 0.3628389    
## date1991     8313.261   8760.920  0.9489 0.3426701    
## date1992     8853.853   8760.920  1.0106 0.3122043    
## date1993     9789.524   8760.920  1.1174 0.2638198    
## date1994    10308.750   8760.920  1.1767 0.2393255    
## date1995    10013.299   8760.920  1.1430 0.2530591    
## date1996    10635.679   8760.920  1.2140 0.2247511    
## date1997    11454.589   8760.920  1.3075 0.1910551    
## date1998    12023.500   8760.920  1.3724 0.1699385    
## date1999    12814.728   8760.920  1.4627 0.1435454    
## date2000    13789.633   8760.920  1.5740 0.1154889    
## date2001    14231.679   8760.920  1.6245 0.1042797    
## date2002    14561.610   8760.920  1.6621 0.0964908 .  
## date2003    14922.851   8760.920  1.7033 0.0885039 .  
## date2004    15879.505   8760.920  1.8125 0.0699030 .  
## date2005    17034.704   8760.920  1.9444 0.0518476 .  
## date2006    18156.461   8760.920  2.0724 0.0382246 *  
## date2007    19144.686   8760.920  2.1852 0.0288715 *  
## date2008    19705.898   8760.920  2.2493 0.0244937 *  
## date2009    18668.762   8760.920  2.1309 0.0330963 *  
## date2010    19828.493   8760.920  2.2633 0.0236179 *  
## date2011    20966.800   8760.920  2.3932 0.0167013 *  
## date2012    21794.889   8760.920  2.4877 0.0128558 *  
## date2013    22734.159   8760.920  2.5950 0.0094604 ** 
## date2014    23629.102   8760.920  2.6971 0.0069946 ** 
## date2015    23877.811   8760.920  2.7255 0.0064206 ** 
## date2016    23984.823   8760.920  2.7377 0.0061869 ** 
## date2017    25114.708   8760.920  2.8667 0.0041481 ** 
## date2018    26582.262   8760.920  3.0342 0.0024119 ** 
## date2019    27557.879   8760.920  3.1455 0.0016578 ** 
## date2020    26738.968   8760.920  3.0521 0.0022727 ** 
## date2021    30268.468   8760.920  3.4549 0.0005504 ***
## date2022    32879.568   8760.920  3.7530 0.0001747 ***
## date2023    35243.013   8760.920  4.0228 5.752e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Total Sum of Squares:    3.2676e+10
## Residual Sum of Squares: 1.4737e+10
## R-Squared:      0.54901
## Adj. R-Squared: 0.32704
## Chisq: 155.819 on 63 DF, p-value: 7.9516e-10
# Prueba de Hausman
phtest(modeloefectosfijos, modeloefectosaleatorios)
## 
##  Hausman Test
## 
## data:  NY.GDP.PCAP.CD ~ date
## chisq = 1.1281e-13, df = 63, p-value = 1
## alternative hypothesis: one model is inconsistent
# Como el p-value es mayor a 0.05, usamos el modelo de efectos aleatorios.

Aplicación de Shiny (Ejemplo y ejercicio Sesion 3)

Realizado por la mesa 7: Héctor de la Garza, Mariana Leal y Marcelo Tam

Dar clic para ir a la app de Shiny

LS0tCnRpdGxlOiAiQWN0aXZpZGFkIDEgLSBBbsOhbGlzaXMgeSBhcGxpY2FjacOzbiBkZSBkYXRvcyBwYW5lbCIKYXV0aG9yOiAiSMOpY3RvciBHdWFkYWx1cGUgZGUgbGEgR2FyemEgVHJldmnDsW8gLSBBMDExNzc5NjAiCmRhdGU6ICIyMDI1LTAyLTEzIgpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IFRSVUUKICAgIHRvY19mbG9hdDogVFJVRQogICAgY29kZV9kb3dubG9hZDogVFJVRQogICAgdGhlbWU6IGNlcnVsZWFuCi0tLQoKIyAqKkFjdGl2aWRhZCBQYXRlbnRlcyoqCgohW10oL1VzZXJzL2hlY3RvcmRlbGFnYXJ6YXRyZXZpbm8vTGlicmFyeS9DbG91ZFN0b3JhZ2UvR29vZ2xlRHJpdmUtYTAxMTc3OTYwQHRlYy5teC9NeSBEcml2ZS9MSVQvOC4gT2N0YXZvIHNlbWVzdHJlL0dlbmVyYWNpb8yBbiBkZSBlc2NlbmFyaW9zIGZ1dHVyb3MgY29uIGFuYWxpzIF0aWNhL01vZHVsbyAxL0FjdGl2aWRhZGVzL0FjdGl2aWRhZCAxL1BhdGVudGUuanBnKQoKIyMjIEluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcmlhcwpgYGB7cn0KbGlicmFyeShXREkpCmxpYnJhcnkod2JzdGF0cykKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoZ3Bsb3RzKQpsaWJyYXJ5KHBsbSkKbGlicmFyeShyZWFkeGwpCmxpYnJhcnkobG10ZXN0KQpsaWJyYXJ5KHBnbG0pCmBgYAoKIyMjIEltcG9ydGFyIGJhc2UgZGUgZGF0b3MKYGBge3J9CnBhdGVudGVzIDwtIHJlYWRfeGxzKCIvVXNlcnMvaGVjdG9yZGVsYWdhcnphdHJldmluby9MaWJyYXJ5L0Nsb3VkU3RvcmFnZS9Hb29nbGVEcml2ZS1hMDExNzc5NjBAdGVjLm14L015IERyaXZlL0xJVC84LiBPY3Rhdm8gc2VtZXN0cmUvR2VuZXJhY2lvzIFuIGRlIGVzY2VuYXJpb3MgZnV0dXJvcyBjb24gYW5hbGnMgXRpY2EvTW9kdWxvIDEvQWN0aXZpZGFkZXMvQWN0aXZpZGFkIDEvUEFURU5UIDMueGxzIikKYGBgCgojIyMgRW50ZW5kZXIgbGEgYmFzZSBkZSBkYXRvcwpgYGB7cn0Kc3VtbWFyeShwYXRlbnRlcykKc3VtKGlzLm5hKHBhdGVudGVzKSkKc2FwcGx5KHBhdGVudGVzLCBmdW5jdGlvbih4KSBzdW0oaXMubmEoeCkpKQpwYXRlbnRlczEgPC0gbmEub21pdChwYXRlbnRlcykKYGBgCgojIyMgMS4gQ29uc3RydWNjacOzbiBkZWwgbW9kZWxvIGRlIGRhdG9zIHBhbmVsCmBgYHtyfQpwYW5lbHBhdGVudGVzIDwtIHBkYXRhLmZyYW1lKHBhdGVudGVzMSwgaW5kZXggPSBjKCJjdXNpcCIsICJ5ZWFyIikpCmBgYAoKIyMjIDIuIE1vZGVsb3MgZGUgRWZlY3RvcyBmaWpvcyB5IGFsZWF0b3Jpb3MKYGBge3J9CiMgTW9kZWxvIGRlIGVmZWN0b3MgZmlqb3MKbW9kZWxvZWZlY3Rvc2Zpam9zcGF0ZW50ZXMgPC0gcGxtKHBhdGVudHMgfiBtZXJnZXIgKyBlbXBsb3kgKyByZXR1cm4gKyBwYXRlbnRzZyArIHN0Y2twciArIHJuZCArIHJuZGVmbHQgKyBybmRzdGNrICsgc2FsZXMgKyBzaWMsIGRhdGEgPSBwYW5lbHBhdGVudGVzLCBtb2RlbCA9ICJ3aXRoaW4iKQpzdW1tYXJ5KG1vZGVsb2VmZWN0b3NmaWpvc3BhdGVudGVzKQoKIyBNb2RlbG8gZGUgZWZlY3RvcyBhbGVhdG9yaW9zCm1vZGVsb2VmZWN0b3NhbGVhdG9yaW9zcGF0ZW50ZXMgPC0gcGxtKHBhdGVudHMgfiBtZXJnZXIgKyBlbXBsb3kgKyByZXR1cm4gKyBwYXRlbnRzZyArIHN0Y2twciArIHJuZCArIHJuZGVmbHQgKyBybmRzdGNrICsgc2FsZXMgKyBzaWMsIGRhdGEgPSBwYW5lbHBhdGVudGVzLCBtb2RlbCA9ICJyYW5kb20iKQpzdW1tYXJ5KG1vZGVsb2VmZWN0b3NhbGVhdG9yaW9zcGF0ZW50ZXMpCgojIFBydWViYSBkZSBIYXVzbWFuCnBodGVzdChtb2RlbG9lZmVjdG9zZmlqb3NwYXRlbnRlcywgbW9kZWxvZWZlY3Rvc2FsZWF0b3Jpb3NwYXRlbnRlcykKIyBDb21vIGVsIHAtdmFsdWUgZXMgbWVub3IgYSAwLjA1LCB1c2FyZW1vcyBsYSBkZSBlZmVjdG9zIGZpam9zCmBgYAoKIyMjIDMuIFBydWViYXMgZGUgaGV0ZXJvY2VkYXN0aWNpZGFkIHkgYXV0b2NvcnJlbGFjacOzbiBzZXJpYWwKYGBge3J9CiMgUHJ1ZWJhcyBkZSBoZXRlcm9jZWRhc3RpY2lkYWQgcGFyYSBlbCBtb2RlbG8gZGUgZWZlY3RvcyBmaWpvcwpicHRlc3QobW9kZWxvZWZlY3Rvc2Zpam9zcGF0ZW50ZXMpCiMgQ29tbyBlbCBwLXZhbHVlIGVzIG1lbm9yIGEgMC4wNSwgaGF5IGhldGVyb2NlZGFzdGljaWRhZCBlbiBsb3MgcmVzaWR1b3MgKFByb2JsZW1hIGRldGVjdGFkbykKCiMgUHJ1ZWJhcyBkZSBoZXRlcm9jZWRhc3RpY2lkYWQgcGFyYSBlbCBtb2RlbG8gZGUgZWZlY3RvcyBhbGVhdG9yaW9zCmJwdGVzdChtb2RlbG9lZmVjdG9zYWxlYXRvcmlvc3BhdGVudGVzKQojIENvbW8gZWwgcC12YWx1ZSBlcyBtZW5vciBhIDAuMDUsIGhheSBoZXRlcm9jZWRhc3RpY2lkYWQgZW4gbG9zIHJlc2lkdW9zIChQcm9ibGVtYSBkZXRlY3RhZG8pCgojIFBydWViYSBkZSBhdXRvY29ycmVsYWNpw7NuIHNlcmlhbCBwYXJhIGVsIG1vZGVsbyBkZSBlZmVjdG9zIGZpam9zCnB3YXJ0ZXN0KG1vZGVsb2VmZWN0b3NmaWpvc3BhdGVudGVzKQojIENvbW8gZWwgcC12YWx1ZSBlcyBtZW5vciBhIDAuMDUsIGhheSBhdXRvY29ycmVsYWNpb24gc2VyaWFsIGVuIGVycm9yZXMKCiMgUHJ1ZWJhIGRlIGF1dG9jb3JyZWxhY2nDs24gc2VyaWFsIHBhcmEgZWwgbW9kZWxvIGRlIGVmZWN0b3MgYWxlYXRvcmlvcwpwYm5mdGVzdChtb2RlbG9lZmVjdG9zYWxlYXRvcmlvc3BhdGVudGVzKQojIENvbW8gZWwgdmFsb3IgZXMgbWVub3IgZGUgMS41IGhheSBhdXRvY29ycmVsYWNpw7NuIHBvc2l0aXZhIHNpZ25pZmljYXRpdmEKCiMgQ29ycmVjY2nDs24gZGVsIG1vZGVsbyBjb24gZXJyb3JlcyBlc3RhbmRhciByb2J1c3Rvcwpjb2VmaWNpZW50ZXNjb3JyZWdpZG9zIDwtIGNvZWZ0ZXN0KG1vZGVsb2VmZWN0b3NmaWpvc3BhdGVudGVzLCB2Y292ID0gdmNvdkhDKG1vZGVsb2VmZWN0b3NhbGVhdG9yaW9zcGF0ZW50ZXMsIHR5cGUgPSAiSEMwIikpCnNvbG9jb2VmaWNpZW50ZXMgPC0gY29lZmljaWVudGVzY29ycmVnaWRvc1ssMV0KYGBgCgojIyMgNC4gR2VuZXJhciBwcm9ub3N0aWNvcyB5IGV2YWx1YXIgbW9kZWxvCmBgYHtyfQpkYXRvc2RlcHJ1ZWJhIDwtIGRhdGEuZnJhbWUobWVyZ2VyPTAsIGVtcGxveT0xMCwgcmV0dXJuPTYsIHBhdGVudHNnPTI0LCBzdGNrcHI9NDgsIHJuZD0zLCBybmRmbHQ9Mywgcm5kc3Rjaz0xNiwgc2FsZXM9MzQ0KQoKcHJlZGljY2lvbiA8LSBzdW0oc29sb2NvZWZpY2llbnRlcypjKDEsIGRhdG9zZGVwcnVlYmEkbWVyZ2VyLCBkYXRvc2RlcHJ1ZWJhJGVtcGxveSwgZGF0b3NkZXBydWViYSRyZXR1cm4sIGRhdG9zZGVwcnVlYmEkcGF0ZW50c2csIGRhdG9zZGVwcnVlYmEkc3Rja3ByLCBkYXRvc2RlcHJ1ZWJhJHJuZCwgZGF0b3NkZXBydWViYSRybmRmbHQsIGRhdG9zZGVwcnVlYmEkcm5kc3RjaywgZGF0b3NkZXBydWViYSRzYWxlcykpCnByZWRpY2Npb24KIyBFbCB2YWxvciBlc3BlcmFkbyBkZSBsYSBwcmVkaWNjaW9uIGVzIDIyLCB5IGVsIHJlc3VsdGFkbyBmdWUgNC4yLCBwb3IgbG8gcXVlIHRlbmVtb3MgdW5hIGRpZmVyZW5jaWEgc2lnbmlmaWNhdGl2YS4KYGBgCgoKIyAqKkFjdGl2aWRhZCBTZXNpb24gMS4gTW9kZWxvIEVjb25vbcOpdHJpY28qKgojIyMjIyBSZWFsaXphZG8gcG9yIEjDqWN0b3IgZGUgbGEgR2FyemEsIE1hcmlhbmEgTGVhbCB5IEdlbmFybyBSb2Ryw61ndWV6CgohW10oL1VzZXJzL2hlY3RvcmRlbGFnYXJ6YXRyZXZpbm8vTGlicmFyeS9DbG91ZFN0b3JhZ2UvR29vZ2xlRHJpdmUtYTAxMTc3OTYwQHRlYy5teC9NeSBEcml2ZS9MSVQvOC4gT2N0YXZvIHNlbWVzdHJlL0dlbmVyYWNpb8yBbiBkZSBlc2NlbmFyaW9zIGZ1dHVyb3MgY29uIGFuYWxpzIF0aWNhL01vZHVsbyAxL0FjdGl2aWRhZGVzL0FjdGl2aWRhZCAxL0ltYWdlbjEucG5nKQoKIVtdKC9Vc2Vycy9oZWN0b3JkZWxhZ2FyemF0cmV2aW5vL0xpYnJhcnkvQ2xvdWRTdG9yYWdlL0dvb2dsZURyaXZlLWEwMTE3Nzk2MEB0ZWMubXgvTXkgRHJpdmUvTElULzguIE9jdGF2byBzZW1lc3RyZS9HZW5lcmFjaW/MgW4gZGUgZXNjZW5hcmlvcyBmdXR1cm9zIGNvbiBhbmFsacyBdGljYS9Nb2R1bG8gMS9BY3RpdmlkYWRlcy9BY3RpdmlkYWQgMS9JbWFnZW4yLnBuZykKCiFbXSgvVXNlcnMvaGVjdG9yZGVsYWdhcnphdHJldmluby9MaWJyYXJ5L0Nsb3VkU3RvcmFnZS9Hb29nbGVEcml2ZS1hMDExNzc5NjBAdGVjLm14L015IERyaXZlL0xJVC84LiBPY3Rhdm8gc2VtZXN0cmUvR2VuZXJhY2lvzIFuIGRlIGVzY2VuYXJpb3MgZnV0dXJvcyBjb24gYW5hbGnMgXRpY2EvTW9kdWxvIDEvQWN0aXZpZGFkZXMvQWN0aXZpZGFkIDEvSW1hZ2VuMy5wbmcpCgohW10oL1VzZXJzL2hlY3RvcmRlbGFnYXJ6YXRyZXZpbm8vTGlicmFyeS9DbG91ZFN0b3JhZ2UvR29vZ2xlRHJpdmUtYTAxMTc3OTYwQHRlYy5teC9NeSBEcml2ZS9MSVQvOC4gT2N0YXZvIHNlbWVzdHJlL0dlbmVyYWNpb8yBbiBkZSBlc2NlbmFyaW9zIGZ1dHVyb3MgY29uIGFuYWxpzIF0aWNhL01vZHVsbyAxL0FjdGl2aWRhZGVzL0FjdGl2aWRhZCAxL0ltYWdlbjQucG5nKQoKIVtdKC9Vc2Vycy9oZWN0b3JkZWxhZ2FyemF0cmV2aW5vL0xpYnJhcnkvQ2xvdWRTdG9yYWdlL0dvb2dsZURyaXZlLWEwMTE3Nzk2MEB0ZWMubXgvTXkgRHJpdmUvTElULzguIE9jdGF2byBzZW1lc3RyZS9HZW5lcmFjaW/MgW4gZGUgZXNjZW5hcmlvcyBmdXR1cm9zIGNvbiBhbmFsacyBdGljYS9Nb2R1bG8gMS9BY3RpdmlkYWRlcy9BY3RpdmlkYWQgMS9JbWFnZW41LnBuZykKCiMgKipDw7NkaWdvIHNlc2nDs24gMiwgMywgNC4gQW5hbGlzaXMgZGUgZGF0b3MgZGUgcGFuZWwqKgpgYGB7cn0KIyBPYnRlbmVyIGxhIGluZm9ybWFjacOzbiBkZSB1biBwYcOtcwpQSUJfTUVYIDwtIHdiX2RhdGEoY291bnRyeSA9ICJNWCIsIGluZGljYXRvciA9ICJOWS5HRFAuUENBUC5DRCIsIHN0YXJ0X2RhdGUgPSAiMTkwMCIsIGVuZF9kYXRlID0gIjIwMjUiKQpzdW1tYXJ5KFBJQl9NRVgpCmdncGxvdChQSUJfTUVYLCBhZXMoeD0gZGF0ZSwgeT0gTlkuR0RQLlBDQVAuQ0QpKSArIAogIGdlb21fcG9pbnQoKSArIAogIGdlb21fbGluZSgpICsgCiAgbGFicyh0aXRsZSA9ICIgUElCIHBlciBjYXBpdGEgZW4gTcOpeGljbyAoQ3VycmVudCBVU0QkKSIsIHggPSAiQcOxbyIsIHkgPSAiVmFsb3IiKQoKIyBPYnRlbmVyIGxhIGluZm9ybWFjacOzbiBkZSB2YXJpb3MgcGHDrXMKUElCX1BBTkVMIDwtIHdiX2RhdGEoY291bnRyeSA9IGMoIk1YIiwgIlVTIiwgIkNOIiksIGluZGljYXRvciA9ICJOWS5HRFAuUENBUC5DRCIsIHN0YXJ0X2RhdGUgPSAiMTkwMCIsIGVuZF9kYXRlID0gIjIwMjUiKQpzdW1tYXJ5KFBJQl9QQU5FTCkKZ2dwbG90KFBJQl9QQU5FTCwgYWVzKHg9IGRhdGUsIHk9IE5ZLkdEUC5QQ0FQLkNELCBjb2xvciA9IGlzbzNjKSkgKyAKICBnZW9tX3BvaW50KCkgKyAKICBnZW9tX2xpbmUoKSArIAogIGxhYnModGl0bGUgPSAiUElCIHBlciBjYXBpdGEgZW4gTcOpeGljbyAoQ3VycmVudCBVU0QkKSIsIHggPSAiQcOxbyIsIHkgPSAiVmFsb3IiKQoKCiMgT2J0ZW5lciBsYSBpbmZvcm1hY2nDs24gZGUgdmFyaW9zIGluZGljYWRvcmVzIGVuIHZhcmlvcyBwYcOtcwpNRUdBUElCIDwtIHdiX2RhdGEoY291bnRyeSA9IGMoIk1YIiwgIlVTIiwgIkNBIiksIGluZGljYXRvciA9IGMoIk5ZLkdEUC5QQ0FQLkNEIiwgIlNQLkRZTi5MRTAwLklOIiksIHN0YXJ0X2RhdGUgPSAiMTkwMCIsIGVuZF9kYXRlID0gIjIwMjUiKQpzdW1tYXJ5KE1FR0FQSUIpCgojIEhldGVyb2dlbmVpZGFkCiMgVmFyaWFjaW9uIGVudHJlIGluZGl2aWR1b3MKcGxvdG1lYW5zKE5ZLkdEUC5QQ0FQLkNEIH4gY291bnRyeSwgbWFpbiA9ICJIZXRlcm9nZW5laWRhZCBlbnRyZSBwYWlzZXMiLCB4bGFiID0gIlBhw61zIiwgeWxhYiA9ICJQSUIgcGVyIGNhcGl0YSIsIGRhdGEgPSBNRUdBUElCKQojIEludGVycHJldGFjaW9uCiMgQWx0YSBoZXRlcm9nZW5laWRhZDogU2kgbG9zIHB1bnRvcyAobWVkaWFzKSBlc3RhbiBtdXkgc2VwYXJhZG9zIGVudHJlIHBhaXNlcy4KIyBCYWphIGhldGVyb2dlbmVpZGFkOiBTaSBsb3MgcHVudG9zIChtZWRpYXMpIGVzdGFuIGNlcmNhIHVubyBkZSBvdHJvcy4KIyBFbiBlc3RlIGNhc28sIEVVQSB5IENhbmFkYSB0aWVuZSB1biBQSUIgcGVyIGNhcGl0YSBtYXlvciBxdWUgTcOpeGljbywgbW9zdHJhbmRvIGFsdGEgaGV0ZXJvZ2VuZWlkYWQgZW50cmUgZWxsb3MKCgojIE1vZGVsb3MgZGUgZWZlY3RvcyBmaWpvcyB5IGFsZWF0b3Jpb3MKCiMgUGFzbyAxLiBDb252ZXJ0aXIgbGEgYmFzZSBkZSBkYXRvcyBhIGZvcm1hdG8gZGUgcGFuZWwKZGF0b3NwYW5lbCA8LSBwZGF0YS5mcmFtZShQSUJfUEFORUwsIGluZGV4ID0gYygiY291bnRyeSIsICJkYXRlIikpCgojIE1vZGVsbyBkZSBlZmVjdG9zIGZpam9zCm1vZGVsb2VmZWN0b3NmaWpvcyA8LSBwbG0oTlkuR0RQLlBDQVAuQ0QgfiBkYXRlLCBkYXRhID0gZGF0b3NwYW5lbCwgbW9kZWwgPSAid2l0aGluIikKc3VtbWFyeShtb2RlbG9lZmVjdG9zZmlqb3MpCgojIE1vZGVsbyBkZSBlZmVjdG9zIGFsZWF0b3Jpb3MKbW9kZWxvZWZlY3Rvc2FsZWF0b3Jpb3MgPC0gcGxtKE5ZLkdEUC5QQ0FQLkNEIH4gZGF0ZSwgZGF0YSA9IGRhdG9zcGFuZWwsIG1vZGVsID0gInJhbmRvbSIpCnN1bW1hcnkobW9kZWxvZWZlY3Rvc2FsZWF0b3Jpb3MpCgojIFBydWViYSBkZSBIYXVzbWFuCnBodGVzdChtb2RlbG9lZmVjdG9zZmlqb3MsIG1vZGVsb2VmZWN0b3NhbGVhdG9yaW9zKQojIENvbW8gZWwgcC12YWx1ZSBlcyBtYXlvciBhIDAuMDUsIHVzYW1vcyBlbCBtb2RlbG8gZGUgZWZlY3RvcyBhbGVhdG9yaW9zLgoKYGBgCgojICoqQXBsaWNhY2nDs24gZGUgU2hpbnkgKEVqZW1wbG8geSBlamVyY2ljaW8gU2VzaW9uIDMpKioKIyMjIyMgUmVhbGl6YWRvIHBvciBsYSBtZXNhIDc6IEjDqWN0b3IgZGUgbGEgR2FyemEsIE1hcmlhbmEgTGVhbCB5IE1hcmNlbG8gVGFtCgpbRGFyIGNsaWMgcGFyYSBpciBhIGxhIGFwcCBkZSBTaGlueV0oaHR0cHM6Ly9oZWN0b3JkMWcuc2hpbnlhcHBzLmlvL1VsdGltYV9BUFAvKQoK