【数学建模】典型相关分析

典型相关分析(Canonical Correlation Analysis, CCA)是一种统计方法,用于寻找两个多变量数据集之间的线性关系。这种分析方法可以用来衡量两个数据集之间的相关性,并找出能够最好地解释这种相关性的变量组合。

典型相关分析的基本概念

  1. 定义:CCA旨在寻找两个多元数据集之间的线性组合,使得这两个组合之间的相关性最大化。
  2. 应用场景
    • 生物学:研究基因表达水平与临床指标之间的关系。
    • 心理学:探究不同心理测试结果与行为表现之间的联系。
    • 经济学:分析宏观经济指标与股票市场变动的相关性。

典型相关分析的步骤

  1. 数据准备:收集两个多元数据集 (X) 和 (Y),其中 (X) 包含 (p) 个变量,(Y) 包含 (q) 个变量。
  2. 标准化:通常会对数据进行标准化处理,以便消除量纲的影响。
  3. 计算典型相关系数:找到最优的线性组合 (u = a'X) 和 (v = b'Y),使得 (u) 和 (v) 之间的相关系数最大化。这一过程涉及求解特征值问题。
  4. 解释结果:分析得到的典型变量 (u) 和 (v),以及它们之间的相关系数,从而理解数据集中变量之间的关系。

典型相关分析的输出

  • 典型相关系数:表示两个线性组合之间的相关性。
  • 典型变量:由原始变量的线性组合构成的新变量。
  • 载荷:原始变量与典型变量之间的关系强度,类似于主成分分析中的载荷。

典型相关分析的应用实例

假设我们有两个数据集,一个是学生体测数据,包括身高、体重、肺活量、50米跑成绩、立定跳远距离和坐位体前屈长度;另一个是学生的其他特征数据,比如年龄、性别、班级等。我们可以使用典型相关分析来探索这两组数据之间的相关性。

典型相关分析的假设

  • 线性关系:CCA假设变量之间的关系是线性的。
  • 正态性:CCA假设数据集中的变量服从正态分布。
  • 无多重共线性:每个数据集中变量间应避免高度相关。

典型相关分析的局限性

  • 如果变量间的关系是非线性的,CCA可能无法捕捉到这种关系。
  • 如果数据集中的变量数量很多,可能会出现多重共线性问题,影响结果的可靠性。

实现典型相关分析

在实际应用中,可以使用各种统计软件包来执行典型相关分析,如R、Python的scikit-learn库等。例如,在Python中,可以使用sklearn.cross_decomposition.CCA来执行典型相关分析。

示例代码

以下是一个使用Python和scikit-learn进行典型相关分析的简单示例:

from sklearn.cross_decomposition import CCA
import numpy as np

# 创建示例数据
X = np.random.rand(100, 6)  # 100个样本,每个样本有6个特征
Y = np.random.rand(100, 4)  # 100个样本,每个样本有4个特征

# 创建CCA对象
cca = CCA(n_components=2)

# 对数据进行拟合
cca.fit(X, Y)

# 获取典型变量
X_c, Y_c = cca.transform(X, Y)

# 输出典型相关系数
print("Typical correlations:", cca.correlation_)

以上代码展示了如何使用scikit-learn库中的CCA类来执行典型相关分析,并输出典型相关系数。根据您上传的文件内容,下面是针对典型相关分析(Canonical Correlation Analysis, CCA)的详细解析:

典型相关分析概述

典型相关分析是一种多元统计方法,用于研究两组变量(每组变量中可能包含多个指标)之间的相关关系。这种方法可以揭示两组变量之间的内在联系。

解析每一部分内容

1. 典型相关分析定义
  • 定义:典型相关分析由Hotelling提出,其基本思想类似于主成分分析。
  • 过程:在每组变量中找出变量的线性组合,使得两组的线性组合之间具有最大的相关系数。然后选取和最初挑选的这对线性组合不相关的线性组合,使其配对,并选取相关系数最大的一对。这个过程会持续进行,直到两组变量之间的相关性被提取完毕。
  • 结果:被选出的线性组合配对称为典型变量,它们的相关系数称为典型相关系数,度量了这两组变量之间联系的强度。
