Как рассчитать несходство Брея-Кертиса в R

Как рассчитать несходство Брея-Кертиса в R

Несходство Брея-Кертиса — это способ измерить несходство между двумя разными сайтами.

Он часто используется в экологии и биологии для количественной оценки того, насколько различаются два участка с точки зрения видов, обитающих на этих участках.

Он рассчитывается как:

БК ij = 1 – (2*C ij ) / (S i + S j )

куда:

  • C ij : Сумма меньших значений для видов, обнаруженных на каждом участке.
  • S i : общее количество экземпляров, подсчитанных на участке i .
  • S j : общее количество экземпляров, подсчитанных на участке j .

Несходство Брея-Кертиса всегда находится в диапазоне от 0 до 1, где:

  • 0 указывает на то, что два сайта имеют нулевое различие. Другими словами, они имеют одинаковое количество видов каждого типа.
  • 1 указывает на то, что два сайта имеют полное несходство. Другими словами, они не принадлежат к одному и тому же типу видов.

Например, предположим, что ботаник выходит и подсчитывает количество пяти различных видов растений (A, B, C, D и E) в двух разных местах.

В следующей таблице приведены собранные ею данные:

Используя эти данные, она может рассчитать несходство Брея-Кертиса следующим образом:

Несходство Брея-Кертиса

Подставив эти числа в формулу несходства Брея-Кертиса, мы получим:

  • БК ij = 1 – (2*C ij ) / (S i + S j )
  • БК ij = 1 – (2*15) / (21 + 24)
  • БК ij = 0,33

Различие Брея-Кертиса между этими двумя сайтами составляет 0,33 .

В следующем примере показано, как вычислить несходство Брея-Кертиса в R.

Пример: вычисление несходства Брея-Кертиса в R

Во-первых, давайте создадим следующий фрейм данных в R для хранения наших значений данных:

#create data frame
df <- data.frame(A=c(4, 3),
 B=c(0, 6),
 C=c(2, 0),
 D=c(7, 4),
 E=c(8, 11))

#view data frame
df

 A B C D E
1 4 0 2 7 8
2 3 6 0 4 11

Мы можем использовать следующий код для вычисления несоответствия Брея-Кертиса между двумя строками фрейма данных:

#calculate Bray-Curtis dissimilarity
sum( apply(df, 2, function (x) abs ( max (x)- min (x)))) / sum ( rowSums(df))

[1] 0.3333333

По-разному Брей-Кертис оказывается равным 0,33 .

Это соответствует значению, которое мы рассчитали ранее вручную.

Примечание.Эта формула будет работать только в том случае, если каждая строка во фрейме данных представляет отдельный сайт.

Дополнительные ресурсы

В следующих руководствах объясняется, как рассчитать другие показатели сходства в R:

Как рассчитать сходство Жаккара в R
Как рассчитать сходство косинусов в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.