Licença

This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.

License: CC BY-SA 4.0

Citação

Sugestão de citação: FIGUEIREDO, Adriano Marcos Rodrigues. Econometria: exercicio_soja_apostila. Campo Grande-MS,Brasil: RStudio/Rpubs, 2020. Disponível em http://rpubs.com/amrofi/exercicio_soja_apostila.

1 Exercício

Sabendo que a variável dependente Qsoja é a quantidade produzida de soja, a variável FERTILIZANTE é a quantidade utilizada de fertilizantes, a variável TRATOR é o número de horas-máquina utilizadas, e MO é a quantidade de mão-de-obra em número de pessoas.

Pede-se:

  1. Quais os parâmetros significativos a 10% de significância? Explique e mostre seus valores.
  2. Sabendo que o desejável numa função de produção é que o aumento no uso de insumos leve a uma produção maior, o resultado é coerente com a teoria econômica? Justifique sua resposta.
  3. Qual a hipótese nula no teste de significância global do modelo? Qual a probabilidade de erro desse teste para essa regressão?

1.1 Chamando os dados de soja.

library(readxl)
# library(foreign)
dados <- read_excel("soja_apostila.xlsx", 
                    sheet = "dados")
# QSOJA = quantidade produzida de soja; 
# FERTILIZANTE = quantidade utilizada de fertilizantes, 
# TRATOR = número de horas-máquina utilizadas, e 
# MO = quantidade de mão-de-obra em número de pessoas 

1.2 Exibindo os dados

library(knitr)
kable(dados)
OBS QSOJA FERTILIZANTE TRATOR MO
1 436.6313 19.027154 3.171218 0.0680761
2 373.6483 17.896131 2.913073 0.0680761
3 394.4222 16.781633 2.796939 0.0680761
4 343.5695 13.490744 2.893457 0.0680761
5 303.7661 9.879220 3.098844 0.0715237
6 301.1642 9.475786 3.553420 0.0833560
7 288.9482 11.364279 3.977498 0.0985723
8 330.6534 15.127935 4.862550 0.1114103
9 312.7905 15.332867 5.270673 0.1144871
10 326.3374 12.851502 5.291795 0.1026860
11 393.9242 11.513764 4.386196 0.1213057
12 472.0955 12.855099 3.615497 0.1231947
13 506.5198 13.013046 3.180967 0.1133822
14 351.6223 13.455148 3.312036 0.0988436
15 381.6837 14.347826 3.586956 0.0807663
16 383.1624 13.446183 3.361546 0.0622686
17 411.0399 12.850584 2.793605 0.0838004
18 393.7213 11.878680 3.254433 0.0765244
19 434.5707 8.974284 2.692285 0.0574878
20 433.6160 11.285367 2.901951 0.0653656
21 397.5211 10.345953 2.955986 0.0725099
22 392.6673 10.167811 2.982558 0.0780549
23 388.1611 12.599515 3.239875 0.0806569
24 370.9625 18.063596 3.187693 0.0816669
25 392.9900 22.590552 3.804724 0.0822772
26 364.6083 27.078998 4.166000 0.0801052
27 346.4324 25.893400 4.256449 0.0750436
28 418.2499 24.670302 3.654860 0.0703104
29 406.4036 22.348288 3.428431 0.0796031
30 335.5657 23.066102 3.564761 0.0830485
31 372.3893 23.462026 4.105855 0.0935842
32 355.1380 23.374281 4.233765 0.1009140
33 350.3687 23.629311 4.219520 0.1086695
34 333.2291 21.508565 4.455346 0.1116064
35 331.4042 20.424435 4.221050 0.1188290
36 350.2156 18.864038 3.772808 0.1201338
37 347.9309 18.264942 4.058876 0.1182342
38 429.3538 16.125845 4.353978 0.1057403
39 312.6486 15.387261 3.718588 0.0934575
40 320.1290 15.747562 3.919400 0.0841935
41 367.6004 14.898356 3.862531 0.0798233
42 370.5812 18.571374 3.448969 0.0747408
43 318.2939 19.782503 3.406987 0.0708495
44 360.7165 19.933442 3.105908 0.0672991
45 344.1279 20.821774 3.407199 0.0611104
46 348.4604 20.266470 3.897398 0.0553948
47 339.9099 18.703933 3.587056 0.0660367
48 355.1158 16.939705 3.061392 0.0689438
49 333.9912 15.222441 2.563779 0.0669589
50 324.3522 15.390061 3.270388 0.0638619
51 326.3627 15.486698 3.613563 0.0596771
52 337.5229 14.188837 2.921231 0.0549264
53 326.4391 17.505796 3.728086 0.0734138
54 315.8837 18.449976 4.099995 0.0823331
55 309.3893 18.044338 4.009853 0.0834334
56 309.9922 18.765397 3.127566 0.0799067
57 294.8586 17.733992 3.665025 0.0716247
58 319.1269 14.470821 3.617705 0.0633701
59 321.0751 19.190613 2.741516 0.0934971
60 324.6171 23.610757 3.079664 0.1040755
61 326.4982 22.480939 2.248094 0.1008333
62 323.0241 19.962350 2.218039 0.0930098
63 306.6080 24.292193 3.238959 0.0813417
64 316.6854 23.777410 3.269394 0.0695737
65 306.6323 20.902855 2.717371 0.2104958
66 347.0512 17.613532 3.522706 0.2612609
67 281.0183 18.242280 2.634996 0.2587254
68 306.4382 18.496391 2.845599 0.2365993
69 310.1581 20.188705 3.028306 0.2068718
70 308.5547 17.216457 2.754633 0.1677468
71 317.9888 18.222855 3.796428 0.1263279
72 309.3025 17.634120 3.673775 0.1143292
73 301.9073 17.365134 4.341284 0.1047887
74 293.6960 21.165753 4.233151 0.0945763
75 286.2460 20.654657 5.507909 0.0848737
76 284.7420 20.538225 5.476860 0.0770183
77 281.5418 20.262582 5.403355 0.0741085
78 276.0765 20.031671 6.677224 0.0714092
79 225.2501 19.674789 6.558263 0.0683152
80 221.5791 19.232075 6.410692 0.0649973
81 222.8190 19.155695 6.385232 0.0629655
82 210.4651 18.665975 6.221992 0.0596274
83 204.5797 18.257353 6.085784 0.0578150
84 210.2081 18.025047 6.008349 0.0565786
85 214.6191 18.222036 6.074012 0.0566908
86 249.6837 18.180855 6.060285 0.0560576
87 234.0570 17.942735 5.980912 0.0548250
88 237.7827 17.893649 5.964550 0.0541780
89 247.7836 17.578291 5.859430 0.0539450
90 243.3269 17.445292 5.815097 0.0542532
91 250.5178 17.407543 5.802515 0.0548507
92 245.4773 17.287133 5.762378 0.0551812
93 242.5476 17.001003 5.667001 0.0549660
94 235.1395 16.795680 5.598560 0.0549919
95 246.0776 16.614144 5.538048 0.0547198
96 300.6604 16.613518 5.537839 0.0550400
97 311.5473 16.592259 5.530753 0.0552914
98 311.5925 22.074493 5.518623 0.0554913
99 311.6615 22.012328 5.503082 0.0556553
100 313.5211 21.820787 5.455197 0.0554884
101 324.6232 21.481866 5.370467 0.0541104
102 325.2196 21.391804 5.347951 0.0533696
103 316.0520 21.145550 5.286388 0.0522471
104 315.2351 21.021980 5.255495 0.0514367
105 313.0394 20.958717 5.239679 0.0507783
106 311.2563 20.813557 5.203389 0.0499265
107 314.7598 22.874988 5.198861 0.0499026
108 319.8599 22.885027 5.201142 0.0499440
109 315.8649 22.750874 5.170653 0.0496706
110 313.0671 22.673329 5.153029 0.0495206
111 305.2353 22.486607 5.110593 0.0491320
112 299.9114 22.332207 5.075502 0.0488136
113 292.8193 22.137539 6.037511 0.0483839
114 288.3748 22.133144 6.036312 0.0483701
115 282.5741 22.081594 6.022253 0.0482533
116 280.0402 22.111346 6.030367 0.0483141
117 272.0936 22.061101 6.016664 0.0482002
attach(dados)

