diff --git a/03-dbc.Rmd b/03-dbc.Rmd
index 157958fa1a51ca38057d0b331dffb125b903be94..e9c22055b79f5c2db549e8539e53ff52dcf81d27 100644
--- a/03-dbc.Rmd
+++ b/03-dbc.Rmd
@@ -414,3 +414,44 @@ str(RamalhoTb3.6)
 
 str(RamalhoTb8.12)
 ```
+
+## Exemplo de intervalo de confiança para a média
+
+Tem que usar a variância residual e não a variância dentro de cada
+grupo.
+
+```{r, eval = FALSE}
+tb <- read.table("http://leg.ufpr.br/~walmes/data/pimentel_batatinha.txt",
+                 header = TRUE, sep = "\t")
+str(tb)
+
+# Calcula a variância dentro de cada tratamento e cria o IC.
+tb_ics <- aggregate(cbind(m = producao) ~ variedade,
+                    data = tb, FUN = mean)
+tb_ics$sd1 <- with(tb, tapply(producao, variedade, FUN = sd))
+tb_ics$n <- with(tb, tapply(producao, variedade, FUN = length))
+
+tb_ics <-
+    transform(tb_ics,
+              lwr1 = m - qt(0.975, n - 1) * sd1/sqrt(n),
+              upr1 = m + qt(0.975, n - 1) * sd1/sqrt(n))
+tb_ics
+
+# IC baseado em modelo.
+m0 <- lm(producao ~ bloco + variedade, data = tb)
+anova(m0)
+
+sd2 <- sqrt(deviance(m0)/df.residual(m0))
+sd2
+
+# Calcula usando o desvio-padrão residual.
+tb_ics <-
+    transform(tb_ics,
+              lwr2 = m - qt(0.975, df.residual(m0)) * sd2/sqrt(n),
+              upr2 = m + qt(0.975, df.residual(m0)) * sd2/sqrt(n))
+tb_ics
+
+# E esse IC é o que a essa função retorna.
+as.data.frame(emmeans::emmeans(m0, specs = ~variedade))
+
+```