数理统计01:线性相关性系数,斯皮尔曼相关性系数计算及详解

本文介绍了三种衡量变量间相关性的统计指标:线性相关系数、斯皮尔曼相关性系数及肯德尔相关性系数。详细解释了如何计算线性相关系数,并通过秩值评估变量之间的单调关系来计算斯皮尔曼相关性系数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在统计学中有三个可以衡量两个变量之间相关程度的指标:线性相关系数(linear correlation coefficient)、斯皮尔曼相关性系数(Spearman’s rank correlation coefficient)、肯德尔相关性系数(kendall correlation coefficient)。

这三个相关性系数可以衡量出两个变量变化的相同程度,现有两个变量X、Y。如果X变大的同时Y也在变大,那么他俩呈现正相关,他俩之间的相关性系数值趋近于+1;如果X变大的同时Y反而在变小,那么他俩呈现负相关,他俩之间的相关性系数值趋近于-1;如果X变大的同时Y没有任何有规律的变化,那么他俩没有相关性,他俩之间的相关性系数值趋近于0;

1.线性相关系数计算

线性相关系数评估两个连续变量之间的线性关系。当一个变量中的变化与另一个变量中的成比例变化相关时,这两个变量具有线性关系。例如,您可能使用 Pearson 相关来评估您生产设施温度的升高是否与巧克力涂层的厚度减少有关。

1.1 计算公式

在这里插入图片描述
分子是两个变量的协方差,协方差是统计学中使用的一种数值,用于描述两个变量间的线性关系。两个变量的协方差越大,它们在一系列数据点范围内的取值所呈现出的趋势就越相近(换句话说,两个变量的曲线距离彼此较近)。
在这里插入图片描述
在上面的公式中,Xi代表的是变量X中的第i个元素,头顶带横的X表示变量X的均值。变量Y与X一致。
线性相关系数的分母是两个变量标准差的乘积,标准差可以描述样本中的数据分布。一个变量的标准差的计算步骤如下:

  • 计算数据的均值
  • 计算数据的方差
  • 对方差开方得到标准差
    在这里插入图片描述

1.2 注意事项

注意,计算线性相关系数的时候分母不能为0,也就是变量X、Y的方差不能为0,什么时候方差为0呢?方差为0意味着所有的数据都必须和平均值相等,那么这些数据都等于平均值。也就是这些数据都相等。

2. 斯皮尔曼相关性系数计算

Spearman 相关评估两个连续或顺序变量之间的单调关系。在单调关系中,变量倾向于同时变化,但不一定以恒定的速率变化。Spearman 相关系数基于每个变量的秩值(而非原始数据)。

Spearman 相关通常用于评估与顺序变量相关的关系。例如,您可能会使用 Spearman 相关来评估员工完成检验练习的顺序是否与他们工作的月数相关。

1.1计算公式

斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制。下面来看一下它的计算公式:
斯皮尔曼相关系数
n表示数据的数量,di 表示两个数据次序的差值:
在这里插入图片描述
比如这里有两个变量X、Y,刚开始这两个变量中的值都是随意排放的,位置从1-6。先将它们进行排序:
斯皮尔曼相关系数计算举例
排序前数字11位置在1,排序后变成了5;490排序前的位置是2,排序后的位置变成了1。以此类推,得到了变量X 和Y排序后的位置。

  • X:(5,1,4,2,3,6)
  • Y:(6,1,5,2,4,3)
    因此第一个位置的di=6-5=1,平方后还是1,以此类推计算所有di平方的加和,然后得到斯皮尔曼相关系数:ρs= 1-6*(1+1+1+9)/6*35=0.657。

2.1 注意事项

我们不用管X和Y这两个变量具体的值到底差了多少,只需要算一下它们每个值所处的排列位置的差值,就可以求出相关性系数了。而且,即便在变量值没有变化的情况下,也不会出现像皮尔森系数那样分母为0而无法计算的情况。

