Статистический анализ Matlab - коэффициент корреляции

Статистический анализ — коэффициент корреляции

Коэффициент корреляции (Пирсона и Спирмена)

Коэффициент корреляции Пирсона человека и коэффициент ранговой корреляции Спирмена Спирмена, их можно использовать для измерения **(линейной)** корреляции между двумя переменными, в соответствии с различными условиями, которым соответствуют данные, нам нужно выбрать разные коэффициенты корреляции. Выполнить расчеты и анализ.

основная концепция

  1. Общий : Все отдельные объекты, подлежащие исследованию, называются общими.
    Мы всегда надеемся получить некоторые характеристики общих данных (например, среднюю дисперсию и т. Д.).
  2. Выборка : часть людей, взятых из населения, называется выборкой населения.
  3. Статистика : вычислите статистику этих извлеченных выборок, чтобы оценить общую статистику.
    Например, используйте выборочное среднее и выборочное стандартное отклонение для оценки общего среднего (средний уровень) и общего стандартного отклонения (степень отклонения).
  4. Корреляция описывает прямолинейную корреляцию

Формула расчета коэффициента корреляции

вставьте сюда описание изображения
вставьте сюда описание изображения
вставьте сюда описание изображения

подверженный ошибкам

вставьте сюда описание изображения

Подведем итог

(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

вставьте сюда описание изображения

гипотетический тест

вставьте сюда описание изображения
вставьте сюда описание изображения
вставьте сюда описание изображения

вставьте сюда описание изображения

Метод оценки стоимости 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颗星的位置

вставьте сюда описание изображения

Проверьте, подчиняются ли данные нормальному распределению

  1. Используйте normplot(), чтобы просто подогнать данные и наблюдать за их распределением.
    (Если вы обнаружите, что точки разброса могут в основном находиться вблизи красной прямой, это означает, что этот набор данных имеет высокую вероятность соответствия нормальному распределению. Можно только сказать, что эта вероятность удовлетворяет нормальному распределению, но это все еще необходимо нормализовать с помощью функции lillietest или
    функции jbtest. Тест на соответствие распределения состояний для иллюстрации ситуации)
    вставьте сюда описание изображения
%% 正态分布检验
m=[1006.1,1014,1001.6,996.4,997.8,981.6,996.4,991.9,993.3,1000.6,987.3,1015.6,981.6,996.2,999.2,994.5,1005.9,1001.9,986.4,1007.6,1001.4,1014.6,1010.2,993.9,1001.4]

normplot(m)

[H,P,LSTAT,CV] = lillietest(m,0.05)
[h,p,jbstat,critval] = jbtest(m,0.05)

%{
    
    
lillietest
H = 0
P = 0.5000
LSTAT = 0.1028
CV =  0.1730

jbtest
h= 0
p = 0.5000
jbstat = 0.3112
critval = 4.1494

H=0说明接受假设,该组数据符合正态分布;P=0.5说明符合正态分布的概率很大;
LSTAT小于接受假设的临界值0.173,因此接受假设。
(如果LSTAT大于接受假设的临界值0.173,因此不能接受假设,拒绝假设。)

[h,p]=lillietest(X)
返回值h:   只有01两种情况,h=0假设符合正态分布,h=1假设不符合正态分布
返回值p:   方差概率,也可以说事情的发生概率,p<0.05(显著性水平通常取0.05,还有0.0250.01三种情况)为不可能事件,拒绝;p>0.05,接受
参数X:     检测的数据
%}
%% 正态分布检验
% 正态分布的偏度和峰度
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,此时置信水平为10.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)

Коэффициент Спирмена

вставьте сюда описание изображения
При использовании встроенной функции Matlab для вычисления коэффициента ранговой корреляции Спирмена необходимо убедиться, что и X, и Y являются векторами-столбцами;

%% 斯皮尔曼相关系数
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') %通用计算公式

Применимый диапазон коэффициента корреляции

  1. Непрерывные данные, нормальное распределение, линейная зависимость с использованием коэффициента корреляции Пирсона. Если вышеуказанные условия не выполняются, используется коэффициент корреляции Спирмена. (Коэффициент корреляции Спирмена использует относительно большой диапазон)
  2. Коэффициент корреляции описывает линейную зависимость между переменными, и размер коэффициента не обязательно объясняет
    вставьте сюда описание изображения

Supongo que te gusta

Origin blog.csdn.net/weixin_43599390/article/details/131358251
Recomendado
Clasificación