关联度量与统计工具

假设是一家饮料制造公司的老板,收集了过去一年的成本和销售记录。现在的问题在于,能否从数据中推断出销售和成本之间是否存在某种关系。换句话说,降低价格是否有助于增加销售额,或者它对销售根本没有影响?为了回答这个问题,需要一些统计工具来衡量变量之间的关系。

目录

  • 什么是协方差
  • 什么是相关性指标
  • 相关性指标的类型
  • 皮尔逊相关性
  • 斯皮尔曼秩相关性
  • 肯德尔秩相关性
  • 点二系列相关性

什么是协方差

协方差是一种统计工具,用于量化随机变量与其期望值(均值)之间的总变异量。简而言之,它是衡量两个随机变量之间线性关系的指标。它可以取任何正值和负值。

正协方差:表示两个变量倾向于朝相同方向移动,即如果增加一个变量的值,另一个变量的值也会增加。

协方差:表示它们之间没有线性关系。

负协方差:表示两个变量倾向于朝相反方向移动,即如果增加一个变量的值,另一个变量的值会减少,反之亦然。

两个变量X和Y之间的协方差可以使用以下公式计算:

Cov(X, Y) = Σ[(xi - x̄)(yi - ȳ)] / n

注意:在计算总体协方差时,使用n作为分母,而在计算样本协方差时,使用n-1作为分母。

协方差的局限性:协方差的幅度并不表示它们关系的强度,所以重要的是符号,无论是正还是负,这告诉关系的性质。如果转换或缩放变量X和Y的测量值,那么Cov(X', Y') ≠ Cov(X, Y)不应该发生。协方差没有捕捉到两个变量之间的非线性关系。

现在,让使用Python库来计算两个变量之间的协方差。

import numpy as np a = np.random.rand(10) b = np.random.rand(10) np.cov(a, b)

输出显示协方差值为-0.001,因此可以得出它们之间没有线性关系。

什么是相关性指标?

相关性也衡量两个变量之间的关系,以及其幅度定义了变量之间的强度。它范围从-1到1,通常用r表示。

完全正相关:当相关值恰好为1时。

正相关:当相关值落在0到1之间时。

无相关:当相关值为0时。

负相关:当相关值落在-1到0之间时。

完全负相关:当相关值恰好为-1时。

下图展示了线性关系的图形表示。

相关性指标的类型

相关性指标有多种,包括皮尔逊相关性、斯皮尔曼秩相关性、肯德尔秩相关性和点二系列相关性。

皮尔逊相关性

皮尔逊相关性也称为皮尔逊积矩相关系数,是一种标准化的协方差测量。它也衡量两个变量之间的线性关系,并且不能捕捉两个变量之间的非线性关系。皮尔逊相关性假设两个变量都是正态分布的。它可以用于名义变量或连续变量。

两个变量X和Y之间的皮尔逊相关系数可以使用以下公式计算:

r = Σ[(xi - x̄)(yi - ȳ)] / sqrt(Σ(xi - x̄)^2 * Σ(yi - ȳ)^2)

皮尔逊相关性的局限性:它不能捕捉两个变量之间的非线性关系。通常,不使用皮尔逊相关系数来处理序数变量(其中序列很重要)。

现在,让使用Python库来计算两个变量之间的皮尔逊相关系数。

from scipy.stats import pearsonr import numpy as np a = np.random.normal(size=10) b = np.random.normal(size=10) pearsonr(a, b)

输出显示皮尔逊相关性为-0.05,因此可以得出它们之间没有线性关系。

斯皮尔曼秩相关性

斯皮尔曼秩相关性是一种非参数(对分布没有先验假设)的测量方法,用于计算序数变量或连续变量之间的相关系数。斯皮尔曼秩相关性可以捕捉线性或非线性关系。

两个变量X和Y之间的斯皮尔曼秩相关系数可以使用以下公式计算:

# 斯皮尔曼秩相关性的计算较为复杂,通常使用统计软件或库来完成

现在,让使用Python库来计算两个变量之间的斯皮尔曼秩相关系数。

import numpy as np from scipy.stats import spearmanr a = np.random.rand(10) b = np.random.rand(10) spearmanr(a, b)

输出显示斯皮尔曼相关性为0.15,因此可以得出它们之间存在正相关关系。

肯德尔秩相关性

肯德尔秩相关性,有时称为肯德尔tau系数,是一种非参数测量方法,用于计算序数变量之间的秩相关性。它也可以捕捉线性或非线性关系。肯德尔tau有三种不同的变体,分别是tau-a、tau-b和tau-c。

两个变量X和Y之间的肯德尔秩相关系数可以使用以下公式计算:

# 肯德尔秩相关性的计算较为复杂,通常使用统计软件或库来完成

现在,让使用Python库来计算两个变量之间的肯德尔tau相关系数。

import numpy as np from scipy.stats import kendalltau a = np.random.rand(10) b = np.random.rand(10) kendalltau(a, b)

输出显示肯德尔相关性为-0.19,因此可以得出它们之间存在负相关关系。

点二系列相关性用于一个变量是二元的(二进制)而另一个变量是连续的情况。它也可以捕捉线性或非线性关系。它用r_pb表示。

二元变量:如果一个变量只能取二元值,如正面或反面,男性或女性,那么这样的变量被称为二元变量。

两个变量X和Y之间的点二系列相关系数可以使用以下公式计算:

# 点二系列相关性的计算较为复杂,通常使用统计软件或库来完成

现在,让使用Python库来计算两个变量之间的点二系列相关系数。

import numpy as np from scipy.stats import pointbiserialr a = np.random.rand(10) b = np.random.rand(10) pointbiserialr(a, b)

输出显示点二系列相关性为0.305,因此可以得出它们之间存在正相关关系。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485