#r #statistics
#r #Статистика #bonferroni
Вопрос:
У меня проблема с поиском значения LSD при использовании процедуры Бонферрони. Он возвращает значение NULL, и не могли бы вы, пожалуйста, помочь мне с этим? Большое спасибо.
library(agricolae)
# Input the treatments and responses
trt <- c(rep("P", 4), rep("T", 4), rep("S", 4), rep("E", 4), rep("C",4))
response <- c(29.6, 24.3, 28.5, 32, 27.3, 32.6, 30.8, 34.8, 5.8, 6.2, 11, 8.3,
21.6, 17.4, 18.3, 19, 29.2, 32.8, 25, 24.2)
trt <- as.factor(trt)
df <- data.frame(trt, response)
model <- aov(response ~ trt, data = df)
out <- LSD.test(model, "trt", p.adj = "bonferroni")
out
# Obtain the LSD value
out$statistics$LSD
Комментарии:
1. Забавный факт:
rep(c("P", "T", "S", "E", "C"), each=4)
это более простой способ сделатьtrt
2. Запустите
str(out)
, и вы увидите, что вы получаетеNULL
, потомуout$statistics$LSD
что не является элементомout
. Похоже, чтоLSD
это не статистика, предоставленнаяagricolae::LSD.test()
.
Ответ №1:
К сожалению, это не очень хорошо документировано. Вы можете проверить код для LSD.test, и там у вас есть:
if (length(nr) == 1 amp; p.adj == "none")
statistics <- data.frame(statistics, t.value = Tprob,
LSD = LSD)
if (length(nr) == 1 amp; p.adj != "none")
statistics <- data.frame(statistics, t.value = Tprob,
MSD = LSD)
Поэтому, когда ваш p.adjust не "none"
соответствует, он изменяет имя столбца MSD
, что означает минимальную существенную разницу. Вы также можете переключиться на консоль (опция console =TRUE), чтобы увидеть это.