【问题标题】:Combination matrices with conditions and weighted data in RR中带有条件和加权数据的组合矩阵
【发布时间】:2018-09-27 20:31:04
【问题描述】:

假设我有 5 种疾病(a、b、c、d、e)。询问样本中的每个人是否患有每种疾病,然后分配权重(W)。我需要确定每种疾病组合在人群中的比例。这将涉及人们对任一疾病组合回答 (1,1) 的组合。

df <- data.frame(
  a = c(1, 1, 0, 0),
  b = c(1, 1, 0, NA),
  c = c(0, 1, NA, 1),
  d = c(1, 1, 0, 1  ),
  e = c(1, 1, 1, 0  ),
  W = c(1.5,3.5,2.5,2.3))

df
  a  b  c d e   W
1 1  1  0 1 1 1.5
2 1  1  1 1 1 3.5
3 0  0 NA 0 1 2.5
4 0 NA  1 1 0 2.3

我已经能够弄清楚这个得到一个矩阵:

DisDyads <- apply (df, 2, function (x) colSums (df == 1 & x == df, na.rm = TRUE))

  a b c d e W
a 2 2 1 2 2 0
b 2 2 1 2 2 0
c 1 1 2 2 1 0
d 2 2 2 3 2 0
e 2 2 1 2 3 0
W 0 0 0 0 0 0

我如何将这些变成比例?

这是矩阵输出的第一行和第二行在适当的条件和比例下的外观示例:

   a    b    c     d    e    W
a  0.5  0.5  0.25  0.5  0.5  0
b  0.5  0.5  0.25  0.5  0.5  0

接下来,我还需要在确定总体水平上每种组合的比例时考虑权重。

有人可以帮我解决这个问题吗?如果我试图寻找三种疾病组合的比例怎么办?例子。具有a,b,c和a,b,d等的人的比例..

我非常感谢任何帮助。提前致谢!

【问题讨论】:

  • 计算这些比例(和权重)的算法是什么?
  • 这只是简单地将每个人乘以他们的体重,然后除以 (nrow(df)*sum(df$W) @RomanLuštrik
  • 您可能需要以不同的方式进行分析,和/或以不同的方式查看您的数据。你的数据不是独立的,所以你不能这样对待它们。您正在分别计算每种疾病的发生率,这是您不应该的,您没有仅发生一种疾病。想出你的组合(为了简短起见,我只显示 a、b 和 c):a, b, c, ab, ac, bc, abc。然后您对每位患者的回复:1, 2, 3, 4。您不能在组合矩阵中描述这一点,它显示成对组合。
  • 在这种情况下,我没有单独计算每种疾病的发生率。 a 和 a 一起出现在矩阵中只是意味着这是患有该疾病的比例,即使您可能患有另一种疾病。一个一个地进行组合是非常低效的。这只是一个例子……我的实际数据集有更多的疾病。 @Anonymouscoward

标签: r matrix combinations weighted


【解决方案1】:

哦,我想我现在明白了。您想基本上制作一个交叉表查找表。这并不容易展示。它会很大,因为您需要显示所有组合,并且有很多重复。

就使它们成比例而言,您只需将整个数据框(col W 除外)除以 nrow,然后将行乘以比例权重 (W/sum(W)):

df[,1:5] <- df[,1:5]/nrow(df)

要增加你的权重,需要一些操作。

df <- as.matrix(df)
df <- as.data.frame(t(t(df[,1:5]*(df[,6] / sum(df[,6]))))) # this subsets your data, and multiplies each cell in cols 1:5 by the proportional weights.


       a          b          c          d          e
1 0.03826531 0.03826531 0.00000000 0.03826531 0.03826531
2 0.08928571 0.08928571 0.08928571 0.08928571 0.08928571
3 0.00000000 0.00000000         NA 0.00000000 0.06377551
4 0.00000000         NA 0.05867347 0.05867347 0.00000000

我认为你可以得到你的加权值,然后从那里开始。组合不应该只是相加吗?

【讨论】:

  • 我已经能够使用以下方法来获得每种疾病组合的加权比例: Dyads
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-10
相关资源
最近更新 更多