1.3 RESET de Ramsey

1.3.1 Execucao manual do RESET de Ramsey para especificação

# PASSO 1: estimar o modelo

regressao1<-lm(QSOJA~FERTILIZANTE+TRATOR+MO)
summary(regressao1)
## 
## Call:
## lm(formula = QSOJA ~ FERTILIZANTE + TRATOR + MO)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -66.714 -33.171   1.768  24.894 149.637 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   494.9657    25.5723  19.356  < 2e-16 ***
## FERTILIZANTE   -0.5535     1.0589  -0.523   0.6022    
## TRATOR        -33.6899     3.7410  -9.006 6.09e-15 ***
## MO           -209.1407   107.8926  -1.938   0.0551 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 41.51 on 113 degrees of freedom
## Multiple R-squared:  0.4651, Adjusted R-squared:  0.4509 
## F-statistic: 32.75 on 3 and 113 DF,  p-value: 2.608e-15
library(stargazer)
## 
## Please cite as:
##  Hlavac, Marek (2018). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.2. https://CRAN.R-project.org/package=stargazer
stargazer(list(regressao1),type="text",style="all" )
## 
## =======================================================
##                             Dependent variable:        
##                     -----------------------------------
##                                    QSOJA               
## -------------------------------------------------------
## FERTILIZANTE                      -0.554               
##                                   (1.059)              
##                                 t = -0.523             
##                                  p = 0.603             
## TRATOR                          -33.690***             
##                                   (3.741)              
##                                 t = -9.006             
##                                  p = 0.000             
## MO                               -209.141*             
##                                  (107.893)             
##                                 t = -1.938             
##                                  p = 0.056             
## Constant                        494.966***             
##                                  (25.572)              
##                                 t = 19.356             
##                                  p = 0.000             
## -------------------------------------------------------
## Observations                        117                
## R2                                 0.465               
## Adjusted R2                        0.451               
## Residual Std. Error          41.506 (df = 113)         
## F Statistic         32.753*** (df = 3; 113) (p = 0.000)
## =======================================================
## Note:                       *p<0.1; **p<0.05; ***p<0.01
#PASSO 2: obtencao dos valores ajustados 
# utilizaremos o recurso I(fitted(regressao1)) para gerar automaticamente e já estimar a regressão de teste

#PASSO 3: colocar valores ajustados ao quadrado e ao cubo e a quarta potencias
#PASSO 4: estimar regressão de teste

reg_RESET_3<-lm(QSOJA~FERTILIZANTE+TRATOR+MO+I(fitted(regressao1)^2)+
                  I(fitted(regressao1)^3)+I(fitted(regressao1)^4),data=dados)

reg_RESET<-lm(QSOJA~FERTILIZANTE+TRATOR+MO+
                I(fitted(regressao1)^2)+I(fitted(regressao1)^3),data=dados)
results<-stargazer(list(regressao1,reg_RESET_3),type="text",style="all" )
## 
## ==============================================================================================
##                                                  Dependent variable:                          
##                        -----------------------------------------------------------------------
##                                                         QSOJA                                 
##                                        (1)                                 (2)                
## ----------------------------------------------------------------------------------------------
## FERTILIZANTE                         -0.554                             304.130**             
##                                      (1.059)                            (135.047)             
##                                    t = -0.523                           t = 2.252             
##                                     p = 0.603                           p = 0.027             
## TRATOR                             -33.690***                         18,591.290**            
##                                      (3.741)                           (8,231.767)            
##                                    t = -9.006                           t = 2.258             
##                                     p = 0.000                           p = 0.026             
## MO                                  -209.141*                         115,237.700**           
##                                     (107.893)                         (51,069.360)            
##                                    t = -1.938                           t = 2.256             
##                                     p = 0.056                           p = 0.027             
## I(fitted(regressao1)2)                                                   2.665**              
##                                                                          (1.165)              
##                                                                         t = 2.287             
##                                                                         p = 0.025             
## I(fitted(regressao1)3)                                                  -0.006**              
##                                                                          (0.002)              
##                                                                        t = -2.300             
##                                                                         p = 0.024             
## I(fitted(regressao1)4)                                                  0.00000**             
##                                                                         (0.00000)             
##                                                                         t = 2.303             
##                                                                         p = 0.024             
## Constant                           494.966***                        -230,604.700**           
##                                     (25.572)                          (101,861.300)           
##                                    t = 19.356                          t = -2.264             
##                                     p = 0.000                           p = 0.026             
## ----------------------------------------------------------------------------------------------
## Observations                           117                                 117                
## R2                                    0.465                               0.532               
## Adjusted R2                           0.451                               0.507               
## Residual Std. Error             41.506 (df = 113)                   39.331 (df = 110)         
## F Statistic            32.753*** (df = 3; 113) (p = 0.000) 20.879*** (df = 6; 110) (p = 0.000)
## ==============================================================================================
## Note:                                                              *p<0.1; **p<0.05; ***p<0.01
#PASSOS 4 A 6: calcular estatisticas de teste
# RESET: H0: o modelo esta bem especificado, ou H0: COEFICIENTES incluindo "fitted" sao nulos
library(car)
## Loading required package: carData
# RESETH0<-c("I(fitted(regressao1)^2)","I(fitted(regressao1)^3)",
#         "I(fitted(regressao1)^4)")
RESETH0<-c("I(fitted(regressao1)^2)","I(fitted(regressao1)^3)")
Tabela_RESET<-linearHypothesis(reg_RESET,RESETH0)
# outra alternativa é usar a linha abaixo com o matchCoefs
#Tabela_RESET<-linearHypothesis(reg_RESET, matchCoefs(reg_RESET,"fitted"))
Tabela_RESET

