数据相关性分析

皮尔逊相关系数

要先确定有线性关系,才能反应相关的大小

首先要画散点图目的是为了看是否具有线性关系

image-20230712151129841

选择矩阵散点图

image-20230712151155521

然后把所有的变量移进去

image-20230712151223651

既可得到任意两个变量之间的线性关系

image-20230712151245922

通过散点图来简略判断是否具有线性关系

为什么要首先看是否具有相关性呢?

image-20230712151504384

上面四个图的皮尔逊相关系数都是0.816,但是显然只有图一具有线性关系,所以只有先确定有线性关系,才能用皮尔逊相关系数

描述性统计

求最小值,最大值,中位数,众数,偏度,峰度,标准差,方差等等

用spss做数据分析

image-20230712151715304

jb检验(样本数>30)

正态分布检验
% 正态检验的偏度和峰度
x = normrnd(2,3,1000,1)
skewness(x)%偏度
kurtosis(x)%峰度

% 检验第一列数据是否为正态分布
[h,p] = jbtest(x,0.05)


Shapiro-wilk检验(小样本)

用spss

QQ图可以近视估算是不是正态分布

斯皮尔曼spearman相关系数

斯皮尔曼相关系数和皮尔逊相关系数的选择

1.连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用

spearman相关系数也可以,就是效率没有pearson相关系数高。

2.上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。

3.两个定序数据之间也用spearman相关系数,不能用pearson相关系数。

一般情况下都能使用斯皮尔曼相关系数

求解斯皮尔曼相关系数的代码

RX = [3 8 4 7 2]'
RY = [5 10 9 10 6]'
R = corr(RX,RY,'type','Spearman') %R就是斯皮尔曼相关系数

课后作业

1)写一篇文章,分析男生体测数据各指标之间的相关性,并与女生的数据得到的结论进行对比。

解题:

1)首先用散点图判断是否具有线性关系

image-20230712152703857

2)对数据进行描述性统计

身高体重肺活量50米跑立定跳远坐位体前屈
最大值1063915067.2652
最小值19973615610.123015.3
均值163.489041155.82602742770.3547958.724383562179.06575348.890684932
中位数1635625988.71788.7
偏度-0.581914515-0.256237461.272678829-0.138356097-0.784281150.154426354
峰度8.8644133362.7730108065.2580072382.1371921429.0408567183.631126281

3)通过jb检验得到H和P的数据分别为

身高体重肺活量50米跑立定跳远坐位体前屈
H111111
P0.0010.012866870.0010.0010.0010.002915572

任何一个数据都不符合正态分布,因此应该选择斯皮尔曼相关系数

4)斯皮尔曼相关系数求解

身高体重肺活量50米跑立定跳远坐位体前屈
身高10.0348973090.1104349760.021501513-0.066543697-0.107545854
体重0.03489730910.0603116510.0194964050.1199638530.060343423
肺活量0.1104349760.0603116511-0.027296159-0.045852341-0.034276317
50米跑0.0215015130.019496405-0.02729615910.030126713-0.047279415
立定跳远-0.0665436970.119963853-0.0458523410.03012671310.005488434
做立体前屈-0.1075458540.060343423-0.034276317-0.0472794150.0054884341

5)相关系数矩阵可视化

4 |
| 做立体前屈 | -0.107545854 | 0.060343423 | -0.034276317 | -0.047279415 | 0.005488434 | 1 |

5)相关系数矩阵可视化

image-20230712155210486
6)进行假设检验

设H0:相关系数r = 0

设H1:相关系数r 不等于 0

然后进行假设检验

image-20230712162028151

得到假设检验结果P值:

身高体重肺活量50米跑立定跳远坐位体前屈
身高10.3464259620.002809760.5619075970.0723637950.003623654
体重0.34642596210.1034780360.5989499480.0011645440.103296023
肺活量0.002809760.10347803610.4615025310.2159423740.355080463
50米跑0.5619075970.5989499480.46150253110.4163507650.201975334
立定跳远0.0723637950.0011645440.2159423740.41635076510.882314116
坐位体前屈0.0036236540.1032960230.3550804630.2019753340.8823141161

P大于0.05就代表具有相关性

全部代码:

正态分布检验
% 正态检验的偏度和峰度
x = normrnd(2,3,100,1)
skewness(x)%偏度
kurtosis(x)%峰度
qqplot(x)

% 检验第一列数据是否为正态分布
[h,p] = jbtest(x,0.05)% h = 0代表可以接受原假设

求解皮尔逊相关系数
RX = [3 8 4 7 2]'
RY = [5 10 9 10 6]'
R = corr(RX,RY,'type','Spearman')

课后作业
% 首先加载数据
load classwork.mat

% 对数据进行描述性统计
MIN = min(data)
MAX = max(data)
MEAN = mean(data)
MEDIAN = median(data)
SKEWNESS = skewness(data)% 偏度
KURTOSIS = kurtosis(data)% 峰度
R = [MIN;MAX;MEAN;MEDIAN;SKEWNESS;KURTOSIS]

% 判断变量之间是否具有正态关系
n = size(data,2)
H = zeros(1,6);  % 初始化节省时间和消耗
P = zeros(1,6);
for i = 1:n
    [h,p] = jbtest(data(:,i),0.05);
    H(i)=h;
    P(i)=p;
end

% 斯皮尔曼相关系数求解
ans = zeros(6,6)
for i = 1:6
    for j = 1:6
        r = corr(data(:,i),data(:,j),'type','Spearman')
        ans(i,j) = r
    end
end

% 进行假设检验
r = zeros(6,6)
for i = 1:6
    for j = 1:6
        z = ans(i,j) * sqrt(size(data,1) - 1)
        r(i,j) = (1 - normcdf(z)) * 2
    end
end

[R,P] = corr(data,'type','Spearman')% R是斯皮尔曼相关系数,P是假设检验得到的P值

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天热写代码不吹空调

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值