统计分析-相关系数
相关系数 (pearson与spearman)
基础概念
- 总体:所要考察对象的全部个体叫做总体.
我们总是希望得到总体数据的一些特征(例如均值方差等) - 样本:从总体中所抽取的一部分个体叫做总体的一个样本.
- 统计量:计算这些抽取的样本的统计量来估计总体的统计量
例如使用样本均值、样本标准差来估计总体的均值(平均水平)和总体的标准差(偏离程度) - 相关关系刻画的是直线相关性
相关系数计算公式
易错点
总结
(1)如果两个变量本身就是线性的关系,那么皮尔逊相关系数绝对值大的就是相关性强,小的就是相关性弱;
(2)在不确定两个变量是什么关系的情况下,即使算出皮尔逊相关系数,发现很大,也不能说明那两个变量线性相关,甚至不能说他们相关,我们一定要画出散点图来看才行。
相关系数大小
描述性统计量
对于数学分析类型的数据进行处理时间,都可以进行描述性统计量计算一波。
%描述性统计量的计算
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 corrcoef函数
假设检验
P值判断法
%% 计算各列之间的相关系数以及p值
[R,P] = corrcoef(Test)
% 在EXCEL表格中给数据右上角标上显著性符号吧
P < 0.01 % 标记3颗星的位置
(P < 0.05) .* (P > 0.01) % 标记2颗星的位置
(P < 0.1) .* (P > 0.05) % 标记1颗星的位置
检验数据是否服从正态分布
%% 正态分布检验
% 正态分布的偏度和峰度
x = normrnd(2,3,100,1); % 生成100*1的随机向量,每个元素是均值为2,标准差为3的正态分布
skewness(x) %偏度 0.1387
kurtosis(x) %峰度 3.0816
qqplot(x)
%% 正态分布JB检验
%{
MATLAB中进行JB检验的语法:[h,p] = jbtest(x,alpha)
当输出h等于1时,表示拒绝原假设;h等于0则代表不能拒绝原假设。
alpha就是显著性水平,一般取0.05,此时置信水平为1‐0.05=0.95
x就是我们要检验的随机变量,注意这里的x只能是向量。
检验值p,判断是否满足条件
%}
%% 正态分布检验
% 检验第一列数据是否为正态分布
[h,p] = jbtest(Test(:,1),0.05)
% 用循环检验所有列的数据
n_c = size(Test,2); % number of column 数据的列数
H = zeros(1,6); %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)
斯皮尔曼系数
%% 斯皮尔曼相关系数
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)
% 计算矩阵各列的斯皮尔曼相关系数
R = corr(Test, 'type' , 'Spearman') %通用计算公式