lista_multicolinearidade

Autor

Paulo Manoel da Silva Junior

Lista de Exercícios de Econometria I - Multicolinearidade

Questão 5 - Resoluções de questões do livro do Gujarati

Questão 10.5

  • Considere o seguinte modelo:

\[Y_t = \beta_1+\beta_2X_t+\beta_3X_{t-1}+\beta_4X_{t-2}+\beta_5X_{t-3}+\beta_6X_{t-4} + u_i\]

em que Y = consumo, X = renda e t = tempo. O modelo anterior postula que a despesa de consumo no tempo t é uma função não só da renda no tempo t, mas também da renda através dos períodos anteriores. Assim, a despesa de consumo no primeiro trimestre de 2000 é uma função da renda naquele trimestre e no quarto trimestre de 1999. Tais modelos são chamados de modelos com defasagens distribuídas e serão examinados em um dos próximos capítulos.

  1. Você esperaria multicolinearidade em tais modelos e por quê?

Em tais modelos é esperado que exista um problema de multicolinearidade principalmente pelo fato de que é esperado uma correlação alta entre essas variáveis regressoras.

  1. Se a colinearidade é esperada, como você resolveria o problema?

Poderiamos retirar alguma variável do modelo, ou fazer alguma transformação nas variáveis para lidar com o problema de multicolinearidade, ou podemos, trazer informações não amostrais, que podem vir de princípios econômicos ou de experiências anteriores.

Questão 10.19

  • Considere o modelo a seguir:

\[PNB_t = \beta_1+\beta_2M_t+\beta_3M_{t-1}+\beta_4(M_t-M_{t-1})+u_t\]

Em que \(PNB_t\) = PNB no período t, $M_t = $ oferta de moeda no período t, $M_{t-1} = $ oferta no período (t-1) e \((M_t - M_{t-1})=\) variação na oferta de moeda entre os períodos t e (t-1). Este modelo postula que o nível de PNB no período t é uma função da oferta de moeda nos períodos t e (t-1), bem como da variação da oferta de moeda entre esses períodos.

    1. Supondo que tenhamos os dados, para estimar o modelo anterior conseguiriamos estimar todos os coeficiente desse modelo? Por quê?

Não, pois temos uma depêndencia da informação e eles são uma combinação linear da informação anterior.

    1. Em caso negativo, que coeficientes podem ser estimados? De acordo com o modelo ajustado, só poderiamos estimar os coeficientes \(\beta_1\) e \(\beta_3\).
    1. Suponha que os termos \(\beta_3M_{t-1}\) estivessem ausentes do modelo. Sua resposta para (a), seria a mesma?

Sim

    1. Repita (c), supondo que os termos \(\beta_2M_t\), estivessem ausentes do modelo.

Não.

Questão 10.26

  • Klein e Goldberger tentaram ajustar o seguinte modelo de regressão para a economia dos Estados Unidos:

\[Y_i = \beta_1 + \beta_2X_{2i}+ \beta_3X_{3i}+\beta_4X_{4i}+ u_i\] em que Y = consumo, \(X_2\) = renda salarial, \(X_3\) = renda não agrícola, excluídos os salários, e \(X_4\) = renda agrícola. Mas desde que se espera que \(X_2\), \(X_3\) e \(X_4\) sejam altamente colineares, eles obtiveram estimativas de \(\beta_3\) e \(\beta_4\) com base nos dados de corte transversal, como se segue:

Código
library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
Código
rm(list=ls(all=T))
banco <- gujarati::Table10_12
banco[] <- sapply(banco, function(x) as.numeric(as.character(x)))
banco%>%knitr::kable(caption = "Banco de dados")
Banco de dados
Year Y X2 X3 X4
1936 62.8 43.41 17.10 3.96
1937 65.0 46.44 18.65 5.48
1938 63.9 44.35 17.09 4.37
1939 67.5 47.82 19.28 4.51
1940 71.3 51.02 23.24 4.88
1941 76.6 58.71 28.11 6.37
1945 86.3 87.69 30.29 8.96
1946 95.7 76.73 28.26 9.76
1947 98.3 75.91 27.91 9.31
1948 100.3 77.62 32.30 9.85
1949 103.2 78.01 31.39 7.21
1950 108.9 83.57 35.61 7.39
1951 108.5 90.59 37.58 7.98
1952 111.4 95.47 35.17 7.42

