From 87c5d12eec64ae5d9ebb345515610cd025abac81 Mon Sep 17 00:00:00 2001
From: Walmes Zeviani <walmes@ufpr.br>
Date: Fri, 18 Sep 2020 12:29:23 -0300
Subject: [PATCH] Adds content for a new chapter.

---
 analise-nao-parametrica.Rmd | 78 +++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 analise-nao-parametrica.Rmd

diff --git a/analise-nao-parametrica.Rmd b/analise-nao-parametrica.Rmd
new file mode 100644
index 0000000..4813033
--- /dev/null
+++ b/analise-nao-parametrica.Rmd
@@ -0,0 +1,78 @@
+## Análise não paramétrica
+
+```{r}
+# Dados artificiais para usar de exemplo.
+data(warpbreaks)
+tb <- warpbreaks
+tb$trt <- with(tb, interaction(wool, tension, sep = ""))
+str(tb)
+
+# Equivalente à análise de variância.
+kruskal.test(breaks ~ trt, data = tb)
+
+# Todos as possibilidades de comparação duas a duas.
+p <- as.data.frame(t(combn(levels(tb$trt), m = 2)))
+p
+
+# Aplica o teste.
+u_tests <- apply(p,
+                 MARGIN = 1,
+                 function(pair) {
+                     y1 <- tb$breaks[tb$trt %in% pair[1]]
+                     y2 <- tb$breaks[tb$trt %in% pair[2]]
+                     wt <- wilcox.test(y1, y2)
+                     data.frame(y1 = pair[1],
+                                y2 = pair[2],
+                                W = wt$statistic,
+                                p_value = wt$p.value)
+                 })
+
+tb_test <- do.call(rbind, u_tests)
+
+# Opções de ajuste de pvalor.
+p.adjust.methods
+tb_test$p_val_bonf <- p.adjust(tb_test$p_value, method = "bonferroni")
+tb_test$p_val_fdr <- p.adjust(tb_test$p_value, method = "fdr")
+tb_test
+
+library(multcomp)
+methods(cld)
+getAnywhere(cld.glht)
+getAnywhere(cld.summary.glht)
+
+# Apenas para criar o objeto e trocar o p-valor dentro.
+m0 <- lm(breaks ~ trt, data = tb)
+object <- summary(glht(m0, linfct = mcp(trt = "Tukey")),
+                  test = adjusted(type = "none"))
+str(object)
+
+level <- 0.05
+decreasing <- TRUE
+
+# Verifica se os nomes estão alinhados.
+cbind(names(object$test$pvalues),
+      with(tb_test, paste(y2, y1, sep = " - ")))
+
+# Troca o p-valor.
+object$test$pvalues[with(tb_test, paste(y2, y1, sep = " - "))] <-
+    tb_test$p_val_fdr
+
+# Conteúdo da função `getS3method(cld, class = "glht")`.
+ret <- multcomp:::extr(object)
+signif <- (object$test$pvalues < level)
+lvl_order <- levels(ret$x)[order(tapply(as.numeric(ret$y)[1:length(ret$x)],
+                                        ret$x, mean))]
+ret$signif <- signif
+ret$mcletters <- multcomp:::insert_absorb(signif, decreasing = decreasing,
+                                          comps = ret$comps, lvl_order = lvl_order)
+ret$mcletters$Letters <- ret$mcletters$Letters[levels(ret$x)]
+ret$mcletters$monospacedLetters <- ret$mcletters$monospacedLetters[levels(ret$x)]
+ret$mcletters$LetterMatrix <- ret$mcletters$LetterMatrix[levels(ret$x), ]
+class(ret) <- "cld"
+ret
+
+aggregate(breaks ~ trt,
+          data = transform(tb, trt = reorder(trt, -breaks)),
+          FUN = mean)
+
+```
-- 
GitLab