gpt4 book ai didi

python - 多个指标的相关性

转载 作者:行者123 更新时间:2023-12-05 04:51:23 25 4
gpt4 key购买 nike

我是 Python 新手,在计算多个参与者的相关系数时遇到了问题。我有一个像这样的数据框:

|Index|Participant|Condition|ReactionTime1|ReactionTime2|
|:---:|:---------:|:-------:|:-----------:|:-------------:|
|1|1|A|320|542|
|2|1|A|250|623|
|3|1|B|256|547|
|4|1|B|301|645|
|5|2|A|420|521|
|6|2|A|123|456|
|7|2|B|265|362|
|8|2|B|402|631|

我想知道如何计算每个条件下参与者 1 和参与者 2 的 react 时间 1 和 react 时间 2 之间的相关系数。我的真实数据集比这大得多(每个参与者有数百个 react 时间,而且参与者也很多)。有没有一种通用的方法来计算这个并将 coeff 放在像这样的新 df 中?

|Index|Participant|Condition|Correlation coeff|
|:---:|:---------:|:-------:|:-----------:|
|1|1|A|?|
|2|1|B|?|
|3|2|A|?|
|4|2|B|?|

谢谢:)

最佳答案

您可以尝试使用 groupby 并使用 np.corrcoef apply,然后使用 reset_index:

result = (df.groupby(["Participant", "Condition"])
.apply(lambda gr: np.corrcoef(gr["ReactionTime1"], gr["ReactionTime2"])[0, 1])
.reset_index(name="Correlation coeff"))

给出

   Participant Condition  Correlation coeff
0 1 A -1.0
1 1 B 1.0
2 2 A 1.0
3 2 B 1.0

我们对 np.corrcoef 的返回值使用 [0, 1],因为它返回一个对称矩阵,其中对角线元素标准化为 1,非对角线元素标准化是相同的,并且每个都给出了所需的系数(因此也可以使用 [1, 0] 进行索引)。也就是说,

array([[1.        , 0.25691558],
[0.25691558, 1. ]])

是一个示例返回值,我们对非对角线条目感兴趣。

为什么它在您的案例中返回所有 +/- 1:由于每个参与者和条件对的每个 react 只有 2 个条目,它们总是完全相关并且符号是通过它们的方向确定的,即如果一个坐标从一个坐标增加到另一个坐标,另一个坐标是增加还是减少。

关于python - 多个指标的相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66968923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com