O artigo “Ecofriendly Dyeing of Silk with Extract of Yerba Mate” (Textile Res. J. 2017: 829–837) descreve um experimento para estudar os efeitos da concentração de corante (mg/L), da temperatura (°C) e do pH na adsorção de corante (mg de corante por grama de tecido). Adsorção de corante é um indicador de cor.
concentracao adsorcao
Min. :10.00 Min. :157.0
1st Qu.:11.25 1st Qu.:280.8
Median :17.50 Median :379.5
Mean :16.00 Mean :371.5
3rd Qu.:20.00 3rd Qu.:435.0
Max. :20.00 Max. :593.0
sd(dados$concentracao)
[1] 4.594683
sd(dados$adsorcao)
[1] 133.3552
Correlação entre as variáveis
plot(dados$concentracao, dados$adsorcao)
ggplot(dados, aes(x = concentracao, y = adsorcao)) +geom_point() +labs(title ="Relação entre concentração e adsorção",x ="Concentração (mg/L)",y ="Adsorção (mg/g)" )
cor(dados$concentracao, dados$adsorcao)
[1] 0.8640818
Teste de hipóteses:
\(H_0: rho = 0\)
cor.test(dados$concentracao, dados$adsorcao)
Pearson's product-moment correlation
data: dados$concentracao and dados$adsorcao
t = 4.8554, df = 8, p-value = 0.001263
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.5142117 0.9673971
sample estimates:
cor
0.8640818
Observe o IC para \(\rho\).
Ajuste do modelo
modelo <-lm(adsorcao ~ concentracao, data = dados)modelo
Analysis of Variance Table
Response: adsorcao
Df Sum Sq Mean Sq F value Pr(>F)
concentracao 1 119501 119501 23.575 0.001263 **
Residuals 8 40551 5069
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Estimativas, erros-padrões, estatísticas \(t\), valores \(p\), \(\sigma\), \(R^2\), \(R^2_{aj}\), \(F_c\) para regressão (e valor \(p\)):
summary(modelo)
Call:
lm(formula = adsorcao ~ concentracao, data = dados)
Residuals:
Min 1Q Median 3Q Max
-94.82 -53.22 15.28 33.93 121.18
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -29.763 85.654 -0.347 0.73719
concentracao 25.079 5.165 4.855 0.00126 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 71.2 on 8 degrees of freedom
Multiple R-squared: 0.7466, Adjusted R-squared: 0.715
F-statistic: 23.58 on 1 and 8 DF, p-value: 0.001263
Testes de hipóteses:
\[
H_0: \beta_0 = 0 \quad vs \quad H_1: \beta_0 \neq 0
\]\[
H_0: \beta_1 = 0 \quad vs \quad H_1: \beta_1 \neq 0
\] Para o teste \(t\) dos coeficientes, comparamos os valores \(t_c\) com o valor \(t_{tab} = t_{\alpha/2, gl(erro)}\)
qt(0.05/2, df =8, lower.tail =FALSE) # t tabulado
[1] 2.306004
Para o teste de hipóteses, \(i = 0\) ou \(1\): \[
H_0: \beta_i = \beta_{i,0} \quad vs \quad H_1: \beta_i \neq \beta_{i,0}
\] onde \(\beta_{i,0}\) é o valor hipotetizado para o parâmetro (geralmente 0).
A estatística de teste é dada por: \[
t_c = \frac{\hat{\beta}_i - \beta_{i,0}}{se(\hat{\beta}_i)}
\]
Para o seguinte exemplo: \[
H_0: \beta_1 = 25 \quad vs \quad H_1: \beta_1 \neq 25
\]
A estatística de teste é: \[
t_c = \frac{\hat{\beta}_1 - 25}{se(\hat{\beta}_1)}
\]
t_calc <- (25.079-25)/5.165t_calc
[1] 0.01529526
t_tab <-qt(0.05/2, df =8, lower.tail =FALSE) # t tabuladot_tab
Example 3.1 The Delivery Time Data (Montgomery, Peck e Vining, 2021, p. 76)
A soft drink bottler is analyzing the vending machine service routes in his distribution system. He is interested in predicting the amount of time required by the route driver to service the vending machines in an outlet. This service activity includes stocking the machine with beverage products and minor maintenance or housekeeping. The industrial engineer responsible for the study has suggested that the two most important variables affecting the delivery time (y) are the number of cases of product stocked (x1) and the distance walked by the route driver (x2). The engineer has collected 25 observations on delivery time:
Nas análises de resíduos é indicado usar o resíduo studentizado ou o resíduo R-Student. É esperado que os valores dos resíduos sejam uma amostra da distribuição \(t\) com \(n-p-1\) graus de liberdade. Para tamanho amostral suficientemente grande, pode-se comparar com a distribuição normal padrão.
Gráficos de resíduos
# Gráfico qqnormqqnorm(res_3)qqline(res_3, col ="blue", lwd =2)
# Gráfico de dispersão y_est x resíduosy_est <-fitted(mod)plot(y_est, res_3, xlim =c(0,80), ylim =c(-2,5),main ="Gráfico de dispersão y_est x resíduos",xlab ="y estimado",ylab ="Resíduos studentizados")
# Gráfico dos resíduos seguindo a ordem de coleta# ou execução dos dados# atenção: supondo que a coleta tenha sido na ordem da variável ID, o que nem sempre é verdade!plot(res_3 ~ dados$ID)
Testes para os resíduos
Normalidade dos resíduos
Alguns testes são: Qui-quadrado, Kolmogorov-Smirnov, Jarque-Bera, Shapiro-Wilk, Anderson-Darling, Cramér-von Mises, D’Agostino-Pearson, Lilliefors, e Shapiro-Francia.
# Teste de Shapiro-Wilkshapiro.test(res_3)
Shapiro-Wilk normality test
data: res_3
W = 0.92285, p-value = 0.05952
# Teste de Kolmogorov-Smirnovks.test(res_3, "pnorm", mean =0, sd =1)
Exact one-sample Kolmogorov-Smirnov test
data: res_3
D = 0.17188, p-value = 0.4052
alternative hypothesis: two-sided
Independência dos Resíduos
Alguns testes são: Durbin-Watson, Breusch-Godfrey e Ljung-Box.
Para testar a independência dos resíduos é necessário conhecer a ordem de coleta (ou execução) dos dados.
Supondo que a coleta dos dados tenha sido conforme a variável \(ID\) (no exemplo delivery time), então, o teste DW é:
library(lmtest)dwtest(res_3 ~ dados$ID, alternative ="two.sided")
Durbin-Watson test
data: res_3 ~ dados$ID
DW = 1.3994, p-value = 0.07306
alternative hypothesis: true autocorrelation is not 0
Homocedasticidade dos Resíduos
Alguns testes são: Bartlett, Breusch-Pagan, Levene, Samiuddin, O’Neill e Mathews, Layard, Park, White, Cochran, Hartley e Goldfeld-Quandt.
# Teste de Breusch-Pagan# library(lmtest)bptest(mod)
studentized Breusch-Pagan test
data: mod
BP = 11.988, df = 2, p-value = 0.002493
# é necessário verificar se a observação 9 é um outlier.# gráfico dos resíduosplot(res_3, main ="Resíduos studentizados",ylab ="Resíduos studentizados",xlab ="Observações")abline(h =2, col ="red", lty =2)abline(h =-2, col ="red", lty =2)
# Se for, de fato, um outlier, o que fazer?# Estimar novamente o modelo sem a observação 9.mod_2 <-lm(y ~ x1 + x2, data = dados[-9,])summary(mod_2)
Call:
lm(formula = y ~ x1 + x2, data = dados[-9, ])
Residuals:
Min 1Q Median 3Q Max
-4.0325 -1.2331 0.0199 1.4730 4.8167
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.447238 0.952469 4.669 0.000131 ***
x1 1.497691 0.130207 11.502 1.58e-10 ***
x2 0.010324 0.002854 3.618 0.001614 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.43 on 21 degrees of freedom
Multiple R-squared: 0.9487, Adjusted R-squared: 0.9438
F-statistic: 194.2 on 2 and 21 DF, p-value: 2.859e-14
# comparar os resultados dos dois modelos:summary(mod)
Call:
lm(formula = y ~ x1 + x2, data = dados)
Residuals:
Min 1Q Median 3Q Max
-5.7880 -0.6629 0.4364 1.1566 7.4197
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.341231 1.096730 2.135 0.044170 *
x1 1.615907 0.170735 9.464 3.25e-09 ***
x2 0.014385 0.003613 3.981 0.000631 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.259 on 22 degrees of freedom
Multiple R-squared: 0.9596, Adjusted R-squared: 0.9559
F-statistic: 261.2 on 2 and 22 DF, p-value: 4.687e-16
summary(mod_2)
Call:
lm(formula = y ~ x1 + x2, data = dados[-9, ])
Residuals:
Min 1Q Median 3Q Max
-4.0325 -1.2331 0.0199 1.4730 4.8167
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.447238 0.952469 4.669 0.000131 ***
x1 1.497691 0.130207 11.502 1.58e-10 ***
x2 0.010324 0.002854 3.618 0.001614 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.43 on 21 degrees of freedom
Multiple R-squared: 0.9487, Adjusted R-squared: 0.9438
F-statistic: 194.2 on 2 and 21 DF, p-value: 2.859e-14
res_4_mod_2 <-rstandard(mod_2, type ="pred")PRESS_mod_2 <-sum(res_4_mod_2^2)PRESS_mod_2
[1] 165.2484
# Comparar as estatísticas PRESSPRESS_mod
[1] 459.0393
PRESS_mod_2
[1] 165.2484
Pontos de alavancagem (leverage points)
# valores matriz Hp <-3# qde de parâmetros (b0, b1 e b2)#oup <-length(coef(mod))n <-25# qde de observaçoes# oun <-length(dados$y)2*p/n # limite para valores da matriz hat
[1] 0.24
h <-hatvalues(mod)cbind(dados, h, 2*p/n, h >2*p/n)
Tabela 1: Desempenho das Equipes da National Football League de 1976
equipe
y
x1
x2
x3
x4
x5
x6
x7
x8
x9
Washington
10
2113
1985
38.9
64.7
4
868
59.7
2205
1917
Minnesota
11
2003
2855
38.8
61.3
3
615
55.0
2096
1575
New England
11
2957
1737
40.1
60.0
14
914
65.6
1847
2175
Oakland
13
2285
2905
41.6
45.3
-4
957
61.4
1903
2476
Pittsburgh
10
2971
1666
39.2
53.8
15
836
66.1
1457
1866
Baltimore
11
2309
2927
39.7
74.1
8
786
61.0
1848
2339
Los Angeles
10
2528
2341
38.1
65.4
12
754
66.1
1564
2092
Dallas
11
2147
2737
37.0
78.3
-1
761
58.0
1821
1909
Atlanta
4
1689
1414
42.1
47.6
-3
714
57.0
2577
2001
Buffalo
2
2566
1838
42.3
54.2
-1
797
58.9
2476
2254
Chicago
7
2363
1480
37.3
48.0
19
984
67.5
1984
2217
Cincinnati
10
2109
2191
39.5
51.9
6
700
57.2
1917
1758
Cleveland
9
2295
2229
37.4
53.6
-5
1037
57.8
1761
2032
Denver
9
1932
2204
35.1
71.4
3
986
58.6
1790
2025
Detroit
6
2128
2438
38.8
58.3
6
819
59.2
1901
1686
Green Bay
5
1722
1730
36.6
52.6
-19
791
54.4
2288
1835
Houston
5
1498
2072
35.3
59.3
-5
776
49.6
2072
1914
Kansas City
5
1873
2929
41.1
55.3
10
789
54.3
2861
2496
Miami
6
2118
2268
38.2
69.6
6
582
58.7
2411
2670
New Orleans
4
1775
1983
39.3
78.3
7
901
51.7
2289
2202
New York Giants
3
1904
1792
39.7
38.1
-9
734
61.9
2203
1988
New York Jets
3
1929
1606
39.7
68.8
-21
627
52.7
2592
2324
Philadelphia
4
2080
1492
35.5
68.8
-8
722
57.8
2053
2550
St. Louis
10
2301
2835
35.3
74.1
2
683
59.7
1979
2110
San Diego
6
2040
2416
38.7
50.0
0
576
54.9
2048
2628
San Francisco
8
2447
1638
39.9
57.1
-8
848
65.3
1786
1776
Seattle
2
1416
2649
37.4
56.3
-22
684
43.8
2876
2524
Tampa Bay
0
1503
1503
39.3
47.0
-9
875
53.5
2560
2241
Definições das variáveis:
\(y\): Jogos vencidos (por temporada de 14 jogos)
\(x_1\): Jardas conquistadas em corrida (temporada)
\(x_2\): Jardas de passe (temporada)
\(x_3\): Média de punt (jardas/punt)
\(x_4\): Percentual de acerto em field goal (field goals convertidos/field goals tentados na temporada)
\(x_5\): Diferença de turnovers (turnovers ganhos - turnovers perdidos)
\(x_6\): Jardas de penalidade (temporada)
\(x_7\): Percentual de corrida (corridas/jogadas totais)
\(x_8\): Jardas conquistadas em corrida pelos adversários (temporada)
\(x_9\): Jardas de passe dos adversários (temporada)
Ajuste um modelo de regressão linear múltipla relacionando o número de jogos ganhos com as jardas aéreas do time (\(x_2\)), a porcentagem de jogadas terrestres (\(x_7\)) e as jardas terrestres dos adversários (\(x_8\)).
Construa a tabela de análise de variância (ANOVA) e teste a significância da regressão.
anova(m1)
Analysis of Variance Table
Response: y
Df Sum Sq Mean Sq F value Pr(>F)
x2 1 73.256 73.256 23.271 6.497e-05 ***
x7 1 135.885 135.885 43.166 8.534e-07 ***
x8 1 42.273 42.273 13.429 0.001224 **
Residuals 24 75.550 3.148
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Calcule as estatísticas \(t\) para testar as hipóteses: \(H_0: \beta_2 = 0\), \(H_0: \beta_7 = 0\) e \(H_0: \beta_8 = 0\). Quais conclusões você pode tirar sobre os papéis das variáveis \(x_2\), \(x_7\) e \(x_8\) no modelo?
summary(m1)
Call:
lm(formula = y ~ x2 + x7 + x8, data = tabela1)
Residuals:
Min 1Q Median 3Q Max
-3.2379 -0.6299 -0.1298 1.0467 3.7201
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.7922801 8.2481313 -0.096 0.92427
x2 0.0034385 0.0007194 4.780 7.27e-05 ***
x7 0.1855367 0.0917292 2.023 0.05439 .
x8 -0.0049115 0.0013403 -3.665 0.00122 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.774 on 24 degrees of freedom
Multiple R-squared: 0.7689, Adjusted R-squared: 0.7401
F-statistic: 26.62 on 3 and 24 DF, p-value: 8.279e-08
Calcule o \(R^2\) e o \(R^2_{\text{aj}}\) (ajustado) para este modelo.
summary(m1)
Call:
lm(formula = y ~ x2 + x7 + x8, data = tabela1)
Residuals:
Min 1Q Median 3Q Max
-3.2379 -0.6299 -0.1298 1.0467 3.7201
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.7922801 8.2481313 -0.096 0.92427
x2 0.0034385 0.0007194 4.780 7.27e-05 ***
x7 0.1855367 0.0917292 2.023 0.05439 .
x8 -0.0049115 0.0013403 -3.665 0.00122 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.774 on 24 degrees of freedom
Multiple R-squared: 0.7689, Adjusted R-squared: 0.7401
F-statistic: 26.62 on 3 and 24 DF, p-value: 8.279e-08
Usando o teste \(F\) parcial, determine a contribuição de \(x_7\) para o modelo. Como essa estatística \(F\) parcial está relacionada ao teste \(t\) para \(\beta_7\) calculado no item c?
m2 <-lm(y ~ x2 + x8, data = tabela1)m2
Call:
lm(formula = y ~ x2 + x8, data = tabela1)
Coefficients:
(Intercept) x2 x8
15.064942 0.002968 -0.006837
anova(m2, m1)
Analysis of Variance Table
Model 1: y ~ x2 + x8
Model 2: y ~ x2 + x7 + x8
Res.Df RSS Df Sum of Sq F Pr(>F)
1 25 88.429
2 24 75.550 1 12.879 4.0911 0.05439 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Construa um gráfico de probabilidade normal dos resíduos. Há indícios de violação da suposição de normalidade? Realize os testes de normalidade de Shapiro-Wilk e Kolmogorov-Smirnov. O que você conclui?
Construa e interprete o gráfico dos resíduos studentizados em função da resposta predita. Realize o teste de homocedasticidade de Breusch-Pagan. O que você conclui?
studentized Breusch-Pagan test
data: m1
BP = 2.2021, df = 3, p-value = 0.5315
Calcule as correlações entre as variáveis independentes \(x_2\), \(x_7\) e \(x_8\). Existe multicolinearidade entre essas variáveis? Justifique sua resposta.
cor(tabela1[, c("x2", "x7", "x8")], use ="pairwise.complete.obs")
Calcule o VIF (Variance Inflation Factor) para as variáveis \(x_2\), \(x_7\) e \(x_8\). O que você conclui? Os valores do VIF são úteis para indicar multicolinearidade. Valores de VIF superior a 5 ou 10 sugerem multicolinearidade. Use a função vif() do pacote car para calcular o VIF.
library(car)
Loading required package: carData
vif(m1)
x2 x7 x8
1.121032 2.095503 2.025732
Calcule a estatística PRESS (Press Residual Sum of Squares) para os modelos completo (com \(x_2\), \(x_7\) e \(x_8\)) e reduzido (apenas com \(x_2\) e \(x_8\)). O que você conclui?
# Cálculo PRESS m1res_press_m1 <-rstandard(m1, type ="pred")PRESS_m1 <-sum(res_press_m1^2)PRESS_m1
[1] 93.7735
# Cálculo PRESS m2res_press_m2 <-rstandard(m2, type ="pred")PRESS_m2 <-sum(res_press_m2^2)PRESS_m2
[1] 106.1485
Calcule os valores dos pontos de alavancagem (leverage). Quais observações são consideradas influentes? Lembre-se que valores superiores a\(2p/n\) (onde \(p\) é o número de parâmetros do modelo e \(n\) é o número de observações) são considerados influentes.
# valores matriz Hp <-length(coef(m1)) # qde de parâmetros (b0, b1, b2 e b3)n <-nrow(tabela1) # qde de observaçoes2*p/n # limite para valores da matriz hat
[1] 0.2857143
h <-hatvalues(m1)cbind(tabela1[, c("y", "x2", "x7", "x8")], y_estimado, h, 2*p/n, h >2*p/n)
Calcule os valores da distância de Cook. Quais observações são consideradas influentes? Lembre-se que valores superiores a 1 são considerados influentes.
# Distância de CookD <-cooks.distance(m1)# comparar com o valor 1# Se D > 1, a observação é considerada um ponto influente.cbind(tabela1[, c("y", "x2", "x7", "x8")], y_estimado, D, 1, D >1)
Construa um modelo de regressão linear relacionando o número de jogos vencidos com:
jardas terrestres dos adversários (\(x_8\)),
porcentagem de jogadas terrestres (\(x_7\)) e
diferença de turnovers (turnovers ganhos - turnovers perdidos) (\(x_5\)).
Especificamente, considere a diferença de turnovers como uma variável indicadora, cuja codificação depende de o valor real do diferencial ser positivo, negativo ou igual a zero. Ou seja, considere \(x_5\) como uma variável indicadora que assume os seguintes valores:
Call:
lm(formula = y ~ x7 + x8 + I2_x5)
Residuals:
Min 1Q Median 3Q Max
-3.288 -1.646 0.008 1.264 5.697
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 20.332528 9.282800 2.190 0.038451 *
x7 -0.012662 0.114646 -0.110 0.912973
x8 -0.006438 0.001659 -3.880 0.000713 ***
I2_x51 1.944113 0.924721 2.102 0.046194 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.278 on 24 degrees of freedom
Multiple R-squared: 0.6191, Adjusted R-squared: 0.5715
F-statistic: 13 on 3 and 24 DF, p-value: 3.025e-05
Considerando todas as variáveis disponíveis, utilize o método de seleção de variáveis forward (seleção progressiva) para selecionar um modelo de regressão com subconjunto de variáveis. Comente sobre o modelo final. O método de seleção de variáveis forward (seleção progressiva) é um método de seleção de variáveis que começa com um modelo nulo (sem variáveis preditoras) e adiciona variáveis preditoras uma a uma, com base em critérios estatísticos, até que não haja mais variáveis significativas a serem adicionadas.
# Modelo reduzido# Modelo mínimo a ser considerado.# O modelo mínimo pode ser um modelo nulo (sem variáveis preditoras)modelo_reduzido <-lm(y ~1, data = tabela1)# Forward selectionmodelo_forward <-step(modelo_reduzido,scope =as.formula(y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9),direction ="forward")
Call:
lm(formula = y ~ x8 + x2 + x7, data = tabela1)
Residuals:
Min 1Q Median 3Q Max
-3.2379 -0.6299 -0.1298 1.0467 3.7201
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.7922801 8.2481313 -0.096 0.92427
x8 -0.0049115 0.0013403 -3.665 0.00122 **
x2 0.0034385 0.0007194 4.780 7.27e-05 ***
x7 0.1855367 0.0917292 2.023 0.05439 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.774 on 24 degrees of freedom
Multiple R-squared: 0.7689, Adjusted R-squared: 0.7401
F-statistic: 26.62 on 3 and 24 DF, p-value: 8.279e-08
Utilize o método de seleção de variáveis backward (eliminacão progressiva) para selecionar um modelo de regressão com subconjunto de variáveis. Comente sobre o modelo final. O método de seleção de variáveis backward (eliminacão progressiva) é um método de seleção de variáveis que começa com um modelo completo (com todas as variáveis preditoras) e remove variáveis preditoras uma a uma, com base em critérios estatísticos, até que não haja mais variáveis insignificativas a serem removidas.
# Modelo completo# Modelo máximo a ser considerado.# O modelo máximo pode ser um modelo completo (com todas as variáveis preditoras)modelo_completo <-lm(y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9,data = tabela1)# Backward eliminationmodelo_backward <-step(modelo_completo,direction ="backward")
Call:
lm(formula = y ~ x2 + x7 + x8, data = tabela1)
Residuals:
Min 1Q Median 3Q Max
-3.2379 -0.6299 -0.1298 1.0467 3.7201
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.7922801 8.2481313 -0.096 0.92427
x2 0.0034385 0.0007194 4.780 7.27e-05 ***
x7 0.1855367 0.0917292 2.023 0.05439 .
x8 -0.0049115 0.0013403 -3.665 0.00122 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.774 on 24 degrees of freedom
Multiple R-squared: 0.7689, Adjusted R-squared: 0.7401
F-statistic: 26.62 on 3 and 24 DF, p-value: 8.279e-08
Utilize o método de seleção de variáveis stepwise (passo a passo) para selecionar um modelo de regressão com subconjunto de variáveis. Comente sobre o modelo final. O método de seleção de variáveis stepwise (passo a passo) é um método de seleção de variáveis que combina os métodos forward e backward. Ele começa com um modelo nulo (sem variáveis preditoras) e adiciona variáveis preditoras uma a uma, com base em critérios estatísticos, mas também pode remover variáveis preditoras que se tornam não significativas à medida que novas variáveis são adicionadas.
Call:
lm(formula = y ~ x8 + x2 + x7, data = tabela1)
Residuals:
Min 1Q Median 3Q Max
-3.2379 -0.6299 -0.1298 1.0467 3.7201
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.7922801 8.2481313 -0.096 0.92427
x8 -0.0049115 0.0013403 -3.665 0.00122 **
x2 0.0034385 0.0007194 4.780 7.27e-05 ***
x7 0.1855367 0.0917292 2.023 0.05439 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.774 on 24 degrees of freedom
Multiple R-squared: 0.7689, Adjusted R-squared: 0.7401
F-statistic: 26.62 on 3 and 24 DF, p-value: 8.279e-08
Usando o método de validação cruzada leave-one-out (LOOCV), estime o erro de previsão para os modelos (1) com as variáveis regressoras \(x_2\), \(x_7\) e \(x_8\) e (2) com as variáveis regressoras \(x_2\) e \(x_8\). O que você conclui? O método de validação cruzada leave-one-out (LOOCV) é uma técnica de validação cruzada onde cada observação do conjunto de dados é usada como um ponto de teste, enquanto todas as outras observações são usadas como pontos de treinamento. Isso é repetido para cada observação, e o erro médio de previsão é calculado. Existe também o método leave-p-out.
library(boot)
Attaching package: 'boot'
The following object is masked from 'package:car':
logit
Usando o método de validação cruzada k-fold, com \(k = 3\), estime o erro de previsão para os modelos (1) com as variáveis regressoras \(x_2\), \(x_7\) e \(x_8\) e (2) com as variáveis regressoras \(x_2\) e \(x_8\). O que você conclui? O método de validação cruzada k-fold é uma técnica de validação cruzada onde o conjunto de dados é dividido em k subconjuntos (folds). O modelo é treinado em k-1 folds e testado no fold restante. Isso é repetido k vezes, e o erro médio de previsão é calculado.