\(\beta_3 = 0,75\beta_2\) e \(\beta_4 = 0.625\beta_2\). Usando essas estimativas, eles reformularam sua função de consumo da seguinte forma:

\[Y_i = \beta_1 + \beta_2(X_{2i} + 0.75X_{3i}+0.625X_{4i})+u_i = \beta_1 + \beta_2Z_i\] em que \(Z_i = X_{2i}+ 0.75X_{3i}+0.625X_{4i}\)

  1. Adapte o modelo modificado para os dados da Tabela 10.12 e obtenha as estimativas de \(\beta_1\) para \(\beta_4\).
Código
new_banco <- data.frame(banco$Y, banco$X2, banco$X2*0.75, banco$X2*0.625)
names(new_banco) <- c("Y", "X1", "X2", "X3")
modelo <- lm(Y~X1+X2+X3, data = new_banco)
summary(modelo)

Call:
lm(formula = Y ~ X1 + X2 + X3, data = new_banco)

Residuals:
     Min       1Q   Median       3Q      Max 
-18.7769  -1.0529  -0.0888   3.3370   7.6544 

Coefficients: (2 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 23.53207    6.77607   3.473  0.00461 ** 
X1           0.92992    0.09576   9.711 4.91e-07 ***
X2                NA         NA      NA       NA    
X3                NA         NA      NA       NA    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 6.52 on 12 degrees of freedom
Multiple R-squared:  0.8871,    Adjusted R-squared:  0.8777 
F-statistic:  94.3 on 1 and 12 DF,  p-value: 4.912e-07

Resposta: Como podemos enxergar não temos estimativas para \(\beta_3\) e \(\beta_4\), pois são combinação linear de \(\beta_2\)

Código
ajuste <- lm(Y~X2+X3+X4, data = banco)
summary(ajuste)

Call:
lm(formula = Y ~ X2 + X3 + X4, data = banco)

Residuals:
    Min      1Q  Median      3Q     Max 
-13.494  -1.847   1.116   2.541   6.460 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  18.7021     6.8454   2.732   0.0211 *
X2            0.3803     0.3121   1.218   0.2511  
X3            1.4186     0.7204   1.969   0.0772 .
X4            0.5331     1.3998   0.381   0.7113  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 6.06 on 10 degrees of freedom
Multiple R-squared:  0.9187,    Adjusted R-squared:  0.8943 
F-statistic: 37.68 on 3 and 10 DF,  p-value: 9.271e-06
  1. Como você interpretaria a variável Z?

Uma combinação linear que atribui peso menor as rendas agrícolas e não agrícolas.

Questão 10.27

  • A Tabela 10.13 apresenta dados sobre as importações, PIB, e Índice de Preços ao Consumidor (IPC) para os Estados Unidos durante o período 1975-2005. Pede-se para considerar o seguinte modelo:

\[ln \hspace{0.2cm} Importações = \beta_1 + \beta_2ln \hspace{0.1cm}PIB_t + \beta_3ln\hspace{0.1cm}IPC_t + u_i\]

  1. Estime os parâmetros do modelo utilizando os dados apresentados na tabela.
Código
banco2 <- gujarati::Table10_13

banco2[] <- sapply(banco2, function(x) as.numeric(as.character(x)))
names(banco2) <- c("Ano", "IPC", "PIB", "Importações")

ajuste2 <- lm(log(Importações)~log(PIB)+log(IPC), data = banco2)
summary(ajuste2)

Call:
lm(formula = log(Importações) ~ log(PIB) + log(IPC), data = banco2)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.127538 -0.037037 -0.005865  0.031455  0.193769 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   1.4094     0.2701   5.219 1.53e-05 ***
log(PIB)      1.8501     0.1829  10.115 7.48e-11 ***
log(IPC)     -0.8734     0.2848  -3.067  0.00476 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.07053 on 28 degrees of freedom
Multiple R-squared:  0.992, Adjusted R-squared:  0.9914 
F-statistic:  1737 on 2 and 28 DF,  p-value: < 2.2e-16
  1. Você acredita que há multicolinearidade nos dados?

Devido a natureza dos dados existe um grande indício de existir multicolinearidade nos dados, o que se pode ter uma noção mais apurada através da matriz de correlação

Código
cor(banco2[,-c(1,4)])
          IPC       PIB
IPC 1.0000000 0.9805229
PIB 0.9805229 1.0000000

Resposta: De fato como podemos observar existe a presença de multicolinearidade nos dados

  1. Faça a regressão:

\[(1)\hspace{0.5cm} ln \hspace{0.1cm} Importações_t = A_1 + A_2ln\hspace{0.1cm}PIB\]

\[(2)\hspace{0.5cm} ln \hspace{0.1cm} Importações_t = B_1 + B_2ln\hspace{0.1cm}IPC_t\]

\[(3)\hspace{0.5cm} ln \hspace{0.1cm} PIB_t = C_1 + C_2ln\hspace{0.1cm}IPC_t\]

Com base nessas regressões, o que se pode dizer sobre a natureza da multicolinearidade nos dados?

Código
ajuste_aux <- lm(log(Importações)~log(PIB), data = banco2)
summary(ajuste)

Call:
lm(formula = Y ~ X2 + X3 + X4, data = banco)

Residuals:
    Min      1Q  Median      3Q     Max 
-13.494  -1.847   1.116   2.541   6.460 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  18.7021     6.8454   2.732   0.0211 *
X2            0.3803     0.3121   1.218   0.2511  
X3            1.4186     0.7204   1.969   0.0772 .
X4            0.5331     1.3998   0.381   0.7113  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 6.06 on 10 degrees of freedom
Multiple R-squared:  0.9187,    Adjusted R-squared:  0.8943 
F-statistic: 37.68 on 3 and 10 DF,  p-value: 9.271e-06
Código
ajuste_aux2 <- lm(log(Importações)~log(IPC), data = banco2)
summary(ajuste_aux2)

Call:
lm(formula = log(Importações) ~ log(IPC), data = banco2)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.23596 -0.09321 -0.02500  0.10703  0.27658 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.57829    0.34806   10.28 3.51e-11 ***
log(IPC)     1.98650    0.07251   27.39  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1495 on 29 degrees of freedom
Multiple R-squared:  0.9628,    Adjusted R-squared:  0.9615 
F-statistic: 750.5 on 1 and 29 DF,  p-value: < 2.2e-16
Código
ajuste_aux3 <- lm(log(PIB)~log(IPC), data = banco2)
summary(ajuste_aux3)

Call:
lm(formula = log(PIB) ~ log(IPC), data = banco2)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.14792 -0.05649 -0.01380  0.05918  0.10857 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.17230    0.16670   7.033 9.82e-08 ***
log(IPC)     1.54579    0.03473  44.509  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.07161 on 29 degrees of freedom
Multiple R-squared:  0.9856,    Adjusted R-squared:  0.9851 
F-statistic:  1981 on 1 and 29 DF,  p-value: < 2.2e-16

Resposta: Conforme já havíamos observado a natureza da multicolinearidade nos dados é devido as variáveis regressoras terem uma alta correlação.

Código
plot(banco2)

  1. Suponha que haja multicolinearidade nos dados, mas \(\beta_2\) e \(\beta_3\) sejam individualmente significativos no nível de 5% e que o teste F geral também seja significativo. Nesse caso, deveríamos ficar preocupados com o problema da colinearidade?

Deveríamos ficar alertas apenas com o fato de que teríamos intervalos bem maiores por conta da influência da variabilidade que não consegue ser detectada.

Questão 10.32

  • Retome os dados de Longley da Seção 10.10. Repita a regressão da tabela, omitindo os dados para 1962; ou seja, faça a regressão para o período de 1947-1961. Compare as duas regressões. A que conclusão geral você chega com este exercício?
Código
df <- gujarati::Table10_8
df[] <- sapply(df, function(x) as.numeric(as.character(x)))
df %>% knitr::kable(caption = "Dados para a resolução da questão")
Dados para a resolução da questão
obs Y X1 X2 X3 X4 X5 TIME
1947 60323 830 234289 2356 1590 107608 1
1948 61122 885 259426 2325 1456 108632 2
1949 60171 882 258054 3682 1616 109773 3
1950 61187 895 284599 3351 1650 110929 4
1951 63221 962 328975 2099 3099 112075 5
1952 63639 981 346999 1932 3594 113270 6
1953 64989 990 365385 1870 3547 115094 7
1954 63761 1000 363112 3578 3350 116219 8
1955 66019 1012 397469 2904 3048 117388 9
1956 67857 1046 419180 2822 2857 118734 10
1957 68169 1084 442769 2936 2798 120445 11
1958 66513 1108 444546 4681 2637 121950 12
1959 68655 1126 482704 3813 2552 123366 13
1960 69564 1142 502601 3931 2514 125368 14
1961 69331 1157 518173 4806 2572 127852 15
Código
ajuste3 <- lm(Y~X1+X2+X3+X4+X5+TIME, data = df)
summary(ajuste3)

Call:
lm(formula = Y ~ X1 + X2 + X3 + X4 + X5 + TIME, data = df)

Residuals:
   Min     1Q Median     3Q    Max 
-381.7 -167.6   13.7  105.5  488.9 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)   
(Intercept)  6.727e+04  2.324e+04   2.895  0.02005 * 
X1          -2.051e+00  8.710e+00  -0.235  0.81974   
X2          -2.733e-02  3.317e-02  -0.824  0.43385   
X3          -1.952e+00  4.767e-01  -4.095  0.00346 **
X4          -9.582e-01  2.162e-01  -4.432  0.00219 **
X5           5.134e-02  2.340e-01   0.219  0.83181   
TIME         1.585e+03  4.827e+02   3.284  0.01112 * 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 295.6 on 8 degrees of freedom
Multiple R-squared:  0.9955,    Adjusted R-squared:  0.9921 
F-statistic: 295.8 on 6 and 8 DF,  p-value: 6.041e-09

Análise: Com a retirada da observação de 1962, tivemos um bom \(R^2\), e que modelo de regressão ajustado foi significativo passando assim no teste de significância global, e que três variáveis não foram significativas no ajuste do modelo, provavelmente devido ao seu grau de influência uma nas outras. Um outro modo de visualizar é observando a matriz de correlação dessas variáveis regressoras.

Código
cor(df[,-c(1:2)])
            X1        X2         X3         X4        X5      TIME
X1   1.0000000 0.9936689  0.5917342  0.4689737 0.9833160 0.9908435
X2   0.9936689 1.0000000  0.5752804  0.4587780 0.9896976 0.9947890
X3   0.5917342 0.5752804  1.0000000 -0.2032852 0.6747642 0.6465669
X4   0.4689737 0.4587780 -0.2032852  1.0000000 0.3712428 0.4222098
X5   0.9833160 0.9896976  0.6747642  0.3712428 1.0000000 0.9957420
TIME 0.9908435 0.9947890  0.6465669  0.4222098 0.9957420 1.0000000

Questão 10.33

  • Dados de Longley atualizados. Ampliamos o número de dados apresentados na Seção 10.10 para incluir as observações de 1959-2005. Os novos dados estão na Tabela 10.17. Eles estão ligados a: Y = número de pessoas empregadas, em milhares; \(X_1\) = deflator implícito do PNB; \(X_2\) = PNB, em milhares de dólares; \(X_3\) = número de pessoas desempregadas, em milhares; \(X_4\) = número de pessoas nas forças armadas, em milhares; \(X_5\) = população não institucionalizada com mais de 16 anos; \(X_6\) = ano, igual a 1 em 1959, 2 em 1960 e 47 em 2005.

    1. Crie diagramas de dispersão como sugerido no capítulo para avaliar as relações entre as variáveis independentes. As relações são fortes? Elas parecem lineares?