2. 典型相关分析的关键步骤
  • 数据分布假设:两组数据服从联合正态分布。
  • 相关性检验:构造似然比统计量,检验两组变量的相关性。p值小于0.05(0.1)表示在95%(90%)的置信水平下拒绝原假设,即认为两组变量有关。
  • 确定典型相关变量的个数:直接看典型相关系数对应的p值。
  • 利用标准化后的典型相关变量分析问题
  • 进行典型载荷分析
  • 计算前r个典型变量对样本总方差的贡献
3. SPSS操作步骤
  • 导入数据:将数据导入SPSS。
  • 检验数据类型:确保所有变量都设置为标度类型。
  • 点击菜单功能:选择相应的菜单进行典型相关分析。
  • 将数据移动到对应的集合:将变量分配到两个集合中。
  • 导出分析结果:执行分析并导出结果。
  • 对结果进行分析
    • 查看p值:确定显著的典型相关系数个数。
    • 标准化典型相关系数:写出标准化后的典型变量。
    • 典型载荷分析:分析典型变量每个分量前面的系数代表的重要性。
    • 方差解释程度:分析前r个典型变量对样本总方差的贡献。

示例分析

假设我们要探究观众和业内人士对于一些电视节目的观点之间的关系。观众评分来自低学历(led)、高学历(hed)和网络(net)调查三种,形成第一组变量;而业内人士评分来自包括演员和导演在内的艺术家(arti)、发行(com)与业内各部门主管(man)三种,形成第二组变量。

SPSS结果分析
  • 典型相关性
    • 第一对典型相关系数为0.796,特征值1.725,威尔克统计0.350,F值2.048,分子自由度9.000,分母自由度34.223,显著性0.064。
    • 第二对典型相关系数为0.201,特征值0.042,威尔克统计0.955,F值0.176,分子自由度4.000,分母自由度30.000,显著性0.949。
    • 第三对典型相关系数为0.073,特征值0.005,威尔克统计0.995,F值0.085,分子自由度1.000,分母自由度16.000,显著性0.775。
  • 标准化典型相关系数
    • 第一组变量(观众评分):
      • 体重x1: 0.775
      • 腰围x2: -1.579
      • 脉搏x3: 0.059
    • 第二组变量(业内人士评分):
      • 引体向上次数y1: 0.349
      • 起坐次数y2: 1.054
      • 跳跃次数y3: -0.716
  • 典型载荷分析
    • 第一组变量(观众评分):
      • 体重x1: -0.621
      • 腰围x2: -0.925
      • 脉搏x3: 0.333
    • 已解释的方差比例
      • 第一对典型变量解释的方差比例为0.451。
      • 第二对典型变量解释的方差比例为0.247。
      • 第三对典型变量解释的方差比例为0.302。

结论

根据上述分析,我们可以得出以下结论:

  • 第一对典型相关系数接近显著水平(p=0.064),表明可能存在一定程度的相关性。
  • 从标准化典型相关系数来看,体重x1和起坐次数y2对第一对典型变量的贡献较大。
  • 从已解释的方差比例来看,第一对典型变量对样本总方差的贡献最大,其次是第二对,第三对的贡献较小。
  • 因此,我们可以关注第一对典型变量来进一步分析观众和业内人士的观点之间的关系。

课后作业

根据以上内容,课后作业要求利用典型相关分析完成一道题目,探究观众和业内人士对于一些电视节目的观点之间的关系,并写一篇小论文。同时,还需要阅读一篇关于葡萄酒评价的文章,以加深对典型相关分析的理解。

IBM SPSS Statistics 的临时使用期将在 6011 天内到期。

GET DATA

/TYPE=XLSX

