假设是一家饮料制造公司的老板,收集了过去一年的成本和销售记录。现在的问题在于,能否从数据中推断出销售和成本之间是否存在某种关系。换句话说,降低价格是否有助于增加销售额,或者它对销售根本没有影响?为了回答这个问题,需要一些统计工具来衡量变量之间的关系。
协方差是一种统计工具,用于量化随机变量与其期望值(均值)之间的总变异量。简而言之,它是衡量两个随机变量之间线性关系的指标。它可以取任何正值和负值。
正协方差:表示两个变量倾向于朝相同方向移动,即如果增加一个变量的值,另一个变量的值也会增加。
零协方差:表示它们之间没有线性关系。
负协方差:表示两个变量倾向于朝相反方向移动,即如果增加一个变量的值,另一个变量的值会减少,反之亦然。
两个变量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,因此可以得出它们之间存在正相关关系。