Código
df2 <- gujarati::Table10_17
df2[] <- sapply(df2, function(x) as.numeric(as.character(x)))
df2%>%
  knitr::kable(caption = "Dados de Longley Atualizados")
Dados de Longley Atualizados
Observation Y X1 X2 X3 X4 X5 X6
1959 64630 82.908 509300 3740 2551.583 120287 1
1960 65778 84.074 529500 3852 2514.000 121836 2
1961 65746 85.015 548200 4714 2572.500 123404 3
1962 66702 86.186 589700 3911 2827.417 124864 4
1963 67762 87.103 622200 4070 2737.083 127274 5
1964 69305 88.438 668500 3786 2738.417 129427 6
1965 71088 90.055 724400 3366 2722.417 131541 7
1966 72895 92.624 792900 2875 3122.750 133650 8
1967 74372 95.491 838000 2975 3446.250 135905 9
1968 75920 99.560 916100 2817 3534.750 138171 10
1969 77902 104.504 990700 2832 3506.083 140461 11
1970 78678 110.046 1044900 4093 3187.583 143070 12
1971 79367 115.549 1134700 5016 2816.333 145826 13
1972 82153 120.556 1246800 4882 2449.000 148592 14
1973 85064 127.307 1395300 4365 2326.583 151476 15
1974 86794 138.820 1515500 5156 2228.750 154378 16
1975 85846 151.857 1651300 7929 2180.000 157344 17
1976 88752 160.680 1842100 7406 2144.167 160319 18
1977 92017 170.884 2051200 6991 2132.917 163377 19
1978 96048 182.863 2316300 6202 2117.000 166422 20
1979 98824 198.077 2595300 6137 2087.667 169440 21
1980 99303 216.073 2823700 7637 2102.250 172437 22
1981 100397 236.385 3161400 8273 2142.083 174929 23
1982 99526 250.798 3291500 10678 2179.167 177176 24
1983 100834 260.680 3573800 10717 2199.167 179234 25
1984 105005 270.496 3969500 8539 2219.083 181192 26
1985 107150 278.759 4246800 8312 2234.000 183174 27
1986 109597 284.895 4480600 8237 2244.417 185284 28
1987 112440 292.691 4757400 7425 2256.833 187419 29
1988 114968 302.680 5127400 6701 2224.083 189233 30
1989 117342 314.179 5510600 6528 2207.833 190862 31
1990 118793 326.357 5837900 7047 2167.417 192644 32
1991 117718 337.747 6026300 8628 2118.000 194936 33
1992 118492 345.477 6367400 9613 1966.000 197205 34
1993 120259 353.516 6689300 8940 1760.000 199622 35
1994 123060 361.026 7098400 7996 1673.000 201970 36
1995 124900 368.444 7433400 7404 1579.000 204420 37
1996 126708 375.429 7851900 7236 1502.000 207087 38
1997 129558 381.663 8337300 6739 1457.000 209846 39
1998 131463 385.881 8768300 6210 1423.000 212638 40
1999 133488 391.452 9302200 5880 1380.000 215404 41
2000 136891 399.986 9855900 5692 1405.000 218061 42
2001 136933 409.582 10171600 6801 1412.000 220800 43
2002 136485 416.704 10500200 8378 1425.000 223532 44
2003 137736 425.553 11017600 8774 1423.000 226223 45
2004 139252 437.795 11762100 8149 1411.000 228892 46
2005 141730 451.946 12502400 7591 1378.000 231552 47
Código
plot(df2[,-c(1:2)])