/FILE='C:\Users\hc_lzp\Desktop\数学建模视频录制\第6讲.典型相关分析\代码和例题数据\health.xlsx'

/SHEET=name 'Sheet2'

/CELLRANGE=FULL

/READNAMES=ON

/DATATYPEMIN PERCENTAGE=95.0

/HIDDEN IGNORE=YES.

EXECUTE.

DATASET NAME 数据集1 WINDOW=FRONT.

STATS CANCORR SET1=体重x1 腰围x2 脉搏x3 SET2=引体向上次数y1 起坐次数y2 跳跃次数y3

/OPTIONS COMPUTECVARS=NO

/PRINT PAIRWISECORR=NO LOADINGS=YES VARPROP=YES COEFFICIENTS=YES.

Canonical Correlations

|----|--------|----------------------|
| 备注 |||
| 已创建输出 || 17-JUL-2019 22:18:53 |
| 注释 || |
| 输入 | 活动数据集 | 数据集1 |
| 输入 | 过滤器 | <无> |
| 输入 | 权重 | <无> |
| 输入 | 拆分文件 | <无> |
| 语法 || BEGIN PROGRAM '# '. |
| 资源 | 处理程序时间 | 00:00:00.02 |
| 资源 | 耗用时间 | 00:00:00.07 |

[数据集1]

|----------|------------------------|
| 典型相关性设置 ||
| | 值 |
| 生理指标变量 | 体重x1 腰围x2 脉搏x3 |
| 训练指标变量 | 引体向上次数y1 起坐次数y2 跳跃次数y3 |
| 集中的数据集 | 无 |
| 评分语法 | 无 |
| 用于评分的相关性 | 3 |

|---|------|-------|-------|-------|-------|--------|------|
| 典型相关系数 ||||||||
| | 相关系数 | 特征值 | 威尔克统计 | F | 分子自由度 | 分母自由度 | p值 |
| 1 | .796 | 1.725 | .350 | 2.048 | 9.000 | 34.223 | .064 |
| 2 | .201 | .042 | .955 | .176 | 4.000 | 30.000 | .949 |
| 3 | .073 | .005 | .995 | .085 | 1.000 | 16.000 | .775 |

置信水平 90% 95 99

显著性水平 0.1 0.05 0.01

|----------------------------------|
| H0 for Wilks 检验是指当前行和后续行中的相关性均为零 |

|------|--------|--------|-------|
| 集合 1 标准化 典型相关 变量对应的线性组合系数 ||||
| 变量 | 1 | 2 | 3 |
| 体重x1 | .775 | -1.884 | -.191 |
| 腰围x2 | -1.579 | 1.181 | .506 |
| 脉搏x3 | .059 | -.231 | 1.051 |

|----------|-------|-------|--------|
| 集合 2 标准化 典型相关 变量对应的线性组合系数 ||||
| 变量 | 1 | 2 | 3 |
| 引体向上次数y1 | .349 | -.376 | -1.297 |
| 起坐次数y2 | 1.054 | .123 | 1.237 |
| 跳跃次数y3 | -.716 | 1.062 | -.419 |

|------|-------|-------|-------|
| 集合 1 非标准化 典型相关 变量对应的线性组合系数 ||||
| 变量 | 1 | 2 | 3 |
| 体重x1 | .031 | -.076 | -.008 |
| 腰围x2 | -.493 | .369 | .158 |
| 脉搏x3 | .008 | -.032 | .146 |

|----------|-------|-------|-------|
| 集合 2 非标准化 典型相关 变量对应的线性组合系数 ||||
| 变量 | 1 | 2 | 3 |
| 引体向上次数y1 | .066 | -.071 | -.245 |
| 起坐次数y2 | .017 | .002 | .020 |
| 跳跃次数y3 | -.014 | .021 | -.008 |

1

