Pearson's Correlation Coefficient

Pearson相关系数用来衡量两个数据集合之间的相似性。比如在一个关于电影的资料网站中,很多用户都可能对其中的电影进行打分。Pearson相关系数可以用来帮助更好的找到兴趣相似的用户,从而进行相关的推荐。这种推荐的基本思路是如果A和B兴趣相似,那么A喜欢看的,B就有很大可能会喜欢看,就可以把A的喜欢看的推荐给B。

假设电影库中5部电影,A和B都对其中的部分进行了打分(5分为满分),A的分数是[3, 2, -, 1, 4],B的分数是[5, 3, 3, -, 5],其中“-”表示未打分。那么A和B的Pearson相关系数是0.866,说明两个人的兴趣是比较相似的。

Pearson相关系数的一个优点是可以避免评分等级膨胀(grade inflation)的问题,也就是说有的用户可能倾向于对所有的电影都给比较高的分数,而有的用户则会比较苛刻,给分都比较低。对于这种情况,Pearson相关系数可以处理。

Pearson相关系数的具体计算公式为:

一个简单的例子:

X是[1, 2, 3],Y是[2, 5, 6],结果是0.9608。

我用JavaScript写了一个简单的计算方法,仅为示意。

var d1 = [3, 2, -1, 1, 4], d2 = [5, 3, 3, -1, 5];

function pearson(d1, d2) {
  var commonItems = {}, num = 0;
  for (var i = 0; i < d1.length && i < d2.length; i++) {
	if (d1[i] !== -1 && d2[i] !== -1) {
	    commonItems[i] = true;
		num++;
	}
  }
  if (num == 0) {
    return 0;
  }
  
  function sum(array, indexFilter, operator) {
    var s = 0;
	for (var i = 0; i < array.length; i++) {
	  if (indexFilter[i]) {
	    s += (operator && operator(array[i])) || array[i];
	  }
	}
	return s;
  }
  var sum1 = sum(d1, commonItems);
  var sum2 = sum(d2, commonItems);
  var square = function(i) {
    return i * i;
  };
  var sum1Square = sum(d1, commonItems, square);
  var sum2Square = sum(d2, commonItems, square);
  var sumProduct = 0;
  for (i in commonItems) {
	sumProduct += d1[i] * d2[i];
  }
  var top = sumProduct - (sum1 * sum2 / num);
  var bottom = Math.sqrt((sum1Square - square(sum1) / num)*(sum2Square - square(sum2) / num));
  return bottom == 0 ? 0 : top / bottom;
}

pearson(d1, d2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 皮尔逊相关系数(Pearson correlation coefficient)是一种用于衡量两个变量之间线性相关程度的统计量。它的取值范围在-1到1之间,其中-1表示完全负相关,表示无相关,1表示完全正相关。皮尔逊相关系数是最常用的相关系数之一,广泛应用于各种领域的数据分析和建模中。 ### 回答2: 皮尔逊相关系数是用来评价两个连续变量之间线性关系的统计量。当我们需要对两个变量之间的关系进行研究时,皮尔逊相关系数是最常用的一种方法。 皮尔逊相关系数的取值范围在-1到1之间。当取值为正数时,代表着两个变量之间存在正相关关系;当取值为负数时,代表着两个变量之间存在负相关关系;取值为0时,代表两个变量之间不存在线性关系。 在实际应用中,我们可以通过皮尔逊相关系数来进行一些研究。比如,我们可以通过皮尔逊相关系数来评价两个产品之间的关联程度,以及某个广告营销策略的有效性等等。 当我们对两个变量之间的关系进行研究时,我们可以通过以下步骤来计算皮尔逊相关系数: 1、计算出两个变量的平均值。 2、计算出两个变量中每个观察值与其所在变量平均值之间的差。 3、将第2步得到的差值相乘。 4、将第3步得到的值相加。 5、将第4步得到的值除以两个变量中观察值的个数。 6、将第5步得到的值除以两个变量标准差的乘积。 通过以上步骤,我们就可以得到两个变量之间的皮尔逊相关系数。 需要注意的是,皮尔逊相关系数只能评价两个变量之间的线性关系。如果两个变量之间存在非线性关系,那么皮尔逊相关系数将无法反映真实情况。此时我们需要使用其他的相关性系数来评价两个变量之间的关系。 ### 回答3: 皮尔逊相关系数(Pearson correlation coefficient),也被称为皮尔逊相关度量,是一种用来度量两个变量之间线性关系强度和方向的统计量。它是通过计算两个变量之间的协方差除以它们各自的标准差的乘积得到的,可以用一个范围从-1到1的数字来表示。 当相关系数为1时,表示两个变量之间具有完全正相关性,即它们的变化趋势完全一致,同时也意味着它们的散布图呈现出一个向上的直线。当相关系数为-1时,表示两个变量之间具有完全负相关性,即它们的变化趋势完全相反,同时也意味着它们的散布图呈现出一个向下的直线。而当相关系数为0时,表示两个变量之间不存在线性关系。 皮尔逊相关系数广泛应用于社会科学领域,例如心理学、社会学和经济学等。它可以用来分析两种变量之间的关系,例如收入和教育水平之间的关系等。此外,皮尔逊相关系数也可以用来处理计算机科学、生物学和医学领域的数据,例如识别基因之间的关系等。 需要注意的是,皮尔逊相关系数只能用来度量两个变量之间线性关系的强度和方向,而对于非线性关系的变量,它的效果则会比较弱。同时,也要注意变量之间只因为具有高相关性就一定存在因果关系,因为相关性只是显示两个变量之间存在联结的度量,并不能用来证明它们之间的因果关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值