1.3.2 RESET pelo comando resettest da library(lmtest)

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
TesteRESET<-resettest(regressao1, power = 2:3) # default é power = 2:3
TesteRESET
## 
##  RESET test
## 
## data:  regressao1
## RESET = 5.0746, df1 = 2, df2 = 111, p-value = 0.007783
#alterando as potencias
TesteRESET.power<-resettest(regressao1, power = 2:4)
TesteRESET.power
## 
##  RESET test
## 
## data:  regressao1
## RESET = 5.2816, df1 = 3, df2 = 110, p-value = 0.001932

1.3.3 fazendo os criterios de informacao de Akaike e Schwarz

regressao1$AIC <- AIC(regressao1)
regressao1$BIC <- BIC(regressao1)


#mostrando os valores de AIC e SIC
library(stargazer)
star.1 <- stargazer(regressao1,
                    title="Título: Resultado da Regressão",
                    align=TRUE,
                    type = "text", style = "all",
                    keep.stat=c("aic","bic","rsq", "adj.rsq","n")
)
## 
## Título: Resultado da Regressão
## ===============================================
##                         Dependent variable:    
##                     ---------------------------
##                                QSOJA           
## -----------------------------------------------
## FERTILIZANTE                  -0.554           
##                               (1.059)          
##                             t = -0.523         
##                              p = 0.603         
## TRATOR                      -33.690***         
##                               (3.741)          
##                             t = -9.006         
##                              p = 0.000         
## MO                           -209.141*         
##                              (107.893)         
##                             t = -1.938         
##                              p = 0.056         
## Constant                    494.966***         
##                              (25.572)          
##                             t = 19.356         
##                              p = 0.000         
## -----------------------------------------------
## Observations                    117            
## R2                             0.465           
## Adjusted R2                    0.451           
## Akaike Inf. Crit.            1,209.807         
## Bayesian Inf. Crit.          1,223.617         
## ===============================================
## Note:               *p<0.1; **p<0.05; ***p<0.01

1.3.4 Regressão log-log

reg.loglog<-lm(log(QSOJA)~log(FERTILIZANTE)+log(TRATOR)+log(MO))
reg.loglog$AIC <- AIC(reg.loglog)
reg.loglog$BIC <- BIC(reg.loglog)
summary(reg.loglog)
## 
## Call:
## lm(formula = log(QSOJA) ~ log(FERTILIZANTE) + log(TRATOR) + log(MO))
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.28745 -0.11478  0.01292  0.09072  0.35834 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        6.36829    0.17474  36.445  < 2e-16 ***
## log(FERTILIZANTE) -0.03156    0.05807  -0.543    0.588    
## log(TRATOR)       -0.41543    0.05420  -7.664 6.74e-12 ***
## log(MO)           -0.02877    0.03960  -0.727    0.469    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1351 on 113 degrees of freedom
## Multiple R-squared:  0.4275, Adjusted R-squared:  0.4123 
## F-statistic: 28.13 on 3 and 113 DF,  p-value: 1.162e-13
library(stargazer)
stargazer(regressao1,reg.loglog,
          type="text",style="all",
          keep.stat=c("aic","bic","rsq", "adj.rsq","n"))
## 
## ================================================
##                         Dependent variable:     
##                     ----------------------------
##                         QSOJA       log(QSOJA)  
##                          (1)            (2)     
## ------------------------------------------------
## FERTILIZANTE            -0.554                  
##                        (1.059)                  
##                       t = -0.523                
##                       p = 0.603                 
## TRATOR                -33.690***                
##                        (3.741)                  
##                       t = -9.006                
##                       p = 0.000                 
## MO                    -209.141*                 
##                       (107.893)                 
##                       t = -1.938                
##                       p = 0.056                 
## log(FERTILIZANTE)                     -0.032    
##                                       (0.058)   
##                                     t = -0.543  
##                                      p = 0.588  
## log(TRATOR)                          -0.415***  
##                                       (0.054)   
##                                     t = -7.664  
##                                      p = 0.000  
## log(MO)                               -0.029    
##                                       (0.040)   
##                                     t = -0.727  
##                                      p = 0.470  
## Constant              494.966***     6.368***   
##                        (25.572)       (0.175)   
##                       t = 19.356    t = 36.445  
##                       p = 0.000      p = 0.000  
## ------------------------------------------------
## Observations             117            117     
## R2                      0.465          0.428    
## Adjusted R2             0.451          0.412    
## Akaike Inf. Crit.     1,209.807      -130.503   
## Bayesian Inf. Crit.   1,223.617      -116.692   
## ================================================
## Note:                *p<0.1; **p<0.05; ***p<0.01

1.3.5 Será que tenho outliers?

outlierTest(reg.loglog)
## No Studentized residuals with Bonferroni p < 0.05
## Largest |rstudent|:
##    rstudent unadjusted p-value Bonferroni p
## 13 2.777133          0.0064307      0.75239
outlierTest(regressao1)
##    rstudent unadjusted p-value Bonferroni p
## 13 3.882668         0.00017511     0.020487

1.3.6 Testes de Heterocedasticidade

1.3.6.1 Teste de Breusch-Pagan - bptest simples

library(AER)
## Loading required package: sandwich
## Loading required package: survival
bp.het<-bptest(regressao1, studentize = TRUE)
bp.het
## 
##  studentized Breusch-Pagan test
## 
## data:  regressao1
## BP = 10.087, df = 3, p-value = 0.01784

1.3.6.2 Teste de White sem termos cruzados

# regressao1<-lm(QSOJA~FERTILIZANTE+TRATOR+MO)
m <- regressao1
data <- dados
#rotina do teste com base em m e data
u2 <- m$residuals^2
#sem termos cruzados, no cross-terms
reg.auxiliar <- lm(u2 ~ FERTILIZANTE+TRATOR+MO+
                     I(FERTILIZANTE^2)+I(TRATOR^2)+I(MO^2))  
summary(reg.auxiliar)
## 
## Call:
## lm(formula = u2 ~ FERTILIZANTE + TRATOR + MO + I(FERTILIZANTE^2) + 
##     I(TRATOR^2) + I(MO^2))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3451.5 -1319.0  -345.4   365.3 18550.3 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)  
## (Intercept)          9516.00    6550.45   1.453   0.1491  
## FERTILIZANTE         -810.45     551.79  -1.469   0.1448  
## TRATOR              -2061.75    2106.30  -0.979   0.3298  
## MO                  76907.49   29850.12   2.576   0.0113 *
## I(FERTILIZANTE^2)      18.85      15.37   1.226   0.2227  
## I(TRATOR^2)           245.72     236.74   1.038   0.3016  
## I(MO^2)           -230942.82  103719.00  -2.227   0.0280 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2805 on 110 degrees of freedom
## Multiple R-squared:  0.1389, Adjusted R-squared:  0.09188 
## F-statistic: 2.956 on 6 and 110 DF,  p-value: 0.0103
Ru2<- summary(reg.auxiliar)$r.squared
LM <- nrow(data)*Ru2
#obtendo o numero de regressores menos o intercepto
k <- length(coefficients(reg.auxiliar))-1
k
## [1] 6
p.value <- 1-pchisq(LM, k) # O TESTE TEM k TERMOS REGRESSORES EM reg.auxiliar
#c("LM","p.value")
c(LM, p.value)
## [1] 16.24547461  0.01249533