Resposta: De acordo com a análise gráfica podemos observar que existe sim relações lineares fortes entre as variáveis independentes.

    1. Crie uma matriz de correlação. Quais variáveis parecem ser as mais relacionadas entre si, sem incluir a variável dependente?
Código
cor(df2[,-c(1:2)])
           X1         X2         X3         X4         X5         X6
X1  1.0000000  0.9693826  0.6919019 -0.8693183  0.9890236  0.9888661
X2  0.9693826  1.0000000  0.5525232 -0.8553903  0.9600105  0.9626256
X3  0.6919019  0.5525232  1.0000000 -0.6640409  0.6992196  0.6809048
X4 -0.8693183 -0.8553903 -0.6640409  1.0000000 -0.8709316 -0.8622678
X5  0.9890236  0.9600105  0.6992196 -0.8709316  1.0000000  0.9989843
X6  0.9888661  0.9626256  0.6809048 -0.8622678  0.9989843  1.0000000

Resposta: Parece haver uma relação bastante forte das variáveis \(X_1\), \(X_2\) ,\(X_5\) e \(X_6\).

  1. Faça uma regressão MQO padrão para prever o número de pessoas empregadas em milhares. Os coeficientes das variáveis independentes comportam-se como esperado?
Código
reg <- lm(Y~X1+X2+X3+X4+X5+X6, data = df2)
summary(reg)