另外,即使出现异常值,由于异常值的秩次通常不会有明显的变化(比如过大或者过小,那要么排第一,要么排最后),所以对斯皮尔曼相关性系数的影响也非常小!由于斯皮尔曼相关性系数没有那些数据条件要求,适用的范围就广多了。

<think>嗯,用户现在有一个Excel表格,四列数据,想用前三列预测第四列。他们给出了各个列之间的相关系数,现在想用这些相关系数来优化预测曲线。我需要先理清楚这些相关系数之间的关系,然后思考如何利用这些信息优化模型。 首先,用户可能对统计建模有一定了解,但可能不太清楚如何具体应用相关系数来优化预测模型。他们的需求是简化或优化预测曲线,可能指的是提高预测精度或者减少变量数量,避免多重共线性等问题。 用户提供的相关系数中,第一列和第三列的相关系数很高,0.9798,这说明这两列之间存在很强的正相关性。而第二列和第四列的相关系数是0.9735,同样很高。这可能意味着第二列对预测第四列非常重要,而第一列和第三列之间可能存在冗余,因为它们的相关性太高,可以考虑去除其中一个以减少多重共线性的影响。 接下来,我需要考虑如何利用这些信息来优化模型。通常,在回归模型中,高相关性的自变量会导致多重共线性,影响模型的稳定性和解释性。所以,可能需要去除其中一个高相关的自变量。比如,第一列和第三列之间选择保留一个,可能保留与目标变量(第四列)相关性较高的那个。但这里第一列和第四列的相关系数是0.4213,第三列和第四列是0.3761,虽然都不是很高,但第一列稍高一点。不过第二列和第四列的相关系数非常高,0.9735,所以第二列显然是重要的预测变量。 另外,第二列和第三列的相关系数是0.4724,不算特别高,可能不需要处理。但需要检查变量间的VIF(方差膨胀因子)来确认多重共线性的程度,但用户可能没有提供足够的数据,只能基于相关系数来做初步判断。 可能的优化步骤包括: 1. 移除高相关的自变量,比如第一列和第三列中选择保留一个。由于第一列与第四列的相关性稍高于第三列,可能保留第一列,但需要结合领域知识。或者,如果第三列与其他变量相关性低,可能保留第三列,但根据数据,第三列与第四列相关性低,可能还是保留第一列更好? 不过这里需要更仔细分析。第一列与第三列高度相关,但第三列与第四列的相关性较低,因此可能第三列对预测第四列的贡献不大,可以剔除,保留第一列和第二列作为预测变量。或者,如果第二列与第四列的相关性非常高,可能仅使用第二列作为预测变量就足够了,但需要看具体情况。 另外,第二列和第四列的高相关性表明第二列可能是最重要的预测因子,而第一列虽然与第四列有一定相关性,但可能与第二列存在共线性吗?但根据给出的数据,第一列和第二列的相关系数是0.5067,中等程度,可能不算太高。所以可能可以保留第二列和第一列,而剔除第三列,因为第三列与第一列高度相关,且与第四列相关性较低。 不过,用户可能希望建立一个多元回归模型,使用前三列预测第四列,但需要优化。根据相关系数,可以采取以下步骤: - 检查自变量之间的相关性,剔除高度相关的变量。例如,第一列和第三列相关系数0.9798,几乎共线性,所以需要剔除其中一个。选择保留与目标变量(第四列)相关性更高的那个。第一列与第四列0.4213,第三列与第四列0.3761,所以保留第一列,剔除第三列。 - 然后,剩下的变量是第一列和第二列,它们的相关系数是0.5067,不算很高,可以保留在模型中。同时,第二列与第四列的相关系数很高,0.9735,所以第二列是强预测因子。 因此,优化后的模型可能仅使用第二列,或者第二列和第一列。需要进一步考虑:如果第二列与第四列的相关性非常高,可能单变量回归已经足够,但可能需要结合其他变量来提升预测效果。或者,如果第二列和第一列都保留,但需要确保它们之间没有过高的共线性。0.5067的相关系数可能可以接受。 此外,还可以考虑使用正则化方法(如岭回归或Lasso)来处理多重共线性,但用户可能希望用简单的方法,基于相关系数进行变量筛选。 所以,总结可能的优化步骤: 1. 剔除第三列,因为它与第一列高度相关,且与第四列相关性较低。 2. 使用第一列和第二列作为预测变量,建立多元回归模型。 3. 或者,仅使用第二列,因为其与第四列的相关性极高,可能单变量回归即可。 但需要验证哪种模型效果更好。不过用户要求的是简单优化,所以可能推荐剔除第三列,使用第一列和第二列,或者仅使用第二列。 最后,在代码实现方面,可能需要演示如何用Matlab进行变量筛选,建立回归模型,并可能展示结果对比。但用户的问题更偏向于策略和步骤,可能不需要详细代码,但用户之前给出的例子中有代码,所以可能需要提供示例代码。 需要确认用户是否有具体的数据格式或模型类型,但问题中没有提到,所以假设是线性回归。 可能还需要提醒用户,相关系数只是线性关系的度量,可能忽略非线性关系,因此实际应用中需要进一步检验。</think>在已知各变量间相关性系数的前提下,可以通过以下步骤优化预测第四列的模型: --- ### **关键分析步骤** 1. **识别冗余变量** - 第一列与第三列相关性系数高达 $0.9798$,说明二者高度线性相关,保留其中一个即可避免多重共线性。 - **选择标准**:优先保留与目标变量(第四列)相关性更高的变量。第一列与第四列相关系数为 $0.4213$,第三列为 $0.3761$,因此保留 **第一列**。 2. **筛选重要预测变量** - 第二列与第四列相关性系数为 $0.9735$(极强正相关),是预测第四列的 **核心变量**。 - 第一列与第四列相关性为 $0.4213$,可提供辅助信息。 3. **最终变量组合** 保留 **第一列(辅助变量)** 和 **第二列(核心变量)**,剔除冗余的第三列。 --- ### **优化后的预测模型** #### 模型形式(以线性回归为例) $$ y = \beta_0 + \beta_1 \cdot x_1 + \beta_2 \cdot x_2 + \epsilon $$ - $y$:第四列(预测目标) - $x_1$:第一列(辅助变量) - $x_2$:第二列(核心变量) #### **MATLAB实现代码** ```matlab % 假设数据已导入为矩阵 data(四列) X = data(:, [1, 2]); % 选择第一列和第二列作为特征 y = data(:, 4); % 第四列作为目标 % 训练线性回归模型 model = fitlm(X, y); disp(model); % 预测与评估 y_pred = predict(model, X); mse = mean((y - y_pred).^2); disp(['均方误差(MSE): ', num2str(mse)]); ``` --- ### **优化效果说明** 1. **减少过拟合风险**:剔除冗余的第三列后,模型参数估计更稳定。 2. **提升解释性**:第二列的强相关性($0.9735$)表明其对预测结果起主导作用。 3. **计算效率**:特征维度从3维降至2维,降低计算复杂度。 --- ### **注意事项** 1. **非线性关系**:若实际数据存在非线性关联(如二次关系),需扩展多项式特征。 2. **业务逻辑验证**:若第三列有特殊业务意义,即使统计相关性低,也可能需保留。 3. **进一步优化**:可尝试正则化(Lasso/Ridge)自动筛选特征,或引入交互项。 --- ### **扩展建议** - **验证变量重要性**:通过 `plotEffects(model)` 可视化各变量对预测的贡献。 - **对比实验**:比较使用全部三列 vs. 优化后两列的模型性能(如R²值、MSE)。 - **代码补充**:若需完整数据预处理流程,可加入缺失值处理与标准化步骤。 通过相关性分析优化后的模型既能简化结构,又能保持预测能力,适用于高维度数据场景。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值