Agora com o bptest para reproduzir White. Pelo pacote lmtest, o bptest dará o mesmo resultado, desde que especifique a mesma regressão auxiliar usada no White acima.

bptest(regressao1,
       ~ FERTILIZANTE+TRATOR+MO+
         I(FERTILIZANTE^2)+I(TRATOR^2)+I(MO^2))
## 
##  studentized Breusch-Pagan test
## 
## data:  regressao1
## BP = 16.245, df = 6, p-value = 0.0125

1.3.6.3 White com termos cruzados - com cross-terms

reg.auxiliar <- lm(u2 ~ FERTILIZANTE+I(FERTILIZANTE*FERTILIZANTE)+
                     I(FERTILIZANTE*TRATOR)+I(FERTILIZANTE*MO)+
                     TRATOR+I(TRATOR*TRATOR)+I(TRATOR*MO)+
                     MO+I(MO*MO))
summary(reg.auxiliar)
## 
## Call:
## lm(formula = u2 ~ FERTILIZANTE + I(FERTILIZANTE * FERTILIZANTE) + 
##     I(FERTILIZANTE * TRATOR) + I(FERTILIZANTE * MO) + TRATOR + 
##     I(TRATOR * TRATOR) + I(TRATOR * MO) + MO + I(MO * MO))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4733.0 -1149.1  -261.6   588.4 15712.6 
## 
## Coefficients:
##                                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                     -20557.49    9888.59  -2.079  0.04002 *  
## FERTILIZANTE                       445.35     600.72   0.741  0.46010    
## I(FERTILIZANTE * FERTILIZANTE)      25.27      15.81   1.599  0.11283    
## I(FERTILIZANTE * TRATOR)          -120.17      87.70  -1.370  0.17349    
## I(FERTILIZANTE * MO)            -13077.63    3137.31  -4.168 6.24e-05 ***
## TRATOR                             864.94    3116.37   0.278  0.78190    
## I(TRATOR * TRATOR)                 309.35     253.61   1.220  0.22522    
## I(TRATOR * MO)                  -22449.97   12081.31  -1.858  0.06588 .  
## MO                              426443.96   90390.39   4.718 7.24e-06 ***
## I(MO * MO)                     -365960.48  130236.21  -2.810  0.00589 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2600 on 107 degrees of freedom
## Multiple R-squared:  0.2806, Adjusted R-squared:  0.2201 
## F-statistic: 4.638 on 9 and 107 DF,  p-value: 3.426e-05
Ru2<- summary(reg.auxiliar)$r.squared
LM <- nrow(data)*Ru2
#obtendo o numero de regressores menos o intercepto
k <- length(coefficients(reg.auxiliar))-1
k
## [1] 9
p.value <- 1-pchisq(LM, k) # O TESTE TEM k TERMOS REGRESSORES EM reg.auxiliar
c(LM, p.value)
## [1] 3.283525e+01 1.426649e-04

Novamente, pelo bptest:

library(lmtest)
# reg.auxiliar <- lm(u2 ~ FERTILIZANTE+I(FERTILIZANTE*FERTILIZANTE)+
#                     I(FERTILIZANTE*TRATOR)+I(FERTILIZANTE*MO)+
#                     TRATOR+I(TRATOR*TRATOR)+I(TRATOR*MO)+
#                     MO+I(MO*MO))
bptest(regressao1,
       ~ FERTILIZANTE+I(FERTILIZANTE*FERTILIZANTE)+
         I(FERTILIZANTE*TRATOR)+I(FERTILIZANTE*MO)+
         TRATOR+I(TRATOR*TRATOR)+I(TRATOR*MO)+
         MO+I(MO*MO))
## 
##  studentized Breusch-Pagan test
## 
## data:  regressao1
## BP = 32.835, df = 9, p-value = 0.0001427

1.3.6.4 Correção de Var-cov conforme White (hc1)

#regressao1<-lm(QSOJA~FERTILIZANTE+TRATOR+MO)
#library(car) 
#possibilidades: hccm(regressao1,type=c("hc0","hc1","hc2","hc3","hc4"))
vcov.white0<-hccm(regressao1,type=c("hc1"))
#
coeftest(regressao1,vcov.white0)
## 
## t test of coefficients:
## 
##                Estimate Std. Error t value  Pr(>|t|)    
## (Intercept)   494.96573   26.46010 18.7061 < 2.2e-16 ***
## FERTILIZANTE   -0.55354    1.27243 -0.4350   0.66437    
## TRATOR        -33.68994    3.79488 -8.8777 1.198e-14 ***
## MO           -209.14074  115.17696 -1.8158   0.07205 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

2 Usando o estimatr

library(estimatr)
library(car)

# Erros padrões robustos HC1 - padrão do Stata
model <- lm_robust(QSOJA~FERTILIZANTE+TRATOR+MO, 
                   data = dados,
                   se_type = "stata")
summary(model)
## 
## Call:
## lm_robust(formula = QSOJA ~ FERTILIZANTE + TRATOR + MO, data = dados, 
##     se_type = "stata")
## 
## Standard error type:  HC1 
## 
## Coefficients:
##               Estimate Std. Error t value  Pr(>|t|) CI Lower CI Upper  DF
## (Intercept)   494.9657     26.460  18.706 2.147e-36  442.543  547.388 113
## FERTILIZANTE   -0.5535      1.272  -0.435 6.644e-01   -3.074    1.967 113
## TRATOR        -33.6899      3.795  -8.878 1.198e-14  -41.208  -26.172 113
## MO           -209.1407    115.177  -1.816 7.205e-02 -437.327   19.046 113
## 
## Multiple R-squared:  0.4651 ,    Adjusted R-squared:  0.4509 
## F-statistic: 33.94 on 3 and 113 DF,  p-value: 1.021e-15
stargazer(regressao1,
          se = starprep(regressao1,se_type = "HC1"),
          p = starprep(regressao1,se_type = "HC1", stat = "p.value"),
          type="text",style="all",
          omit.stat = "f")
## 
## ===============================================
##                         Dependent variable:    
##                     ---------------------------
##                                QSOJA           
## -----------------------------------------------
## FERTILIZANTE                  -0.554           
##                               (1.272)          
##                             t = -0.435         
##                              p = 0.665         
## TRATOR                      -33.690***         
##                               (3.795)          
##                             t = -8.878         
##                              p = 0.000         
## MO                           -209.141*         
##                              (115.177)         
##                             t = -1.816         
##                              p = 0.073         
## Constant                    494.966***         
##                              (26.460)          
##                             t = 18.706         
##                              p = 0.000         
## -----------------------------------------------
## Observations                    117            
## R2                             0.465           
## Adjusted R2                    0.451           
## Residual Std. Error      41.506 (df = 113)     
## Akaike Inf. Crit.            1,209.807         
## Bayesian Inf. Crit.          1,223.617         
## ===============================================
## Note:               *p<0.1; **p<0.05; ***p<0.01