Call:
lm(formula = Y ~ X1 + X2 + X3 + X4 + X5 + X6, data = df2)

Residuals:
     Min       1Q   Median       3Q      Max 
-1102.47  -476.63    -2.51   402.29  1531.17 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.130e+04  9.964e+03  -1.135  0.26330    
X1           8.745e+01  6.650e+00  13.151 4.14e-16 ***
X2          -1.468e-03  1.535e-04  -9.559 6.98e-12 ***
X3          -1.432e+00  1.011e-01 -14.168  < 2e-16 ***
X4          -1.066e+00  3.675e-01  -2.901  0.00602 ** 
X5           6.433e-01  8.376e-02   7.680 2.16e-09 ***
X6          -9.129e+01  1.995e+02  -0.458  0.64972    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 646 on 40 degrees of freedom
Multiple R-squared:  0.9994,    Adjusted R-squared:  0.9993 
F-statistic: 1.106e+04 on 6 and 40 DF,  p-value: < 2.2e-16

Resposta: Não, pois, o oposto que era esperado ao menos nas variáveis \(X_1\) e \(X_5\).

  1. Com base nos resultados, podemos acreditar que eles apresentam multicolinearidade?

Resposta: Sim, existe grandes indícios de multicolineariade nos resíduos.

Questão 10.34

Código
rm(list = ls())

library(ggplot2)
library(patchwork)
library(ggfortify)
library(lmtest)
library(nortest)
# install.packages("devtools")
# require(devtools)
# devtools::install_github('https://github.com/brunoruas2/gujarati', force = T)

exemplo <- gujarati::Table10_18[,-1]
exemplo[] <- sapply(exemplo, function(x) as.numeric(as.character(x)))
colnames(exemplo) <- c("Paladar", "Ácido_Acético", "H2S", "Ácido_Lático")

Exemplo 10.34

À medida que o queijo envelhece, vários processos químicos ocorrem, determinando o sabor do produto final. Os dados apresentados na Tabela 10.18 abaixo, pertencem a concentrações de vários produtos químicos em uma amostra de 30 queijos cheddar maduros e medidas subjetivas de paladar para cada amostra. As variáveis ácido acético e H2S são o logaritmo natural de concentração de ácido acético e ácido sulfídrico, respectivamente. A variável ácido lático não foi transformada em logaritmo.

Código
knitr::kable(exemplo)
Paladar Ácido_Acético H2S Ácido_Lático
12.3 4.543 3.135 0.86
20.9 5.159 5.043 1.53
39.0 5.366 5.438 1.57
47.9 5.759 7.496 1.81
5.6 4.663 3.807 0.99
25.9 5.697 7.601 1.09
37.3 5.892 8.726 1.29
21.9 6.078 7.966 1.78
18.1 4.898 3.850 1.29
21.0 5.242 4.174 1.58
34.9 5.740 6.142 1.68
57.2 6.446 7.908 1.90
0.7 4.477 2.996 1.06
25.9 5.236 4.942 1.30
54.9 6.151 6.752 1.52
40.9 3.365 9.588 1.74
15.9 4.787 3.912 1.16
6.4 5.142 4.700 1.49
18.0 5.247 6.174 1.63
38.9 5.438 9.064 1.99
14.0 4.564 4.949 1.15
15.2 5.298 5.220 1.33
32.0 5.455 9.242 1.44
56.7 5.855 10.199 2.01
16.8 5.366 3.664 1.31
11.6 6.043 3.219 1.46
26.5 6.458 6.962 1.72
0.7 5.328 3.912 1.25
13.4 5.802 6.685 1.08
5.5 6.176 4.787 1.25

a. Trace um diagrama de dispersão das quatro variáveis.

