【发布时间】:2021-07-15 22:52:49
【问题描述】:
我有一个数据集,其中包含两个不同的组(A 和 B),属于 3 个不同的类别(1、2、3):
library(tidyverse)
set.seed(100)
df <- tibble(Group = sample(c(1, 2, 3), 20, replace = T),Company = sample(c('A', 'B'), 20, replace = T))
我想提出一个衡量跨时间跨度组组成特征的指标。
到目前为止,我使用了一个基于香农指数的指数,它给出了在 0 和 1 之间变化的异质性度量。1 是完全异质的(每个组的相等表示),0 是完全同质的(只有 1 个组是代表):
df %>%
group_by(Group, Company) %>%
summarise(n=n()) %>%
mutate(p = n / sum(n)) %>%
mutate(Shannon = -(p*log2(p) + (1-p)))
产量:
Group Company n p Shannon
<dbl> <chr> <int> <dbl> <dbl>
1 A 2 0.6666667 0.05664167
1 B 1 0.3333333 -0.13834583
2 A 4 0.5000000 0.00000000
2 B 4 0.5000000 0.00000000
3 A 1 0.1111111 -0.53667500
3 B 8 0.8888889 0.03993333
但是,我正在寻找 [-1, +1] 之间的索引。其中,当某个时间点仅存在组 A 时,索引产生 -1,当某个时间点仅存在组 B 时,索引产生 +1,0 表示相等。
如何创建这样的索引?我曾将 Moran 的 I 等措施视为灵感,但它们似乎不适合需要。
【问题讨论】:
标签: r dplyr statistics