2.1 Agora com HC3

# alternativa HC3 - padrão do R
model.hc3 <- lm_robust(QSOJA~FERTILIZANTE+TRATOR+MO, 
                   data = dados,
                   se_type = "HC3")
summary(model.hc3)
## 
## Call:
## lm_robust(formula = QSOJA ~ FERTILIZANTE + TRATOR + MO, data = dados, 
##     se_type = "HC3")
## 
## Standard error type:  HC3 
## 
## Coefficients:
##               Estimate Std. Error t value  Pr(>|t|) CI Lower CI Upper  DF
## (Intercept)   494.9657     27.746 17.8390 1.194e-34  439.995  549.936 113
## FERTILIZANTE   -0.5535      1.308 -0.4233 6.729e-01   -3.144    2.037 113
## TRATOR        -33.6899      3.896 -8.6463 4.069e-14  -41.410  -25.970 113
## MO           -209.1407    129.250 -1.6181 1.084e-01 -465.208   46.927 113
## 
## Multiple R-squared:  0.4651 ,    Adjusted R-squared:  0.4509 
## F-statistic: 32.44 on 3 and 113 DF,  p-value: 3.334e-15

3 Referências

HEISS, Florian. Using R for Introductory Econometrics. 2.ed. Florian Heiss, 2020. Recurso online. Disponível em: http://www.urfie.net/.

WOOLDRIDGE, J.M. Introdução à Econometria: uma abordagem moderna. São Paulo: Pioneira Thomson Learning, 2006.(tradução da segunda edição americana).

