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