Ниже приведен пошаговый пример воспроизведения таблицы minitab для набора данных ggplot2::diamonds
. Я включил детали / объяснения в максимально возможной степени.
Обратите внимание, что, насколько я могу судить, результаты, показанные в таблице minitab, не зависят / не связаны с результатами специального теста Тьюки; они основаны на результатах анализа отклонений. Тест честных значимых различий (HSD) Тьюки - это специальный тест, который устанавливает, какие сравнения (из всех возможных парных сравнений средних групп) (честно) статистически значимы, учитывая результаты ANOVA.
Для того чтобы воспроизвести сводную таблицу «средняя группировка» мини-таблиц (см. первую таблицу «Интерпретация результатов: шаг 3» Экспресс-поддержки minitab ), я рекомендую (повторно) запустить линейная модель для извлечения средних и доверительных интервалов. Обратите внимание, что именно так aov
подходит для анализа дисперсионной модели для каждой группы.
Fit линейная модель
Мы указываем смещение 0
, чтобы получить абсолютные оценки для каждой группы (а не оценки изменений относительно смещения).
fit <- lm(price ~ 0 + cut, data = diamonds)
coef <- summary(fit)$coef;
coef;
# Estimate Std. Error t value Pr(>|t|)
#cutFair 4358.758 98.78795 44.12236 0
#cutGood 3928.864 56.59175 69.42468 0
#cutVery Good 3981.760 36.06181 110.41487 0
#cutPremium 4584.258 33.75352 135.81570 0
#cutIdeal 3457.542 27.00121 128.05137 0
Определение семейных групп
Чтобы получить нечто похожее на «семейные группировки» minitab, мы используем следующий подход:
- Рассчитать доверительные интервалы для всех параметров
- Выполнение анализа иерархической кластеризации данных доверительного интервала для всех параметров
- Вырежьте получившееся дерево на высоте, соответствующей стандартному отклонению элементов конфигурации. Это даст нам группировку оценок параметров на основе их доверительных интервалов. Это несколько эмпирический подход, но он оправдан, поскольку дерево измеряет попарные расстояния между доверительными интервалами, и стандартное отклонение можно интерпретировать как евклидово расстояние .
Мы начнем с вычисления доверительного интервала и кластеризации полученной матрицы расстояний, используя иерархическую кластеризацию, используя полную связь.
CI <- confint(fit);
hc <- hclust(dist(CI));
Проверяем кластерную дендрограмму
plot(hc);
![enter image description here](https://i.stack.imgur.com/pCWlO.png)
Теперь мы срезаем дерево на высоте, соответствующей стандартному отклонению всех элементов конфигурации для всех оценок параметров, чтобы получить «группировки по семействам»
grps <- cutree(hc, h = sd(CI))
Подвести итоги
Наконец, мы сопоставляем все количества и сохраняем результаты в таблице, аналогичной таблице minitab «средняя группировка».
library(tidyverse)
bind_cols(
cut = rownames(coef),
N = as.integer(table(fit$model$cut)),
Mean = coef[, 1],
Groupings = grps) %>%
as.data.frame()
# cut N Mean Groupings
#1 cutFair 1610 4358.758 1
#2 cutGood 4906 3928.864 2
#3 cutVery Good 12082 3981.760 2
#4 cutPremium 13791 4584.258 1
#5 cutIdeal 21551 3457.542 3
Обратите внимание на почти идеальное совпадение наших результатов с результатами из таблицы "средних групп" minitab: cut = Ideal
сам по себе в группе 3
(группа C
в таблице minitab), а Fair
+ Premium
общая группа 1
(minitab: группа A
) и Good
+ Very Good
общая группа 2
(minitab: группа B
).