LS0tDQp0aXRsZTogIkVjb25vbWV0cmlhOiBleGVyY2ljaW9fc29qYV9hcG9zdGlsYSINCmF1dGhvcjogIkFkcmlhbm8gTWFyY29zIFJvZHJpZ3VlcyBGaWd1ZWlyZWRvLCAqZS1tYWlsOiBhZHJpYW5vLmZpZ3VlaXJlZG9AdWZtcy5icioiDQphYnN0cmFjdDogDQogIFRoaXMgaXMgYW4gdW5kZXJncmFkIHN0dWRlbnQgbGV2ZWwgZXhlcmNpc2UgZm9yIGNsYXNzIHVzZS4gV2UgYW5hbHlzZSBzb3kgZGF0YSwgMTE3IG9ic2VydmF0aW9ucy4gDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclZCAlQiAlWScpYCINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICB0aGVtZTogZGVmYXVsdA0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6IHllcw0KICAgIGRmX3ByaW50OiBwYWdlZA0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgcGRmX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQogIHdvcmRfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCi0tLQ0KDQojIExpY2Vuw6dhIHsjTGljZW7Dp2EgLnVubnVtYmVyZWR9DQoNClRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIFRvIHZpZXcgYSBjb3B5IG9mIHRoaXMgbGljZW5zZSwgdmlzaXQgPGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC8+IG9yIHNlbmQgYSBsZXR0ZXIgdG8gQ3JlYXRpdmUgQ29tbW9ucywgUE8gQm94IDE4NjYsIE1vdW50YWluIFZpZXcsIENBIDk0MDQyLCBVU0EuDQoNCiFbTGljZW5zZTogQ0MgQlktU0EgNC4wXShodHRwczovL21pcnJvcnMuY3JlYXRpdmVjb21tb25zLm9yZy9wcmVzc2tpdC9idXR0b25zLzg4eDMxL3BuZy9ieS1zYS5wbmcpe3dpZHRoPSIyNSUifQ0KDQojIENpdGHDp8OjbyB7I0NpdGHDp8OjbyAudW5udW1iZXJlZH0NCg0KU3VnZXN0w6NvIGRlIGNpdGHDp8OjbzogRklHVUVJUkVETywgQWRyaWFubyBNYXJjb3MgUm9kcmlndWVzLiBFY29ub21ldHJpYTogZXhlcmNpY2lvXF9zb2phXF9hcG9zdGlsYS4gQ2FtcG8gR3JhbmRlLU1TLEJyYXNpbDogUlN0dWRpby9ScHVicywgMjAyMC4gRGlzcG9uw612ZWwgZW0gPGh0dHA6Ly9ycHVicy5jb20vYW1yb2ZpL2V4ZXJjaWNpb19zb2phX2Fwb3N0aWxhPi4NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KIyBFeGVyY8OtY2lvDQoNClNhYmVuZG8gcXVlIGEgdmFyacOhdmVsIGRlcGVuZGVudGUgUXNvamEgw6kgYSBxdWFudGlkYWRlIHByb2R1emlkYSBkZSBzb2phLCBhIHZhcmnDoXZlbCBGRVJUSUxJWkFOVEUgw6kgYSBxdWFudGlkYWRlIHV0aWxpemFkYSBkZSBmZXJ0aWxpemFudGVzLCBhIHZhcmnDoXZlbCBUUkFUT1Igw6kgbyBuw7ptZXJvIGRlIGhvcmFzLW3DoXF1aW5hIHV0aWxpemFkYXMsIGUgTU8gw6kgYSBxdWFudGlkYWRlIGRlIG3Do28tZGUtb2JyYSBlbSBuw7ptZXJvIGRlIHBlc3NvYXMuDQoNClBlZGUtc2U6DQoNCmEuICBRdWFpcyBvcyBwYXLDom1ldHJvcyBzaWduaWZpY2F0aXZvcyBhIDEwJSBkZSBzaWduaWZpY8OibmNpYT8gRXhwbGlxdWUgZSBtb3N0cmUgc2V1cyB2YWxvcmVzLlwNCmIuICBTYWJlbmRvIHF1ZSBvIGRlc2Vqw6F2ZWwgbnVtYSBmdW7Dp8OjbyBkZSBwcm9kdcOnw6NvIMOpIHF1ZSBvIGF1bWVudG8gbm8gdXNvIGRlIGluc3Vtb3MgbGV2ZSBhIHVtYSBwcm9kdcOnw6NvIG1haW9yLCBvIHJlc3VsdGFkbyDDqSBjb2VyZW50ZSBjb20gYSB0ZW9yaWEgZWNvbsO0bWljYT8gSnVzdGlmaXF1ZSBzdWEgcmVzcG9zdGEuXA0KYy4gIFF1YWwgYSBoaXDDs3Rlc2UgbnVsYSBubyB0ZXN0ZSBkZSBzaWduaWZpY8OibmNpYSBnbG9iYWwgZG8gbW9kZWxvPyBRdWFsIGEgcHJvYmFiaWxpZGFkZSBkZSBlcnJvIGRlc3NlIHRlc3RlIHBhcmEgZXNzYSByZWdyZXNzw6NvPw0KDQojIyBDaGFtYW5kbyBvcyBkYWRvcyBkZSBzb2phLg0KDQpgYGB7cn0NCmxpYnJhcnkocmVhZHhsKQ0KIyBsaWJyYXJ5KGZvcmVpZ24pDQpkYWRvcyA8LSByZWFkX2V4Y2VsKCJzb2phX2Fwb3N0aWxhLnhsc3giLCANCiAgICAgICAgICAgICAgICAgICAgc2hlZXQgPSAiZGFkb3MiKQ0KIyBRU09KQSA9IHF1YW50aWRhZGUgcHJvZHV6aWRhIGRlIHNvamE7IA0KIyBGRVJUSUxJWkFOVEUgPSBxdWFudGlkYWRlIHV0aWxpemFkYSBkZSBmZXJ0aWxpemFudGVzLCANCiMgVFJBVE9SID0gbsO6bWVybyBkZSBob3Jhcy1tw6FxdWluYSB1dGlsaXphZGFzLCBlIA0KIyBNTyA9IHF1YW50aWRhZGUgZGUgbcOjby1kZS1vYnJhIGVtIG7Dum1lcm8gZGUgcGVzc29hcyANCmBgYA0KDQojIyBFeGliaW5kbyBvcyBkYWRvcw0KDQpgYGB7cn0NCmxpYnJhcnkoa25pdHIpDQprYWJsZShkYWRvcykNCmF0dGFjaChkYWRvcykNCg0KYGBgDQoNCiMjIFJFU0VUIGRlIFJhbXNleQ0KDQojIyMgRXhlY3VjYW8gbWFudWFsIGRvIFJFU0VUIGRlIFJhbXNleSBwYXJhIGVzcGVjaWZpY2HDp8Ojbw0KDQpgYGB7cn0NCg0KIyBQQVNTTyAxOiBlc3RpbWFyIG8gbW9kZWxvDQoNCnJlZ3Jlc3NhbzE8LWxtKFFTT0pBfkZFUlRJTElaQU5URStUUkFUT1IrTU8pDQpzdW1tYXJ5KHJlZ3Jlc3NhbzEpDQpsaWJyYXJ5KHN0YXJnYXplcikNCnN0YXJnYXplcihsaXN0KHJlZ3Jlc3NhbzEpLHR5cGU9InRleHQiLHN0eWxlPSJhbGwiICkNCg0KI1BBU1NPIDI6IG9idGVuY2FvIGRvcyB2YWxvcmVzIGFqdXN0YWRvcyANCiMgdXRpbGl6YXJlbW9zIG8gcmVjdXJzbyBJKGZpdHRlZChyZWdyZXNzYW8xKSkgcGFyYSBnZXJhciBhdXRvbWF0aWNhbWVudGUgZSBqw6EgZXN0aW1hciBhIHJlZ3Jlc3PDo28gZGUgdGVzdGUNCg0KI1BBU1NPIDM6IGNvbG9jYXIgdmFsb3JlcyBhanVzdGFkb3MgYW8gcXVhZHJhZG8gZSBhbyBjdWJvIGUgYSBxdWFydGEgcG90ZW5jaWFzDQojUEFTU08gNDogZXN0aW1hciByZWdyZXNzw6NvIGRlIHRlc3RlDQoNCnJlZ19SRVNFVF8zPC1sbShRU09KQX5GRVJUSUxJWkFOVEUrVFJBVE9SK01PK0koZml0dGVkKHJlZ3Jlc3NhbzEpXjIpKw0KICAgICAgICAgICAgICAgICAgSShmaXR0ZWQocmVncmVzc2FvMSleMykrSShmaXR0ZWQocmVncmVzc2FvMSleNCksZGF0YT1kYWRvcykNCg0KcmVnX1JFU0VUPC1sbShRU09KQX5GRVJUSUxJWkFOVEUrVFJBVE9SK01PKw0KICAgICAgICAgICAgICAgIEkoZml0dGVkKHJlZ3Jlc3NhbzEpXjIpK0koZml0dGVkKHJlZ3Jlc3NhbzEpXjMpLGRhdGE9ZGFkb3MpDQpyZXN1bHRzPC1zdGFyZ2F6ZXIobGlzdChyZWdyZXNzYW8xLHJlZ19SRVNFVF8zKSx0eXBlPSJ0ZXh0IixzdHlsZT0iYWxsIiApDQoNCiNQQVNTT1MgNCBBIDY6IGNhbGN1bGFyIGVzdGF0aXN0aWNhcyBkZSB0ZXN0ZQ0KIyBSRVNFVDogSDA6IG8gbW9kZWxvIGVzdGEgYmVtIGVzcGVjaWZpY2Fkbywgb3UgSDA6IENPRUZJQ0lFTlRFUyBpbmNsdWluZG8gImZpdHRlZCIgc2FvIG51bG9zDQpsaWJyYXJ5KGNhcikNCiMgUkVTRVRIMDwtYygiSShmaXR0ZWQocmVncmVzc2FvMSleMikiLCJJKGZpdHRlZChyZWdyZXNzYW8xKV4zKSIsDQojICAgICAgICAgIkkoZml0dGVkKHJlZ3Jlc3NhbzEpXjQpIikNClJFU0VUSDA8LWMoIkkoZml0dGVkKHJlZ3Jlc3NhbzEpXjIpIiwiSShmaXR0ZWQocmVncmVzc2FvMSleMykiKQ0KVGFiZWxhX1JFU0VUPC1saW5lYXJIeXBvdGhlc2lzKHJlZ19SRVNFVCxSRVNFVEgwKQ0KIyBvdXRyYSBhbHRlcm5hdGl2YSDDqSB1c2FyIGEgbGluaGEgYWJhaXhvIGNvbSBvIG1hdGNoQ29lZnMNCiNUYWJlbGFfUkVTRVQ8LWxpbmVhckh5cG90aGVzaXMocmVnX1JFU0VULCBtYXRjaENvZWZzKHJlZ19SRVNFVCwiZml0dGVkIikpDQpUYWJlbGFfUkVTRVQNCmBgYA0KDQojIyMgUkVTRVQgcGVsbyBjb21hbmRvIHJlc2V0dGVzdCBkYSBsaWJyYXJ5KGxtdGVzdCkNCg0KYGBge3J9DQpsaWJyYXJ5KGxtdGVzdCkNClRlc3RlUkVTRVQ8LXJlc2V0dGVzdChyZWdyZXNzYW8xLCBwb3dlciA9IDI6MykgIyBkZWZhdWx0IMOpIHBvd2VyID0gMjozDQpUZXN0ZVJFU0VUDQoNCiNhbHRlcmFuZG8gYXMgcG90ZW5jaWFzDQpUZXN0ZVJFU0VULnBvd2VyPC1yZXNldHRlc3QocmVncmVzc2FvMSwgcG93ZXIgPSAyOjQpDQpUZXN0ZVJFU0VULnBvd2VyDQpgYGANCg0KIyMjIGZhemVuZG8gb3MgY3JpdGVyaW9zIGRlIGluZm9ybWFjYW8gZGUgQWthaWtlIGUgU2Nod2Fyeg0KDQpgYGB7cn0NCnJlZ3Jlc3NhbzEkQUlDIDwtIEFJQyhyZWdyZXNzYW8xKQ0KcmVncmVzc2FvMSRCSUMgPC0gQklDKHJlZ3Jlc3NhbzEpDQoNCg0KI21vc3RyYW5kbyBvcyB2YWxvcmVzIGRlIEFJQyBlIFNJQw0KbGlicmFyeShzdGFyZ2F6ZXIpDQpzdGFyLjEgPC0gc3RhcmdhemVyKHJlZ3Jlc3NhbzEsDQogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJUw610dWxvOiBSZXN1bHRhZG8gZGEgUmVncmVzc8OjbyIsDQogICAgICAgICAgICAgICAgICAgIGFsaWduPVRSVUUsDQogICAgICAgICAgICAgICAgICAgIHR5cGUgPSAidGV4dCIsIHN0eWxlID0gImFsbCIsDQogICAgICAgICAgICAgICAgICAgIGtlZXAuc3RhdD1jKCJhaWMiLCJiaWMiLCJyc3EiLCAiYWRqLnJzcSIsIm4iKQ0KKQ0KYGBgDQoNCiMjIyBSZWdyZXNzw6NvIGxvZy1sb2cNCg0KYGBge3J9DQpyZWcubG9nbG9nPC1sbShsb2coUVNPSkEpfmxvZyhGRVJUSUxJWkFOVEUpK2xvZyhUUkFUT1IpK2xvZyhNTykpDQpyZWcubG9nbG9nJEFJQyA8LSBBSUMocmVnLmxvZ2xvZykNCnJlZy5sb2dsb2ckQklDIDwtIEJJQyhyZWcubG9nbG9nKQ0Kc3VtbWFyeShyZWcubG9nbG9nKQ0KbGlicmFyeShzdGFyZ2F6ZXIpDQpzdGFyZ2F6ZXIocmVncmVzc2FvMSxyZWcubG9nbG9nLA0KICAgICAgICAgIHR5cGU9InRleHQiLHN0eWxlPSJhbGwiLA0KICAgICAgICAgIGtlZXAuc3RhdD1jKCJhaWMiLCJiaWMiLCJyc3EiLCAiYWRqLnJzcSIsIm4iKSkNCmBgYA0KDQojIyMgU2Vyw6EgcXVlIHRlbmhvIG91dGxpZXJzPw0KDQpgYGB7cn0NCm91dGxpZXJUZXN0KHJlZy5sb2dsb2cpDQpvdXRsaWVyVGVzdChyZWdyZXNzYW8xKQ0KYGBgDQoNCiMjIyBUZXN0ZXMgZGUgSGV0ZXJvY2VkYXN0aWNpZGFkZQ0KDQojIyMjIFRlc3RlIGRlIEJyZXVzY2gtUGFnYW4gLSBicHRlc3Qgc2ltcGxlcw0KDQpgYGB7cn0NCmxpYnJhcnkoQUVSKQ0KDQpicC5oZXQ8LWJwdGVzdChyZWdyZXNzYW8xLCBzdHVkZW50aXplID0gVFJVRSkNCmJwLmhldA0KYGBgDQoNCiMjIyMgVGVzdGUgZGUgV2hpdGUgc2VtIHRlcm1vcyBjcnV6YWRvcw0KDQpgYGB7cn0NCiMgcmVncmVzc2FvMTwtbG0oUVNPSkF+RkVSVElMSVpBTlRFK1RSQVRPUitNTykNCm0gPC0gcmVncmVzc2FvMQ0KZGF0YSA8LSBkYWRvcw0KI3JvdGluYSBkbyB0ZXN0ZSBjb20gYmFzZSBlbSBtIGUgZGF0YQ0KdTIgPC0gbSRyZXNpZHVhbHNeMg0KI3NlbSB0ZXJtb3MgY3J1emFkb3MsIG5vIGNyb3NzLXRlcm1zDQpyZWcuYXV4aWxpYXIgPC0gbG0odTIgfiBGRVJUSUxJWkFOVEUrVFJBVE9SK01PKw0KICAgICAgICAgICAgICAgICAgICAgSShGRVJUSUxJWkFOVEVeMikrSShUUkFUT1JeMikrSShNT14yKSkgIA0Kc3VtbWFyeShyZWcuYXV4aWxpYXIpDQpSdTI8LSBzdW1tYXJ5KHJlZy5hdXhpbGlhcikkci5zcXVhcmVkDQpMTSA8LSBucm93KGRhdGEpKlJ1Mg0KI29idGVuZG8gbyBudW1lcm8gZGUgcmVncmVzc29yZXMgbWVub3MgbyBpbnRlcmNlcHRvDQprIDwtIGxlbmd0aChjb2VmZmljaWVudHMocmVnLmF1eGlsaWFyKSktMQ0Kaw0KcC52YWx1ZSA8LSAxLXBjaGlzcShMTSwgaykgIyBPIFRFU1RFIFRFTSBrIFRFUk1PUyBSRUdSRVNTT1JFUyBFTSByZWcuYXV4aWxpYXINCiNjKCJMTSIsInAudmFsdWUiKQ0KYyhMTSwgcC52YWx1ZSkNCmBgYA0KDQpBZ29yYSBjb20gbyBgYnB0ZXN0YCBwYXJhIHJlcHJvZHV6aXIgV2hpdGUuIFBlbG8gcGFjb3RlIGxtdGVzdCwgbyBicHRlc3QgZGFyw6EgbyBtZXNtbyByZXN1bHRhZG8sIGRlc2RlIHF1ZSBlc3BlY2lmaXF1ZSBhIG1lc21hIHJlZ3Jlc3PDo28gYXV4aWxpYXIgdXNhZGEgbm8gV2hpdGUgYWNpbWEuDQoNCmBgYHtyfQ0KYnB0ZXN0KHJlZ3Jlc3NhbzEsDQogICAgICAgfiBGRVJUSUxJWkFOVEUrVFJBVE9SK01PKw0KICAgICAgICAgSShGRVJUSUxJWkFOVEVeMikrSShUUkFUT1JeMikrSShNT14yKSkNCmBgYA0KDQojIyMjIFdoaXRlIGNvbSB0ZXJtb3MgY3J1emFkb3MgLSBjb20gY3Jvc3MtdGVybXMNCg0KYGBge3J9DQpyZWcuYXV4aWxpYXIgPC0gbG0odTIgfiBGRVJUSUxJWkFOVEUrSShGRVJUSUxJWkFOVEUqRkVSVElMSVpBTlRFKSsNCiAgICAgICAgICAgICAgICAgICAgIEkoRkVSVElMSVpBTlRFKlRSQVRPUikrSShGRVJUSUxJWkFOVEUqTU8pKw0KICAgICAgICAgICAgICAgICAgICAgVFJBVE9SK0koVFJBVE9SKlRSQVRPUikrSShUUkFUT1IqTU8pKw0KICAgICAgICAgICAgICAgICAgICAgTU8rSShNTypNTykpDQpzdW1tYXJ5KHJlZy5hdXhpbGlhcikNClJ1MjwtIHN1bW1hcnkocmVnLmF1eGlsaWFyKSRyLnNxdWFyZWQNCkxNIDwtIG5yb3coZGF0YSkqUnUyDQojb2J0ZW5kbyBvIG51bWVybyBkZSByZWdyZXNzb3JlcyBtZW5vcyBvIGludGVyY2VwdG8NCmsgPC0gbGVuZ3RoKGNvZWZmaWNpZW50cyhyZWcuYXV4aWxpYXIpKS0xDQprDQpwLnZhbHVlIDwtIDEtcGNoaXNxKExNLCBrKSAjIE8gVEVTVEUgVEVNIGsgVEVSTU9TIFJFR1JFU1NPUkVTIEVNIHJlZy5hdXhpbGlhcg0KYyhMTSwgcC52YWx1ZSkNCmBgYA0KDQpOb3ZhbWVudGUsIHBlbG8gYGJwdGVzdGA6DQoNCmBgYHtyfQ0KbGlicmFyeShsbXRlc3QpDQojIHJlZy5hdXhpbGlhciA8LSBsbSh1MiB+IEZFUlRJTElaQU5URStJKEZFUlRJTElaQU5URSpGRVJUSUxJWkFOVEUpKw0KIyAgICAgICAgICAgICAgICAgICAgIEkoRkVSVElMSVpBTlRFKlRSQVRPUikrSShGRVJUSUxJWkFOVEUqTU8pKw0KIyAgICAgICAgICAgICAgICAgICAgIFRSQVRPUitJKFRSQVRPUipUUkFUT1IpK0koVFJBVE9SKk1PKSsNCiMgICAgICAgICAgICAgICAgICAgICBNTytJKE1PKk1PKSkNCmJwdGVzdChyZWdyZXNzYW8xLA0KICAgICAgIH4gRkVSVElMSVpBTlRFK0koRkVSVElMSVpBTlRFKkZFUlRJTElaQU5URSkrDQogICAgICAgICBJKEZFUlRJTElaQU5URSpUUkFUT1IpK0koRkVSVElMSVpBTlRFKk1PKSsNCiAgICAgICAgIFRSQVRPUitJKFRSQVRPUipUUkFUT1IpK0koVFJBVE9SKk1PKSsNCiAgICAgICAgIE1PK0koTU8qTU8pKQ0KYGBgDQoNCiMjIyMgQ29ycmXDp8OjbyBkZSBWYXItY292IGNvbmZvcm1lIFdoaXRlIChoYzEpDQoNCmBgYHtyfQ0KI3JlZ3Jlc3NhbzE8LWxtKFFTT0pBfkZFUlRJTElaQU5URStUUkFUT1IrTU8pDQojbGlicmFyeShjYXIpIA0KI3Bvc3NpYmlsaWRhZGVzOiBoY2NtKHJlZ3Jlc3NhbzEsdHlwZT1jKCJoYzAiLCJoYzEiLCJoYzIiLCJoYzMiLCJoYzQiKSkNCnZjb3Yud2hpdGUwPC1oY2NtKHJlZ3Jlc3NhbzEsdHlwZT1jKCJoYzEiKSkNCiMNCmNvZWZ0ZXN0KHJlZ3Jlc3NhbzEsdmNvdi53aGl0ZTApDQpgYGANCg0KIyBVc2FuZG8gbyBgZXN0aW1hdHJgDQoNCmBgYHtyfQ0KbGlicmFyeShlc3RpbWF0cikNCmxpYnJhcnkoY2FyKQ0KDQojIEVycm9zIHBhZHLDtWVzIHJvYnVzdG9zIEhDMSAtIHBhZHLDo28gZG8gU3RhdGENCm1vZGVsIDwtIGxtX3JvYnVzdChRU09KQX5GRVJUSUxJWkFOVEUrVFJBVE9SK01PLCANCiAgICAgICAgICAgICAgICAgICBkYXRhID0gZGFkb3MsDQogICAgICAgICAgICAgICAgICAgc2VfdHlwZSA9ICJzdGF0YSIpDQpzdW1tYXJ5KG1vZGVsKQ0KDQpzdGFyZ2F6ZXIocmVncmVzc2FvMSwNCiAgICAgICAgICBzZSA9IHN0YXJwcmVwKHJlZ3Jlc3NhbzEsc2VfdHlwZSA9ICJIQzEiKSwNCiAgICAgICAgICBwID0gc3RhcnByZXAocmVncmVzc2FvMSxzZV90eXBlID0gIkhDMSIsIHN0YXQgPSAicC52YWx1ZSIpLA0KICAgICAgICAgIHR5cGU9InRleHQiLHN0eWxlPSJhbGwiLA0KICAgICAgICAgIG9taXQuc3RhdCA9ICJmIikNCg0KDQpgYGANCg0KIyMgQWdvcmEgY29tIEhDMw0KDQpgYGB7cn0NCiMgYWx0ZXJuYXRpdmEgSEMzIC0gcGFkcsOjbyBkbyBSDQptb2RlbC5oYzMgPC0gbG1fcm9idXN0KFFTT0pBfkZFUlRJTElaQU5URStUUkFUT1IrTU8sIA0KICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYWRvcywNCiAgICAgICAgICAgICAgICAgICBzZV90eXBlID0gIkhDMyIpDQpzdW1tYXJ5KG1vZGVsLmhjMykNCg0KYGBgDQoNCiMgUmVmZXLDqm5jaWFzDQoNCkhFSVNTLCBGbG9yaWFuLiBVc2luZyBSIGZvciBJbnRyb2R1Y3RvcnkgRWNvbm9tZXRyaWNzLiAyLmVkLiBGbG9yaWFuIEhlaXNzLCAyMDIwLiBSZWN1cnNvIG9ubGluZS4gRGlzcG9uw612ZWwgZW06IDxodHRwOi8vd3d3LnVyZmllLm5ldC8+Lg0KDQpXT09MRFJJREdFLCBKLk0uIEludHJvZHXDp8OjbyDDoCBFY29ub21ldHJpYTogdW1hIGFib3JkYWdlbSBtb2Rlcm5hLiBTw6NvIFBhdWxvOiBQaW9uZWlyYSBUaG9tc29uIExlYXJuaW5nLCAyMDA2Lih0cmFkdcOnw6NvIGRhIHNlZ3VuZGEgZWRpw6fDo28gYW1lcmljYW5hKS4NCg==