Código
scatterplots <- list()
for(combo in combn(names(exemplo), 2, simplify = FALSE)) {
  x_col <- combo[1]
  y_col <- combo[2]
  
  scatterplot <- ggplot(exemplo, aes(x = .data[[x_col]], y =.data[[y_col]])) +
    geom_point() +
    labs(x = x_col, y = y_col) +
    ggtitle(paste(x_col, "vs", y_col))
  
  scatterplots[[paste(x_col, y_col)]] <- scatterplot
}

g <-((scatterplots[[1]] + scatterplots[[2]] + scatterplots[[3]]) / 
     (scatterplots[[4]] + scatterplots[[5]] + scatterplots[[6]]))

g

b. Faça uma regressão bivariada do paladar contra o ácido acético e H2S e interprete os resultados obtidos.

Código
fitb <- lm(Paladar~Ácido_Acético + H2S, exemplo)
summary(fitb)

Call:
lm(formula = Paladar ~ Ácido_Acético + H2S, data = exemplo)

Residuals:
    Min      1Q  Median      3Q     Max 
-16.564  -7.292  -1.238   6.668  23.432 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)   -25.6762    16.3298  -1.572    0.128    
Ácido_Acético   3.2535     3.1140   1.045    0.305    
H2S             5.4994     0.9807   5.607 5.99e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 10.82 on 27 degrees of freedom
Multiple R-squared:  0.5878,    Adjusted R-squared:  0.5573 
F-statistic: 19.25 on 2 and 27 DF,  p-value: 6.362e-06
Código
#Normalidade 
shapiro.test(residuals(fitb)) 

    Shapiro-Wilk normality test

data:  residuals(fitb)
W = 0.96902, p-value = 0.5128
Código
lillie.test(residuals(fitb))

    Lilliefors (Kolmogorov-Smirnov) normality test

data:  residuals(fitb)
D = 0.09055, p-value = 0.7661
Código
#Homocedasticidade
bptest(fitb, studentize=FALSE)

    Breusch-Pagan test

data:  fitb
BP = 5.6776, df = 2, p-value = 0.0585
Código
bptest(fitb, studentize=TRUE)

    studentized Breusch-Pagan test

data:  fitb
BP = 7.8133, df = 2, p-value = 0.02011
Código
gqtest(fitb)

    Goldfeld-Quandt test

data:  fitb
GQ = 0.7236, df1 = 12, df2 = 12, p-value = 0.708
alternative hypothesis: variance increases from segment 1 to 2
Código
t <- autoplot(fitb)

plot((t[[1]] + t[[2]]))

  • Não rejeita a Hipotese Nula de Normalidade para lilliefors e Shapiro
  • Breusch-Pagan e Goldfeld não rejeita hipotese nula, não há heterocedasticidade.
  • O \(R^2\) ajustado explica cerca de 56% da variabilidade total dos dados.
  • O p-valor da variável Ácido_Acético foi maior que o nível de significância de 5%, isto é, a variável não é tão significante para o modelo.

c. Faça uma regressão bivariada do paladar contra o ácido lático e H2S e interprete os resultados obtidos.

Código
fitc <- lm(Paladar~Ácido_Lático + H2S, exemplo)
summary(fitc)

Call:
lm(formula = Paladar ~ Ácido_Lático + H2S, data = exemplo)

Residuals:
    Min      1Q  Median      3Q     Max 
-17.343  -6.530  -1.164   4.844  25.618 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)   
(Intercept)   -27.592      8.982  -3.072  0.00481 **
Ácido_Lático   19.887      7.959   2.499  0.01885 * 
H2S             3.946      1.136   3.475  0.00174 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 9.942 on 27 degrees of freedom
Multiple R-squared:  0.6517,    Adjusted R-squared:  0.6259 
F-statistic: 25.26 on 2 and 27 DF,  p-value: 6.551e-07
Código
#Normalidade 
shapiro.test(residuals(fitc)) 

    Shapiro-Wilk normality test

data:  residuals(fitc)
W = 0.97945, p-value = 0.8107
Código
lillie.test(residuals(fitc))

    Lilliefors (Kolmogorov-Smirnov) normality test