|------|-------|-------|-------|
| 集合 1 的典型相关变量 典型载荷 ||||
| 变量 | 1 | 2 | 3 |
| 体重x1 | -.621 | -.772 | -.135 |
| 腰围x2 | -.925 | -.378 | -.031 |
| 脉搏x3 | .333 | .041 | .942 |

|----------|------|------|-------|
| 集合 2 典型载荷 ||||
| 变量 | 1 | 2 | 3 |
| 引体向上次数y1 | .728 | .237 | -.644 |
| 起坐次数y2 | .818 | .573 | .054 |
| 跳跃次数y3 | .162 | .959 | -.234 |

|------|-------|-------|-------|
| 集合 1 交叉载荷 ||||
| 变量 | 1 | 2 | 3 |
| 体重x1 | -.494 | -.155 | -.010 |
| 腰围x2 | -.736 | -.076 | -.002 |
| 脉搏x3 | .265 | .008 | .068 |

|----------|------|------|-------|
| 集合 2 交叉载荷 ||||
| 变量 | 1 | 2 | 3 |
| 引体向上次数y1 | .579 | .048 | -.047 |
| 起坐次数y2 | .651 | .115 | .004 |
| 跳跃次数y3 | .129 | .192 | -.017 |

|------|-----------|-------------|-----------|-------------|
| 已解释的方差比例 |||||
| 典型变量 | 集合1 * 自身 | 集合1 * 集合 2 | 集合2 * 自身 | 集合2 * 集合 1 |
| 1 | .451 | .285 | .408 | .258 |
| 2 | .247 | .010 | .434 | .017 |
| 3 | .302 | .002 | .157 | .001 |

根据您提供的IBM SPSS Statistics输出结果,我们可以详细分析典型相关分析的各项输出:

典型相关性设置

  • 生理指标变量:包括体重x1、腰围x2、脉搏x3。
  • 训练指标变量:包括引体向上次数y1、起坐次数y2、跳跃次数y3。
  • 集中的数据集:未使用任何特定的数据集。
  • 评分语法:未使用评分语法。
  • 用于评分的相关性:共3个典型相关系数。

典型相关系数

  • 第一对典型相关系数:0.796,特征值1.725,威尔克统计0.350,F值2.048,分子自由度9.000,分母自由度34.223,显著性0.064。
  • 第二对典型相关系数:0.201,特征值0.042,威尔克统计0.955,F值0.176,分子自由度4.000,分母自由度30.000,显著性0.949。
  • 第三对典型相关系数:0.073,特征值0.005,威尔克统计0.995,F值0.085,分子自由度1.000,分母自由度16.000,显著性0.775。

置信水平和显著性水平

  • 置信水平:90%、95%、99%
  • 显著性水平:0.1、0.05、0.01
  • H0 for Wilks 检验:当前行和后续行中的相关性均为零。

标准化典型相关变量对应的线性组合系数

  • 集合 1(生理指标变量):
    • 体重x1: 0.775, -1.884, -0.191
    • 腰围x2: -1.579, 1.181, 0.506
    • 脉搏x3: 0.059, -0.231, 1.051
  • 集合 2(训练指标变量):
    • 引体向上次数y1: 0.349, -0.376, -1.297
    • 起坐次数y2: 1.054, 0.123, 1.237
    • 跳跃次数y3: -0.716, 1.062, -0.419

非标准化典型相关变量对应的线性组合系数

  • 集合 1(生理指标变量):
    • 体重x1: 0.031, -0.076, -0.008
    • 腰围x2: -0.493, 0.369, 0.158
    • 脉搏x3: 0.008, -0.032, 0.146
  • 集合 2(训练指标变量):
    • 引体向上次数y1: 0.066, -0.071, -0.245
    • 起坐次数y2: 0.017, 0.002, 0.020
    • 跳跃次数y3: -0.014, 0.021, -0.008

