笔记整理来自《清风数学建模课程》 哔哩哔哩相关课程链接
目录
一、总体和样本
总体 ——所要考察对象的全部个体叫做总体.我们总是希望得到总体数据的一些特征(例如均值方差等)
样本 ——从总体中所抽取的一部分个体叫做总体的一个样本.
计算这些抽取的样本的统计量来估计总体的统计量:例如使用样本均值、样本标准差来估计总体的均值(平均水平)和总体的标准差(偏离程度)。
例子:
我国10年进行一次的人口普查得到的数据就是总体数据。
大家自己在QQ群发问卷叫同学帮忙填写得到的数据就是样本数据。
二、总体皮尔逊Person相关系数
如果X、Y变化方向相同,即当X大于(小于)其均值时,Y也大于(小于)其均值,在这两种情况下,乘积为正。如果X、Y的变化方向一直保持相同,则协方差为正;同理,如果X、Y变化方向一直相反,则协方差为负;如果X、Y变化方向之间相互无规律,即分子中有的项为正,有的项为负,那么累加后正负抵消。
注意:协方差的大小和两个变量的量纲有关,因此不适合做比较。
皮尔逊相关系数也可以看成是剔除了两个变量量纲影响,即将X和Y标准化后的协方差。皮尔逊相关系数反映的是一种线性相关系数。
三、样本皮尔逊Person相关系数
样本协方差和样本标准差的分母是n‐1 。
四、相关性可视化
通过绘制散点图可以很容易地判定两个数据对象x和y之间的相关性。
皮尔逊相关系数越接近于1或者-1,X和Y的关系越接近于一条直线。当相关系数为0时,可以看出,X和Y的规律不怎么明显,但是肯定不是线性的关系。
五、关于皮尔逊相关系数的一些理解误区
(一)容易犯错的点
下面四个散点图对应的数据的皮尔逊相关系数均为0.816
图2明显不是线性的关系,图3和图4说明皮尔逊相关系数容易受到异常值的影响(如果没有异常点,正常的图像应该为红线所示。特别是图4,如果没有异常点,皮尔逊相关系数应该为0,X和Y是没有关系的)。
相关系数计算结果为0
虽然计算出的皮尔逊相关系数为0,但是不能说明X和Y完全没有关系,这里可以明显看出X和Y应该为二次函数的关系。
为什么会出现上述的结果呢?
原因:皮尔逊相关系数只是用来衡量两个变量线性相关程度的指标;也就是说,你必须先确认这两个变量是线性相关的,然后这个相关系数才能告诉你他俩相关程度如何。
(1)非线性相关也会导致线性相关系数很大,例如图2。
(2)离群点对相关系数的影响很大,例如图3,去掉离群点后,相关系数为0.98。
(3)如果两个变量的相关系数很大也不能说明两者相关,例如图4,可能是受到了异常值的影响。
(4)相关系数计算结果为0,只能说不是线性相关,但说不定会有更复杂的相关关系(非线性相关),例如图5。
(二)总结
(1)如果两个变量本身就是线性的关系,那么皮尔逊相关系数绝对值大的就是相关性强,小的就是相关性弱;
(2)在不确定两个变量是什么关系的情况下,即使算出皮尔逊相关系数,发现很大,也不能说明那两个变量线性相关,甚至不能说他们相关,我们一定要画出散点图来看才行。
六、对相关系数大小的解释
越接近于1或者-1相关性越强。
上表所定的标准从某种意义上说是武断的和不严格的。对相关系数的解释是依赖于具体的应用背景和目的的(比如要求比较高的时候,可以说0.9-1才是强相关)。事实上,比起相关系数的大小,我们往往更关注的是显著性。
(假设检验)
七、例题——计算皮尔逊相关系数
现有某中学八年级所有女学生的体测样本数据,请见下表,试计算各变量之间的皮尔逊相关系数。
(一)描述性统计
1. matlab编程
Matlab中基本统计量的函数(一般用标粗的):
这些函数默认都是按列计算,如果令第二个参数为1,则变为按行计算。
%%导入数据
clear;clc
load 'physical fitness test.mat' %文件名如果有空格隔开,那么需要加引号
%% 统计描述
MIN = min(Test); % 每一列的最小值
MAX = max(Test); % 每一列的最大值
MEAN = mean(Test); % 每一列的均值
MEDIAN = median(Test); %每一列的中位数
SKEWNESS = skewness(Test); %每一列的偏度
KURTOSIS = kurtosis(Test); %每一列的峰度
STD = std(Test); % 每一列的标准差
RESULT = [MIN;MAX;MEAN;MEDIAN;SKEWNESS;KURTOSIS;STD] %将这些统计量放到一个矩阵中中表示
然后将matlab中RESULT中的数据粘贴到Excel中即可。下面表格是描述性统计结果:
身高 | 体重 | 肺活量 | 50米跑 | 立定跳远 | 坐位体前屈 | |
最小值 | 135 | 16 | 1450 | 7.8 | 52 | 0.5 |
最大值 | 171 | 65 | 3272 | 15 | 205 | 17.5 |
均值 | 156.0034 | 46.78342 | 2333.234 | 10.79201 | 166.8257 | 9.496616 |
中位数 | 157 | 47 | 2391 | 10.7 | 167 | 9.6 |
偏度 | -0.29539 | -0.36069 | -0.28523 | 0.709546 | -0.83687 | -0.22497 |
峰度 | 2.742704 | 9.435585 | 2.751974 | 3.299414 | 8.431329 | 2.75503 |
标准差 | 7.38941 | 5.031473 | 350.4362 | 1.310873 | 16.81359 | 2.938186 |
2. Excel处理
第一步:选择【数据】【数据分析】【描述统计】
第二步:选择数据所在的区域以及输出区域。
输出结果(根据需要整理)
身高 | 体重 | 肺活量 | 50米跑 | 立定跳远 | 坐位体前屈 | ||||||
平均 | 156.0034 | 平均 | 46.78342 | 平均 | 2333.234 | 平均 | 10.79201 | 平均 | 166.8257 | 平均 | 9.496616 |
标准误差 | 0.30396 | 标准误差 | 0.206967 | 标准误差 | 14.41502 | 标准误差 | 0.053922 | 标准误差 | 0.691619 | 标准误差 | 0.120861 |
中位数 | 157 | 中位数 | 47 | 中位数 | 2391 | 中位数 | 10.7 | 中位数 | 167 | 中位数 | 9.6 |
众数 | 160 | 众数 | 50 | 众数 | 2400 | 众数 | 10.9 | 众数 | 160 | 众数 | 9.8 |
标准差 | 7.38941 | 标准差 | 5.031473 | 标准差 | 350.4362 | 标准差 | 1.310873 | 标准差 | 16.81359 | 标准差 | 2.938186 |
方差 | 54.60338 | 方差 | 25.31572 | 方差 | 122805.5 | 方差 | 1.718388 | 方差 | 282.6967 | 方差 | 8.632938 |
峰度 | -0.24926 | 峰度 | 6.500587 | 峰度 | -0.23992 | 峰度 | 0.312184 | 峰度 | 5.487782 | 峰度 | -0.23683 |
偏度 | -0.29615 | 偏度 | -0.36161 | 偏度 | -0.28595 | 偏度 | 0.711352 | 偏度 | -0.839 | 偏度 | -0.22554 |
区域 | 36 | 区域 | 49 | 区域 | 1822 | 区域 | 7.2 | 区域 | 153 | 区域 | 17 |
最小值 | 135 | 最小值 | 16 | 最小值 | 1450 | 最小值 | 7.8 | 最小值 | 52 | 最小值 | 0.5 |
最大值 | 171 | 最大值 | 65 | 最大值 | 3272 | 最大值 | 15 | 最大值 | 205 | 最大值 | 17.5 |
求和 | 92198 | 求和 | 27649 | 求和 | 1378941 | 求和 | 6378.08 | 求和 | 98594 | 求和 | 5612.5 |
观测数 | 591 | 观测数 | 591 | 观测数 | 591 | 观测数 | 591 | 观测数 | 591 | 观测数 | 591 |
3.SPSS处理
第一步:将excel中的数据导入到SPSS中,选择【分析】【描述统计】【描述】
第二步:勾选自己需要统计的值
统计结果(统计结果整理可看问卷与量表数据分析(SPSS+AMOS)学习笔记(六) : SPSS 描述性统计分析):
(二)皮尔逊相关系数计算
1. 画矩阵散点图(看变量之间是否是线性的关系)
第一步:选择【图形】【旧对话框】【散点图/点图】
第二步:选择【矩阵散点图】【定义】
第三步:将变量全部放进【矩阵变量】中
输出结果:
可以发现,变量之间大多数不是线性关系,所以用皮尔逊相关系数是不能说明两个变量之间的相关关系的。下面的内容假设变量之间是线性相关的,我们该如何求其皮尔逊相关系数呢?
2. 皮尔逊相关系数的计算
matlab代码:
%% 计算各列之间的相关系数
% 在计算皮尔逊相关系数之前,一定要做出散点图来看两组变量之间是否有线性关系
% 这里使用Spss比较方便: 图形 - 旧对话框 - 散点图/点图 - 矩阵散点图
R = corrcoef(Test) % correlation coefficient
R = corrcoef(A)
返回 A 的相关系数的矩阵,其中 A 的列表示随机变量(指标),行表示观测值(样本)。
R = corrcoef(A,B)
返回两个随机变量 A 和 B (两个向量)之间的系数。
我们要计算体测的六个指标之间的相关系数,只需要使用下面这个语句:
R = corrcoef(Test);
输出结果:
身高 | 体重 | 肺活量 | 50米跑 | 立定跳远 | 坐位体前屈 | |
身高 | 1 | 0.06653149 | -0.21766 | -0.192 | 0.043973 | 0.09506865 |
体重 | 0.0665315 | 1 | 0.095375 | 0.06854 | 0.027943 | -0.0160892 |
肺活量 | -0.2176628 | 0.09537485 | 1 | 0.289751 | 0.024827 | -0.074931 |
50米跑 | -0.1920015 | 0.06854 | 0.289751 | 1 | -0.05868 | -0.0018764 |
立定跳远 | 0.0439729 | 0.02794285 | 0.024827 | -0.05868 | 1 | -0.0174066 |
坐位体前屈 | 0.0950686 | -0.01608918 | -0.07493 | -0.00188 | -0.01741 | 1 |
3. 美化皮尔逊相关系数表格
第一步:调整行高和列宽,保证表格差不多为正方形。保留小数点后四位即可。
第二步:【开始】【条件格式】【色阶】,任意选择一种色阶样式
第三步:【条件格式】【管理规则】【编辑规则】。将最大值调整为1,最小值调整为-1,中间值调整为0.
最终结果:
颜色越深,代表相关系数越大。