data:  residuals(fitc)
D = 0.10167, p-value = 0.5957
Código
#Homocedasticidade
bptest(fitc, studentize=FALSE)

    Breusch-Pagan test

data:  fitc
BP = 1.7776, df = 2, p-value = 0.4111
Código
bptest(fitc, studentize=TRUE)

    studentized Breusch-Pagan test

data:  fitc
BP = 1.6372, df = 2, p-value = 0.441
Código
gqtest(fitc)

    Goldfeld-Quandt test

data:  fitc
GQ = 0.37248, df1 = 12, df2 = 12, p-value = 0.9499
alternative hypothesis: variance increases from segment 1 to 2
Código
#Multicolinearidade
car::vif(fitc)
Ácido_Lático          H2S 
    1.711692     1.711692 
Código
t <- autoplot(fitc)

plot((t[[1]] + t[[2]]))

  • Por Shapiro e Lilliefors mantém hipotese nula, há normalidade.
  • Por Breusch e Goldfeld mantém a hipotese nula, não há heterocedasticidade.
  • O \(R^2\) ajustado explica 62% da variabilidade total dos dados.
  • O p-valor da variável H2S e Ácido_Lático foi menor que o nível de significância de 5%, isto é, as variáveis são significantes para o modelo.

d. Faça uma regressão múltipla do paladar contra o ácido acético, H2S e ácido lático. Interprete os resultados obtidos.

Código
fitd <- lm(Paladar~. , exemplo)
summary(fitd)

Call:
lm(formula = Paladar ~ ., data = exemplo)

Residuals:
     Min       1Q   Median       3Q      Max 
-17.9740  -7.2838  -0.1424   5.1694  24.5554 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)   
(Intercept)    -34.135     15.676  -2.177  0.03871 * 
Ácido_Acético    1.539      3.001   0.513  0.61242   
H2S              3.915      1.153   3.395  0.00221 **
Ácido_Lático    18.802      8.343   2.254  0.03287 * 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 10.08 on 26 degrees of freedom
Multiple R-squared:  0.6552,    Adjusted R-squared:  0.6154 
F-statistic: 16.47 on 3 and 26 DF,  p-value: 3.36e-06
Código
#Normalidade 
shapiro.test(residuals(fitd)) 

    Shapiro-Wilk normality test

data:  residuals(fitd)
W = 0.98476, p-value = 0.933
Código
lillie.test(residuals(fitd))

    Lilliefors (Kolmogorov-Smirnov) normality test

data:  residuals(fitd)
D = 0.080744, p-value = 0.8865
Código
#Homocedasticidade
bptest(fitd, studentize=FALSE)

    Breusch-Pagan test

data:  fitd
BP = 4.9374, df = 3, p-value = 0.1764
Código
bptest(fitd, studentize=TRUE)

    studentized Breusch-Pagan test

data:  fitd
BP = 4.9715, df = 3, p-value = 0.1739
Código
gqtest(fitd)

    Goldfeld-Quandt test

data:  fitd
GQ = 0.52104, df1 = 11, df2 = 11, p-value = 0.8527
alternative hypothesis: variance increases from segment 1 to 2
Código
#Multicolinearidade
car::vif(fitd)
Ácido_Acético           H2S  Ácido_Lático 
     1.152768      1.716418      1.829329 
Código
t <- autoplot(fitd)

plot((t[[1]] + t[[2]]))

  • Shapiro e Lillie mantém a hipotese nula de normalidade.
  • Breusch e Goldfeld não rejeitam a hipotese nula, não existe heterocedasticidade.
  • O \(R^2\) ajustado explica 61% da variabilidade total dos dados.
  • O p-valor da variável Ácido_Acético de 0.61, maior que o nível de significância de 5%, indica que variável não é estatísticamente significante para o modelo.

e. Dados os seus conhecimentos sobre multicolinearidade, como decidiria entre essas regressões?

Como o ajuste feito na alternativa anterior deu que a variável Ácido Acético não era significante para o modelo, optaria pelo moodelo da letra c.

\[ Paladar = 19.9 \times ln(Ácido \ Lático) + 3.9 \times H_2 S - 27.59 \]