Skip to content
Snippets Groups Projects
Commit dd0df83f authored by Walmes Marques Zeviani's avatar Walmes Marques Zeviani
Browse files

Adds content about non parametric analysis.

parent c20460de
No related branches found
No related tags found
No related merge requests found
...@@ -76,3 +76,106 @@ aggregate(breaks ~ trt, ...@@ -76,3 +76,106 @@ aggregate(breaks ~ trt,
FUN = mean) FUN = mean)
``` ```
```{r}
# Solução baseada no arquivo `compact_letter_display.r` no tópico abaixo
# https://www.researchgate.net/post/How_to_denote_the_letters_in_mean_on_the_basis_of_p_value_in_R-console
library(dunn.test)
ls("package:dunn.test")
# Documentação da função.
help(dunn.test, help_type = "html")
# Um conjunto de dados para usar.
str(chickwts)
# Ajusta o modelo.
m0 <- lm(weight ~ feed, data = chickwts)
anova(m0)
# Aplica o teste de Dunn.
dunn <- with(chickwts,
dunn.test(weight, feed, method = "sidak"))
str(dunn)
# NOTE: o teste dá a matriz de p-valores para os contrastes par a par.
# Como obter o resumo compacto por letras?
# Criar a matriz com os p-valores.
k <- nlevels(chickwts$feed)
pval_matrix <- matrix(0, nrow = k, ncol = k)
pval_matrix[upper.tri(pval_matrix)] <- dunn$P.adjusted
pval_matrix <- t(pval_matrix)
pval_matrix[upper.tri(pval_matrix)] <- dunn$P.adjusted
diag(pval_matrix) <- NA
colnames(pval_matrix) <- levels(chickwts$feed)
rownames(pval_matrix) <- levels(chickwts$feed)
# Onde estão as diferenças?
round(pval_matrix, digits = 5)
(pval_matrix < 0.05) * 1
library(multcompView)
# Determina das letras.
cld <- multcompLetters(pval_matrix,
compare = "<",
threshold = 0.05,
Letters = letters,
reversed = FALSE)
cld
# Organiza em uma tabela.
cld <- data.frame(feed = names(cld$Letters),
cld = unname(cld$Letters))
cld
# Junta com a médias.
tb_means <- aggregate(weight ~ feed, data = chickwts, FUN = mean)
tb_means <- merge(tb_means, cld, by = "feed")
tb_means <- tb_means[order(tb_means$weight), ]
# Letras diferentes, rejeita hipótese nula de que o contraste é 0. Dá
# para ordenar as letras.
source("https://raw.githubusercontent.com/walmes/wzRfun/master/R/pairwise.R")
# Ordena as letras para facilitar.
tb_means$cld_fix <- with(tb_means,
ordered_cld(let = cld, means = weight))
tb_means
# DONE!
# Tem como fazer de outro jeito sem gerar a matriz de p-valores.
dunn_pairs <- dunn$P.adjusted
names(dunn_pairs) <- dunn$comparisons
# Ajusta o modelo.
m0 <- lm(weight ~ feed, data = chickwts)
anova(m0)
# Teste de Tukey.
tk <- TukeyHSD(aov(m0))
tk
tk_pairs <- tk[[1]][, "p adj"]
library(multcompView)
multcompLetters(tk_pairs)
str(dunn)
dunn_pairs <- dunn$P.adjusted
names(dunn_pairs) <- dunn$comparisons
# Tem que inverter os nomes no contraste: "A - B" --> "B-A".
dunn_pairs <- dunn$P.adjusted
names(dunn_pairs) <- gsub(x = dunn$comparisons,
pattern = "^(.*) - (.*)$",
replacement = "\\2-\\1")
multcompLetters(dunn_pairs)
```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment