该博客为个人学习清风建模的学习笔记,部分课程可以在B站:【强烈推荐】清风:数学建模算法、编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilibili
目录
名称 | 重要性 | 难度 |
相关性分析 | ★★★★ | ★★★ |
1总体和样本
总体 —— 所要考察对象的全部个体叫做总体 .我们总是希望得到总体数据的一些特征(例如均值方差等)
样本 —— 从总体中所抽取的一部分个体叫做总体的一个样本 .计算这些抽取的样本的统计量来估计总体的统计量:
例如使用样本均值、样本标准差来估计总体的均值(平均水平)和总体的标准差(偏离程度)。
例子:我国10 年进行一次的人口普查得到的数据就是总体数据。大家自己在QQ 群发问卷叫同学帮忙填写得到的数据就是样本数据。
2皮尔逊Pearson相关系数
2.1总体皮尔逊Pearson相关系数
直观理解协方差: 如果 X 、 Y 变化方向相同,即当 X 大于(小于)其均值时, Y 也大于(小于)其均值,在这两种情况下,乘积为正。如果X 、 Y 的变化方向一直保持相同,则协方差为正;同理,如果X 、 Y 变化方向一直相反,则协方差为负;如果X 、 Y 变化方向之间相互无规律,即分子中有的项为正,有的项为负,那么累加后正负抵消。注意: 协方差的大小和两个变量的量纲有关,因此不适合做比较。
皮尔逊相关系数也可以看成是剔除了两个变量量纲影响,即将 X 和 Y 标准化后的协方差。
2.2样本皮尔逊Pearson相关系数
注:样本方差分母是 n‐1
2.3皮尔逊相关系数误区
这里的相关系数只是用来衡量两个变量线性相关程度的指标;也就是说,你必须先确认这两个变量是线性相关的,然后这个相关系数才能 告诉你他俩相关程度如何。
( 1 )非线性相关也会导致线性相关系数很大,例如图 2 。( 2 )离群点对相关系数的影响很大,例如图 3 ,去掉离群点后,相关系数为 0.98 。( 3 )如果两个变量的相关系数很大也不能说明两者相关,例如图 4 ,可能是受到了异常值的影响。( 4 )相关系数计算结果为 0 ,只能说不是线性相关,但说不定会有更复杂的相关关系(非线性相关),例如图5 。
2.4相关系数大小的解释
2.5皮尔逊相关系数的计算
在计算皮尔逊相关系数之前 , 一定要做出散点图来看两组变量之间是否有线性关系这里使用 Spss 比较方便 : 图形 ‐ 旧对话框 ‐ 散点图 / 点图 ‐ 矩阵散点图
%% 计算各列之间的相关系数
% 在计算皮尔逊相关系数之前,一定要做出散点图来看两组变量之间是否有线性关系
% 这里使用Spss比较方便: 图形 - 旧对话框 - 散点图/点图 - 矩阵散点图
R = corrcoef(Test) % correlation coefficient
美化结果:
2.6皮尔逊相关系数假设检验
假设检验步骤:涉及概率统计的知识点,建议自己去学习。
B站部分课程:5.2 回顾概率论与数理统计中进行假设检验的步骤_哔哩哔哩_bilibili
一些学习内容链接:如何用最通俗易懂的方式理解假设检验(A/B测试)? - 知乎 (zhihu.com)
清风老师手写板书地址:阿里云盘分享 (alipan.com)
对皮尔逊相关系数进行假设检验
注:在数理统计中,这里的原假设和备择假设中的 𝑟 应该改为 𝜌 , 其中 𝜌 为未知的总体相关系数,实际上我们关心的是总体的统计特征。但为了方便大家理解,在这里我们做了简化,非统计专业的同学理解到这个程度就足够了。
%% 假设检验部分
x = -4:0.1:4;
y = tpdf(x,28); %求t分布的概率密度值 28是自由度
figure(1)
plot(x,y,'-')
grid on % 在画出的图上加上网格线
hold on % 保留原来的图,以便继续在上面操作
% matlab可以求出临界值,函数如下
tinv(0.975,28) % 2.0484
% 这个函数是累积密度函数cdf的反函数
plot([-2.048,-2.048],[0,tpdf(-2.048,28)],'r-')
plot([2.048,2.048],[0,tpdf(2.048,28)],'r-')
p值判断法:
在本例中,拒绝原假设意味着皮尔逊相关系数显著的异于 0 。小补充: 0.5 、 0.5* 、 0.5** 、 0.5*** 的含义是什么?(显著性标记)0.5* 90%显著性0.5** 95%显著性0.5*** 99%显著性( *** p<0.01, ** p<0.05, * p<0.1)
%% 计算各列之间的相关系数以及p值
[R,P] = corrcoef(Test)
% 在EXCEL表格中给数据右上角标上显著性符号吧
P < 0.01 % 标记3颗星的位置
(P < 0.05) .* (P > 0.01) % 标记2颗星的位置
(P < 0.1) .* (P > 0.05) % % 标记1颗星的位置
2.7皮尔逊相关系数总结
( 1 )如果两个变量本身就是线性的关系,那么皮尔逊相关系数绝对值大的就是相关性强,小的就是相关性弱;( 2 )在不确定两个变量是什么关系的情况下,即使算出皮尔逊相关系数,发现很大,也不能说明那两个变量线性相关,甚至不能说他们相关,我们一定要画出散点图来看才行。
皮尔逊相关系数假设检验的条件:
第一, 实验数据通常假设是成对的来自于正态分布的总体。 因为我们在求皮尔逊相关性系数以后,通常还会用t 检验之类的方法来进行皮尔逊相关性系数检验,而 t 检验是基于数据呈正态分布的假设的。(方法直接看5正态数据检验)第二, 实验数据之间的差距不能太大。 皮尔逊相关性系数受异常值的影响比较大。第三:每组样本之间是独立抽样的。 构造 t 统计量时需要用到。
3描述性统计
Matlab中基本统计量的函数(一般用标粗的):
这些函数根据参数的不同有多种用法,我们这里用到的只是其最简单的功能,但这对建模已经足够了,需要用到高级功能的同学可以百度这些函数的用法。
%% 统计描述
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] %将这些统计量放到一个矩阵中表示
4数据分析工具
4.1EXCEL
4.2SPSS
5正态分布检验
5.1偏度和峰度
% 正态分布的偏度和峰度
x = normrnd(2,3,100,1); % 生成100*1的随机向量,每个元素是均值为2,标准差为3的正态分布
skewness(x) %偏度
kurtosis(x) %峰度
5.2正态分布JB检验(大样本 n>30)
MATLAB 中进行 JB 检验的语法: [h,p] = jbtest(x,alpha)当输出 h 等于 1 时,表示拒绝原假设; h 等于 0 则代表不能拒绝原假设。alpha 就是显著性水平,一般取 0.05 ,此时置信水平为 1‐0.05=0.95x 就是我们要检验的随机变量,注意这里的 x 只能是向量。
% 检验第一列数据是否为正态分布
[h,p] = jbtest(Test(:,1),0.05)
[h,p] = jbtest(Test(:,1),0.01)
% 用循环检验所有列的数据
n_c = size(Test,2); % number of column 数据的列数
H = zeros(1,6); % 初始化节省时间和消耗
P = zeros(1,6);
for i = 1:n_c
[h,p] = jbtest(Test(:,i),0.05);
H(i)=h;
P(i)=p;
end
disp(H)
disp(P)
5.3Shapiro-wilk检验(小样本3≤n≤50)
MATLAB没有直接函数使用,可以使用SPSS。
5.4Q-Q图
在统计学中,Q‐Q 图( Q 代表分位数 Quantile )是一种通过比较两个概率分布的分位数对这两个概率分布进行比较的概率图方法。首先选定分位数的对应概率区间集合,在此概率区间上,点(x,y) 对应于第一个分布的一个分位数x 和第二个分布在和 x 相同概率区间上相同的分位数。这里,我们选择正态分布和要检验的随机变量,并对其做出QQ 图,可想而知,如果要检验的随机变量是正态分布,那么QQ 图就是一条直线。要利用Q‐Q 图鉴别样本数据是否近似于正态分布 , 只需看 Q‐Q 图上的点 是否近似地在一条直线附近。( 要求数据量非常大 )
% Q-Q图
qqplot(Test(:,1))
6斯皮尔曼spearman相关系数
皮尔逊相关系数的计算首先需要画出散点图看变量之间有没有线性关系,在有线性关系的基础上才能计算皮尔逊相关系数;如果还想计算皮尔逊相关系数的显著性,就必须基于正态化的数据,就必须要进行正态分布检验。
与皮尔逊相关系数多个条件不同,引入斯皮尔曼spearman相关系数。
6.1第一种定义
注:如果有的数值相同,则将它们所在的位置取算术平均。
6.2第二种定义
斯皮尔曼相关系数被定义成等级之间的皮尔逊相关系数。
%% 斯皮尔曼相关系数
X = [3 8 4 7 2]' % 一定要是列向量哦,一撇'表示求转置
Y = [5 10 9 10 6]'
% 第一种计算方法
1-6*(1+0.25+0.25+1)/5/24
% 第二种计算方法
coeff = corr(X , Y , 'type' , 'Spearman')
% 等价于:
RX = [2 5 3 4 1]
RY = [1 4.5 3 4.5 2]
R = corrcoef(RX,RY)
6.3假设检验
6.3.1小样本(n≤30)
直接查临界值表即可。样本相关系数r必须大于等于表中的临界值,才能得出显著的结论。
6.3.2大样本(n>30)
% 大样本下的假设检验
% 计算检验值
disp(sqrt(590)*0.0301)
% 计算p值
disp((1-normcdf(0.7311))*2) % normcdf用来计算标准正态分布的累积概率密度函数
7两种系数对比
斯皮尔曼相关系数和皮尔逊相关系数选择 :1. 连续数据,正态分布,线性关系,用 pearson 相关系数是最恰当,当然用spearman相关系数也可以, 就是效率没有 pearson 相关系数高。2. 上述任一条件不满足,就用 spearman 相关系数,不能用 pearson 相关系数。3. 两个定序数据之间也用 spearman 相关系数,不能用 pearson 相关系数。
定序数据 是指仅仅反映观测对象等级、顺序关系的数据,是由定序尺度计量形成的,表现为类别,可以进行排序,属于品质数据。例如:优、良、差;我们可以用 1 表示差、 2 表示良、 3 表示优,但请注意,用 2 除以 1 得出的 2 并不代表任何含义。定序数据最重要的意义代表了一组数据中的某种逻辑顺序。
注:斯皮尔曼相关系数的适用条件比皮尔逊相关系数要广,只要数据满足单调关系(例如线性函数、指数函数、对数函数等)就能够使用。
8总结
皮尔逊相关系数和斯皮尔曼相关系数是用来衡量俩个变量之间相关性大小的指标,其中皮尔逊相关系数的计算首先需要画出散点图看变量之间有没有线性关系,在有线性关系的基础上才能计算皮尔逊相关系数;如果还想计算皮尔逊相关系数的显著性,就必须基于正态化的数据,就必须要进行正态分布检验。而斯皮尔曼相关系数并不需要这么多条件,所以斯皮尔曼相关系数的适用条件比皮尔逊相关系数要广。