Я пытаюсь вычислить матрицу расстояний для всех номинальных переменных, используя вероятности c весов, как это было предложено Андербергом (1973: 124-5). Anderberg (1973: 124) утверждает, что «желание придать редким классам дополнительный вес часто встречается в биологической литературе, хотя систематические методы определения таких весов не предлагаются. [...] Поскольку редкие события имеют низкую вероятность, вероятность события не является подходящим весом; однако любая обратная функция вероятности потенциально интересна. '
Я попытаюсь проиллюстрировать ситуацию с помощью простого и небольшого набора данных в R.
var_1 <- c('A', 'A', 'B', 'A')
var_2 <- c('C', 'C', 'D', 'E')
var_3 <- c('G', 'G', 'G', 'F')
print(test.df <- data.frame(var_1, var_2, var_3))
Это приводит к следующему кадру данных
var_1 var_2 var_3
1 A C G
2 A C G
3 B D G
4 A E F
Мы можем вычислить матрицу расстояний, используя коэффициент Гауэра, следующим образом.
library(cluster)
test.dist <- daisy(test.df, metric="gower")
round(test.dist,2)
Это дает следующую матрицу.
1 2 3
2 0.00
3 0.67 0.67
4 0.67 0.67 1.00
Мы можем видеть, например, что наблюдения 1 и 2 идентичны по трем переменным, в результате чего расстояние равно 0. Наблюдения 1 и 3 не являются; они различаются по двум из трех переменных (var_1
и var_2
), в результате чего расстояние 2/3 = 0,67.
Теперь моя проблема заключается в следующем. В кадре данных мы видим, что значение G
в var_3
составляет 75% данных. Я хотел бы использовать эту информацию, чтобы скорректировать вклад в подобие по этой переменной. Другими словами, поскольку вероятность G
в var_3 в три раза выше, чем вероятность F
, два наблюдения (строки), содержащие F
в этой переменной, следует считать более похожими, чем два наблюдения, содержащие значение G
.
Просто для обеспечения некоторого контекста: некоторые переменные в моем реальном наборе данных имеют сильно искаженные распределения: одно значение составляет 80% всех наблюдений по этой переменной, а оставшиеся 20% распределены по три других значения.
(я знаю, что могу добавить весовые коэффициенты к функции ромашки, используя параметр weights
, но эти весовые коэффициенты не зависят от распределения значения объекта, скорее, эти весовые коэффициенты являются постоянными для всех значений в переменной.)