在R语言中计算组内被试Pearson相关系数的实现方法
按参与者计算组内Pearson相关系数
实现思路
针对每个参与者(按id分组),单独计算其value 1与value 2的Pearson相关系数,用Python的pandas可以快速实现。
具体步骤
1. 构建/读取数据框
先把你的数据转换成pandas数据结构(如果是从文件读取,直接用pd.read_csv()即可):
import pandas as pd # 模拟你的数据 df = pd.DataFrame({ 'id': [1, 1, 2, 2, 3, 3], 'value 1': [2.65, 5.89, 1.65, 6.89, 5.89, 4.23], 'value 2': [7.98, 10.84, 2.67, 4.89, 6.98, 1.98] })
2. 分组计算相关系数
通过groupby按id分组,对每组的两个数值列计算Pearson相关:
# 定义分组计算函数 def get_pearson_corr(group): return group['value 1'].corr(group['value 2']) # 默认就是Pearson相关,可省略method参数 # 执行分组计算并整理结果 corr_results = df.groupby('id').apply(get_pearson_corr).reset_index(name='pearson_corr')
3. 查看结果
运行后corr_results会输出每个参与者的相关系数:
id pearson_corr 0 1 1.0 1 2 1.0 2 3 1.0
注:因为每个参与者只有2个数据点,变量变化完全线性,所以相关系数均为1.0;若有更多数据点,会输出实际的相关值。
内容的提问来源于stack exchange,提问作者Sofia
相关产品推荐
相关产品推荐