典型载荷

  • 集合 1(生理指标变量):
    • 体重x1: -0.621, -0.772, -0.135
    • 腰围x2: -0.925, -0.378, -0.031
    • 脉搏x3: 0.333, 0.041, 0.942
  • 集合 2(训练指标变量):
    • 引体向上次数y1: 0.728, 0.237, -0.644
    • 起坐次数y2: 0.818, 0.573, 0.054
    • 跳跃次数y3: 0.162, 0.959, -0.234

交叉载荷

  • 集合 1(生理指标变量):
    • 体重x1: -0.494, -0.155, -0.010
    • 腰围x2: -0.736, -0.076, -0.002
    • 脉搏x3: 0.265, 0.008, 0.068
  • 集合 2(训练指标变量):
    • 引体向上次数y1: 0.579, 0.048, -0.047
    • 起坐次数y2: 0.651, 0.115, 0.004
    • 跳跃次数y3: 0.129, 0.192, -0.017

已解释的方差比例

  • 第一对典型变量
    • 集合 1 * 自身: 0.451
    • 集合 1 * 集合 2: 0.285
    • 集合 2 * 自身: 0.408
    • 集合 2 * 集合 1: 0.258
  • 第二对典型变量
    • 集合 1 * 自身: 0.247
    • 集合 1 * 集合 2: 0.010
    • 集合 2 * 自身: 0.434
    • 集合 2 * 集合 1: 0.017
  • 第三对典型变量
    • 集合 1 * 自身: 0.302
    • 集合 1 * 集合 2: 0.002
    • 集合 2 * 自身: 0.157
    • 集合 2 * 集合 1: 0.001

结果分析

  • 第一对典型相关系数接近显著水平(p=0.064),这表明可能存在一定程度的相关性。
  • 第二对典型相关系数的p值较高(0.949),表明该对典型相关性不显著。
  • 第三对典型相关系数同样不显著(p=0.775)。
  • 标准化典型相关变量对应的线性组合系数显示了原始变量在典型变量中的权重。
  • 典型载荷反映了原始变量与典型变量之间的关系强度,可以用来理解哪些原始变量对典型变量贡献较大。
  • 已解释的方差比例表明第一对典型变量对样本总方差的解释能力最强,而其他典型变量的解释能力较弱。

结论

  • 第一对典型变量对观众和业内人士对于电视节目观点之间的关系解释能力较强,而其他典型变量的解释能力较弱。
  • 体重x1起坐次数y2对第一对典型变量的贡献较大。
  • 腰围x2对第一对典型变量的贡献最大。
  • 第一对典型变量解释的方差比例为0.451,表明这对典型变量对样本总方差的解释能力最强。

课后作业

  • 任务:探究观众和业内人士对于一些电视节目的观点之间的关系,并写一篇小论文。
  • 参考资料:阅读一篇关于葡萄酒评价的文章(2012年数学建模A题一等奖论文)作为参考。

以上是对典型相关分析及其应用的深度分析。

相关推荐
m0_631270406 分钟前
标准C++(二)
开发语言·c++·算法
沫刃起9 分钟前
Codeforces Round 972 (Div. 2) C. Lazy Narek
数据结构·c++·算法
爱coding的橙子14 分钟前
CCF-CSP认证考试准备第十五天 202303-3 LDAP
算法
QXH2000001 小时前
Leetcode—环形链表||
c语言·数据结构·算法·leetcode·链表
小灰灰爱代码2 小时前
C++——判断year是不是闰年。
数据结构·c++·算法
小灰灰爱代码2 小时前
C++——求3个数中最大的数(分别考虑整数、双精度数、长整数数的情况),用函数重载方法。
数据结构·c++·算法
爱coding的橙子4 小时前
CCF-CSP认证考试准备第十七天
数据结构·c++·算法
常某某的好奇心4 小时前
56 - I. 数组中数字出现的次数
算法
hungry12344 小时前
CF EDU 169
算法
夜清寒风6 小时前
opencv学习:图像掩码处理和直方图分析及完整代码
人工智能·opencv·学习·算法·机器学习·计算机视觉