EQUIPO 6
Alexa Mariana Marin Villar A00831342
Diego Martínez Ruibal A01740559
Oscar Emiliano Melendez Chavez A01276802
Importar datos
PATENT_3 <- read_csv("C:/Users/alexa/OneDrive/YO/patents_3.csv")
View(PATENT_3)
La base de datos cuenta con 13 columnas y 2,260 observaciones
Diccionario de variables
cusip: firm identifier
merger: factor = 1 if major merger
employ = employees in 1000s
return = return on stock, %
patents = patents applied for
patentsg =patents granted (variable endógena)
stckpr = price common stock
rnd = R&D expend, current mill $
rndeflt = R&D expend, 1972 mill $
rndstck = stock of R&D
sales = sales, current mill. $
sic = 4 digit industry year = 72 through 81
year = 72 through 81
glimpse(PATENT_3)
## Rows: 2,260
## Columns: 13
## $ cusip <dbl> 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 4626, 4626,…
## $ merger <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ employ <dbl> 10, 12, 12, 12, 13, 13, 14, 14, 13, 12, 5, 6, 7, 6, 5, 6, 6, …
## $ return <dbl> 6, 6, 4, 5, 5, 5, 5, 5, 4, 5, 5, 7, 5, 6, 5, 5, 7, 8, 6, 5, 2…
## $ patents <dbl> 22, 34, 31, 32, 40, 60, 57, 77, 38, 5, 7, 7, 5, 3, 3, 3, 0, 9…
## $ patentsg <dbl> 24, 32, 30, 34, 28, 33, 53, 47, 64, 70, 6, 10, 6, 10, 2, 4, 3…
## $ stckpr <dbl> 48, 58, 33, 38, 35, 34, 31, 34, 46, 41, 17, 13, 7, 8, 10, 13,…
## $ rnd <dbl> 3, 3, 3, 3, 4, 4, 5, 5, 7, 8, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 0…
## $ rndeflt <dbl> 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 0…
## $ rndstck <dbl> 16, 17, 20, 22, 23, 25, 27, 30, 34, 38, 5, 5, 6, 7, 8, 9, 11,…
## $ sales <dbl> 344, 436, 535, 567, 631, 706, 819, 992, 1045, 939, 96, 128, 1…
## $ sic <dbl> 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3…
## $ year <dbl> 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2…
Observar valores nulos
#Identificar valores nulos
sum(is.na(PATENT_3))
## [1] 191
colSums(is.na(PATENT_3))
## 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
#Visualizacion de valores nulos
vis_miss(PATENT_3)
Existen valores nulos en ciertas variables por lo cual se decidio imputar con mice.
Imputar con mice
PATENT_3 <- mice(PATENT_3, m=2, maxit=1, meth='cart', seed=500)
##
## iter imp variable
## 1 1 employ return stckpr rndstck sales
## 1 2 employ return stckpr rndstck sales
PATENT_3 <- complete(PATENT_3)
vis_miss(PATENT_3)
Observar tipo de dato
summary(PATENT_3)
## cusip merger employ return
## Min. : 800 Min. :0.0000 Min. : 0.00 Min. :-73.000
## 1st Qu.:368514 1st Qu.:0.0000 1st Qu.: 1.00 1st Qu.: 5.000
## Median :501116 Median :0.0000 Median : 4.00 Median : 8.000
## Mean :514536 Mean :0.0177 Mean : 18.67 Mean : 8.007
## 3rd Qu.:754688 3rd Qu.:0.0000 3rd Qu.: 15.00 3rd Qu.: 11.000
## Max. :878555 Max. :1.0000 Max. :507.00 Max. : 49.000
## patents patentsg stckpr rnd
## Min. : 0.0 Min. : 0.00 Min. : 0.00 Min. : 0.00
## 1st Qu.: 1.0 1st Qu.: 1.00 1st Qu.: 8.00 1st Qu.: 1.00
## Median : 3.0 Median : 4.00 Median : 16.50 Median : 2.00
## Mean : 22.9 Mean : 27.14 Mean : 22.66 Mean : 29.32
## 3rd Qu.: 15.0 3rd Qu.: 19.00 3rd Qu.: 29.00 3rd Qu.: 12.00
## Max. :906.0 Max. :1063.00 Max. :402.00 Max. :1719.00
## rndeflt rndstck sales sic
## Min. : 0.0 Min. : 0.0 Min. : 1.0 Min. :2000
## 1st Qu.: 0.0 1st Qu.: 5.0 1st Qu.: 53.0 1st Qu.:2890
## Median : 1.0 Median : 12.5 Median : 173.5 Median :3531
## Mean : 19.7 Mean : 153.3 Mean : 1218.2 Mean :3333
## 3rd Qu.: 9.0 3rd Qu.: 65.0 3rd Qu.: 727.5 3rd Qu.:3661
## Max. :1001.0 Max. :9755.0 Max. :44224.0 Max. :9997
## year
## Min. :2012
## 1st Qu.:2014
## Median :2016
## Mean :2016
## 3rd Qu.:2019
## Max. :2021
Cambiar tipo de dato
PATENT_3$merger <- as.factor(PATENT_3$merger)
PATENT_3$sic <- as.factor(PATENT_3$sic)
PATENT_3$cusip <- as.factor(PATENT_3$cusip)
PATENT_3$employ <- as.numeric(PATENT_3$employ)
glimpse(PATENT_3)
## Rows: 2,260
## Columns: 13
## $ cusip <fct> 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 4626, 4626,…
## $ merger <fct> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ employ <dbl> 10, 12, 12, 12, 13, 13, 14, 14, 13, 12, 5, 6, 7, 6, 5, 6, 6, …
## $ return <dbl> 6, 6, 4, 5, 5, 5, 5, 5, 4, 5, 5, 7, 5, 6, 5, 5, 7, 8, 6, 5, 2…
## $ patents <dbl> 22, 34, 31, 32, 40, 60, 57, 77, 38, 5, 7, 7, 5, 3, 3, 3, 0, 9…
## $ patentsg <dbl> 24, 32, 30, 34, 28, 33, 53, 47, 64, 70, 6, 10, 6, 10, 2, 4, 3…
## $ stckpr <dbl> 48, 58, 33, 38, 35, 34, 31, 34, 46, 41, 17, 13, 7, 8, 10, 13,…
## $ rnd <dbl> 3, 3, 3, 3, 4, 4, 5, 5, 7, 8, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 0…
## $ rndeflt <dbl> 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 0…
## $ rndstck <dbl> 16, 17, 20, 22, 23, 25, 27, 30, 34, 38, 5, 5, 6, 7, 8, 9, 11,…
## $ sales <dbl> 344, 436, 535, 567, 631, 706, 819, 992, 1045, 939, 96, 128, 1…
## $ sic <fct> 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3…
## $ year <dbl> 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2…
1.- Construye un modelo de datos en panel
Añadiendo año y numero de empresa como datos en panel
PATENT_3 <- pdata.frame(PATENT_3,index = c("cusip","year"))
View(PATENT_3)
2.- Realiza las pruebas necesarias para detectar posibles errores en tu análisis. Verifica la presencia o ausencia de heterocedasticidad y autocorrelación serial.
#Heterogenidad entre empresas
plotmeans(patentsg ~ cusip, data= PATENT_3, main= " Heterogeneidad entre empresas")
Existe bastante variabildiad en los datos en comparación de las patentes otorgadas en las empresas.
#Heterogenidad entre empresas
plotmeans(patentsg ~ year, data= PATENT_3, main= " Heterogeneidad entre años")
Se observa una tendencia negativa desde el 2015 en las patentes otorgadas al paso de los años.
Seleccionar variables relevantes para el modelo
PATENT_3 <- select(PATENT_3, c(1,3,4,6,7,8,9,10,11,13))
View(PATENT_3)
glimpse(PATENT_3)
## Rows: 2,260
## Columns: 10
## $ cusip <fct> 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 4626, 4626,…
## $ employ <pseries> 10, 12, 12, 12, 13, 13, 14, 14, 13, 12, 5, 6, 7, 6, 5, 6,…
## $ return <pseries> 6, 6, 4, 5, 5, 5, 5, 5, 4, 5, 5, 7, 5, 6, 5, 5, 7, 8, 6, …
## $ patentsg <pseries> 24, 32, 30, 34, 28, 33, 53, 47, 64, 70, 6, 10, 6, 10, 2, …
## $ stckpr <pseries> 48, 58, 33, 38, 35, 34, 31, 34, 46, 41, 17, 13, 7, 8, 10,…
## $ rnd <pseries> 3, 3, 3, 3, 4, 4, 5, 5, 7, 8, 1, 1, 1, 1, 2, 2, 2, 3, 4, …
## $ rndeflt <pseries> 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 1, 1, 1, 1, 1, 1, 2, 2, 2, …
## $ rndstck <pseries> 16, 17, 20, 22, 23, 25, 27, 30, 34, 38, 5, 5, 6, 7, 8, 9,…
## $ sales <pseries> 344, 436, 535, 567, 631, 706, 819, 992, 1045, 939, 96, 12…
## $ year <fct> 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2…
3.- Determina cuál es el modelo apropiado de datos panel para este caso (efectos fijos o efectos aleatorios)
Pregunta clave: ¿Qué factores afectan la cantidad de patentes otorgadas?
Agregar columna de employ para que el modelo no tome la variable como factor.
PATENT_3 <- PATENT_3 %>%
mutate(employ_2 = employ * 1)
glimpse(PATENT_3)
## Rows: 2,260
## Columns: 11
## $ cusip <fct> 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 4626, 4626,…
## $ employ <pseries> 10, 12, 12, 12, 13, 13, 14, 14, 13, 12, 5, 6, 7, 6, 5, 6,…
## $ return <pseries> 6, 6, 4, 5, 5, 5, 5, 5, 4, 5, 5, 7, 5, 6, 5, 5, 7, 8, 6, …
## $ patentsg <pseries> 24, 32, 30, 34, 28, 33, 53, 47, 64, 70, 6, 10, 6, 10, 2, …
## $ stckpr <pseries> 48, 58, 33, 38, 35, 34, 31, 34, 46, 41, 17, 13, 7, 8, 10,…
## $ rnd <pseries> 3, 3, 3, 3, 4, 4, 5, 5, 7, 8, 1, 1, 1, 1, 2, 2, 2, 3, 4, …
## $ rndeflt <pseries> 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 1, 1, 1, 1, 1, 1, 2, 2, 2, …
## $ rndstck <pseries> 16, 17, 20, 22, 23, 25, 27, 30, 34, 38, 5, 5, 6, 7, 8, 9,…
## $ sales <pseries> 344, 436, 535, 567, 631, 706, 819, 992, 1045, 939, 96, 12…
## $ year <fct> 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2…
## $ employ_2 <pseries> 10, 12, 12, 12, 13, 13, 14, 14, 13, 12, 5, 6, 7, 6, 5, 6,…
Verificar correlación entre las variables
library(corrplot)
patent3_cor <- PATENT_3 %>% select (-year,-cusip)
corrplot(cor(patent3_cor),type='upper',order='hclust',addCoef.col='black')
Según el gráfico de correlación, las variables más relacionadas con la variable endógena (patentsg) son sales, employ, rndeflt, rnd y rndstck, y en menor medida, stckpr. De acuerdo con este gráfico,se realizaron distintas pruebas y se eligieron las variables más relevantes para el modelo.
Modelo 1. Regresion agrupada (pooled)
modelo1 <- plm(patentsg ~ rnd + rndstck + stckpr
+ employ_2 + sales , data = PATENT_3, model = "pooling")
summary(modelo1)
## Pooling Model
##
## Call:
## plm(formula = patentsg ~ rnd + rndstck + stckpr + employ_2 +
## sales, data = PATENT_3, model = "pooling")
##
## Balanced Panel: n = 226, T = 10, N = 2260
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -344.2625 -10.6528 1.4581 7.9749 541.0940
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## (Intercept) -1.0841e+01 1.4279e+00 -7.5926 4.564e-14 ***
## rnd -5.5142e-01 6.6201e-02 -8.3294 < 2.2e-16 ***
## rndstck 8.3943e-02 1.2190e-02 6.8859 7.418e-12 ***
## stckpr 7.6304e-01 4.4616e-02 17.1024 < 2.2e-16 ***
## employ_2 1.4543e+00 4.5120e-02 32.2312 < 2.2e-16 ***
## sales -2.6012e-03 5.0729e-04 -5.1276 3.184e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 14168000
## Residual Sum of Squares: 5443200
## R-Squared: 0.6158
## Adj. R-Squared: 0.61495
## F-statistic: 722.561 on 5 and 2254 DF, p-value: < 2.22e-16
Modelo 2. Efectos fijos (within)
modelo1.2 <- plm(patentsg ~ rndstck + rnd
+ employ_2 +sales , data = PATENT_3, model = "within")
summary(modelo1.2)
## Oneway (individual) effect Within Model
##
## Call:
## plm(formula = patentsg ~ rndstck + rnd + employ_2 + sales, data = PATENT_3,
## model = "within")
##
## Balanced Panel: n = 226, T = 10, N = 2260
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -220.27281 -1.90765 -0.30664 1.53627 267.96353
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## rndstck -0.01770063 0.00551595 -3.2090 0.001353 **
## rnd -0.04595159 0.03285921 -1.3984 0.162134
## employ_2 -0.15535677 0.06766362 -2.2960 0.021776 *
## sales -0.00162114 0.00035107 -4.6177 4.122e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 715640
## Residual Sum of Squares: 587400
## R-Squared: 0.1792
## Adj. R-Squared: 0.086603
## F-statistic: 110.796 on 4 and 2030 DF, p-value: < 2.22e-16
Prueba pF
pFtest(modelo1.2,modelo1)
##
## F test for individual effects
##
## data: patentsg ~ rndstck + rnd + employ_2 + sales
## F = 74.917, df1 = 224, df2 = 2030, p-value < 2.2e-16
## alternative hypothesis: significant effects
En este caso, existen diferencias claras entre ambos modelos, por lo cual el modelo pooled es el elegido, ya que tiene una R cuadrada ajustada con un resultado de 0.61495.
Modelo 3. Efectos aleatorios (random) - Metodo walhus
modelo1.3 <- plm(patentsg ~ rndstck
+ employ_2 +sales + return ,
data = PATENT_3,
model = "random",
random.method = "walhus")
summary(modelo1.3)
## Oneway (individual) effect Random Effect Model
## (Wallace-Hussain's transformation)
##
## Call:
## plm(formula = patentsg ~ rndstck + employ_2 + sales + return,
## data = PATENT_3, model = "random", random.method = "walhus")
##
## Balanced Panel: n = 226, T = 10, N = 2260
##
## Effects:
## var std.dev share
## idiosyncratic 423.37 20.58 0.154
## individual 2320.27 48.17 0.846
## theta: 0.8661
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -148.13707 -3.98856 -2.63183 -0.17916 318.04608
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 18.58788974 3.21731070 5.7775 7.584e-09 ***
## rndstck -0.01488748 0.00215097 -6.9213 4.476e-12 ***
## employ_2 0.74580257 0.04840702 15.4069 < 2.2e-16 ***
## sales -0.00294027 0.00036646 -8.0235 1.028e-15 ***
## return 0.06071222 0.09873950 0.6149 0.5386
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 956700
## Residual Sum of Squares: 825730
## R-Squared: 0.13689
## Adj. R-Squared: 0.13536
## Chisq: 357.645 on 4 DF, p-value: < 2.22e-16
Modelo 3.2 Efectos aleatorios (random) - Metodo ameniya
modelo1.4 <- plm(patentsg ~ rnd + sales + employ_2 + stckpr ,
data = PATENT_3,
model = "random",
random.method = "amemiya")
summary(modelo1.4)
## Oneway (individual) effect Random Effect Model
## (Amemiya's transformation)
##
## Call:
## plm(formula = patentsg ~ rnd + sales + employ_2 + stckpr, data = PATENT_3,
## model = "random", random.method = "amemiya")
##
## Balanced Panel: n = 226, T = 10, N = 2260
##
## Effects:
## var std.dev share
## idiosyncratic 289.82 17.02 0.031
## individual 8911.30 94.40 0.969
## theta: 0.9431
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -175.65467 -3.13535 -1.68380 0.52293 287.54690
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 26.86830728 6.36545620 4.2210 2.433e-05 ***
## rnd -0.12634831 0.01203625 -10.4973 < 2.2e-16 ***
## sales -0.00187386 0.00034705 -5.3994 6.688e-08 ***
## employ_2 0.23128502 0.05536722 4.1773 2.950e-05 ***
## stckpr 0.08543410 0.02615904 3.2659 0.001091 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 759240
## Residual Sum of Squares: 646060
## R-Squared: 0.14907
## Adj. R-Squared: 0.14756
## Chisq: 395.046 on 4 DF, p-value: < 2.22e-16
Modelo 3.3
modelo1.5 <- plm(patentsg ~ rndstck
+ employ_2 +sales + return ,
data = PATENT_3,
model = "random",
random.method = "nerlove")
summary(modelo1.5)
## Oneway (individual) effect Random Effect Model
## (Nerlove's transformation)
##
## Call:
## plm(formula = patentsg ~ rndstck + employ_2 + sales + return,
## data = PATENT_3, model = "random", random.method = "nerlove")
##
## Balanced Panel: n = 226, T = 10, N = 2260
##
## Effects:
## var std.dev share
## idiosyncratic 260.16 16.13 0.025
## individual 10206.88 101.03 0.975
## theta: 0.9496
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -179.12092 -3.01478 -1.79495 0.32332 289.26828
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 31.97458162 7.13256678 4.4829 7.364e-06 ***
## rndstck -0.02218211 0.00196376 -11.2957 < 2.2e-16 ***
## employ_2 0.05723143 0.05598187 1.0223 0.3066
## sales -0.00207946 0.00033252 -6.2536 4.010e-10 ***
## return 0.00327146 0.08753231 0.0374 0.9702
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 749840
## Residual Sum of Squares: 639690
## R-Squared: 0.14689
## Adj. R-Squared: 0.14537
## Chisq: 388.264 on 4 DF, p-value: < 2.22e-16
Prueba de Hausman
phtest(modelo1.4,modelo1)
##
## Hausman Test
##
## data: patentsg ~ rnd + sales + employ_2 + stckpr
## chisq = 762.49, df = 4, p-value < 2.2e-16
## alternative hypothesis: one model is inconsistent
En este caso, el Modelo 1 del tipo fijo pooled cuenta con un coeficiente de r cuadrada ajustada de 0.61495. mientras que el Modelo 1.4 del tipo aleatorio amemiya tiene un valor de 0.14756 Cabe recalcar que se probo el modelo con distintas variables y en ambos fue el resultado más alto. Como se puede observar existe una gran diferencia entre la variabilidad explicada por el modelo del tipo fijo pooled y el aleatorio amemiya, por lo cual el modelo tipo pooled en este caso es el modelo elegido.
4.- Interpreta los resultados y comenta que tan buenos serían los pronósticos generados con el modelo propuesto:
Test de la presencia o ausencia de heterocedasticidad en el Modelo 1
Hipótesis Nula (H0): Presencia de homocedasticidad Hipótesis Alternativa (H1):Presencia de heterocedasticidad
library(lmtest)
bptest(modelo1)
##
## studentized Breusch-Pagan test
##
## data: modelo1
## BP = 1329.1, df = 5, p-value < 2.2e-16
El valor de p-value es menor a 0.01, por lo cual se rechaza la hipótesis nula de la presencia de homocedasticidad e indica que existe una presencia de heterocedasticidad en el modelo. Esto señala que la varianza de los errores no es constante.
Se investigo más a fondo la presencia de heteroscedasticidad en el modelo y según economipedia
“Las situaciones principales en las que aparecen perturbaciones heterocedásticas son los análisis con datos de corte transversal donde los elementos seleccionados, ya sean empresas, individuos o elementos económicos no tienen un comportamiento homogéneo entre ellos.”
En el caso del análisis de las patentes otorgadas, incluso al tener una base de datos del tipo panel, no existe un comportamiento homogéneo entre las empresas. Esta puede ser una razón por la cual se cuenta con heterocedasticidad dentro del modelo.La heterocedasticidad puede llegar a distorsionar la interpretación de la significancia estadística de los coeficientes, así como sesgar los errores y los intervalos de confianza.
Se decidió interpretar el modelo a pesar de contar con la presencia de heteroscedasdticidad con fines de completar la actividad.
summary(modelo1)
## Pooling Model
##
## Call:
## plm(formula = patentsg ~ rnd + rndstck + stckpr + employ_2 +
## sales, data = PATENT_3, model = "pooling")
##
## Balanced Panel: n = 226, T = 10, N = 2260
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -344.2625 -10.6528 1.4581 7.9749 541.0940
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## (Intercept) -1.0841e+01 1.4279e+00 -7.5926 4.564e-14 ***
## rnd -5.5142e-01 6.6201e-02 -8.3294 < 2.2e-16 ***
## rndstck 8.3943e-02 1.2190e-02 6.8859 7.418e-12 ***
## stckpr 7.6304e-01 4.4616e-02 17.1024 < 2.2e-16 ***
## employ_2 1.4543e+00 4.5120e-02 32.2312 < 2.2e-16 ***
## sales -2.6012e-03 5.0729e-04 -5.1276 3.184e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 14168000
## Residual Sum of Squares: 5443200
## R-Squared: 0.6158
## Adj. R-Squared: 0.61495
## F-statistic: 722.561 on 5 and 2254 DF, p-value: < 2.22e-16
En el modelo elegido las 5 variables rnd,rndstck,stckpr,employ_2 y sales son estadisticamente significativas con un 99% se confianza lo que indica que tienen un impacto significativo en la cantidad de patentes otorgadas.