數學建模常見的一些方法【05相關系數】


@

數學建模常見的一些方法

1. 相關系數

  • 皮爾遜 pearson相關系數和斯皮爾曼spearman等級相關系數。它們可用來衡量兩個變量之間的相關性的大小,根據數據滿足的不同條件,我們要選擇不同的相關系數進行計算和分析(建模論文中最容易用錯的方法)。

1.1 總體和樣本

總體 ——所要考察對象的全部個體叫做總體.
我們總是希望得到總體數據的一些特征(例如均值方差等)

樣本 ——從總體中所抽取的一部分個體叫做總體的一個樣本.

  計算這些抽取的樣本的統計量來估計總體的統計量:
  例如使用樣本均值樣本標准差來估計總體的均值(平均水平)和總體的標准差(偏離程度)。
例子:
  我國10年進行一次的人口普查得到的數據就是總體數據。
  大家自己在QQ群發問卷叫同學幫忙填寫得到的數據就是樣本數據。

1.2 總體皮爾遜Pearson相關系數

在這里插入圖片描述
在這里插入圖片描述

1.3 樣本皮爾遜Pearson相關系數

在這里插入圖片描述

1.4 相關性可視化

在這里插入圖片描述

1.5 關於皮爾遜 相關系數的一些理解誤區

借鑒明羊羊鏈接

在這里插入圖片描述


這里的相關系數只是用來衡量兩個變量線性相關程度的指標
換句話說,必須先確認這兩個變量是線性相關的,然后這個相關系數才能判斷相關程度如何。


注意:
  如果兩個變量本身就是線性的關系,那么皮爾遜相關系數絕對值大的就是相關性強,小的就是相關性弱;
  在不確定兩個變量是什么關系的情況下,即使算出皮爾遜相關系數,發現很大,也不能說明那兩個變量線性相關,甚至不能說他們相關,我們一定要畫出散點圖來看才行。

1.6 對相關系數大小的解釋

在這里插入圖片描述

1.7 描述性統計

Matlab中基本統計量的函數(一般用標粗的)

函數名 功能
min 數組的最小元素
mink 計算數組的 k 個最小元素
max 數組的最大元素
maxk 計算數組的 k 個最大元素
bounds 最小元素和最大元素
topkrows 按排序順序的前若干行
mean 數組的均值
median 數組的中位數值
mode 數組的眾數
skewness 數組的偏度
kurtosis 數組的峰度
std 標准差
var 方差

代碼演示

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]
%將這些統計量放到一個矩陣中表示
RESULT =

   1.0e+03 *

    0.1350    0.0160    1.4500    0.0078    0.0520    0.0005
    0.1710    0.0650    3.2720    0.0150    0.2050    0.0175
    0.1560    0.0468    2.3332    0.0108    0.1668    0.0095
    0.1570    0.0470    2.3910    0.0107    0.1670    0.0096
   -0.0003   -0.0004   -0.0003    0.0007   -0.0008   -0.0002
    0.0027    0.0094    0.0028    0.0033    0.0084    0.0028
    0.0074    0.0050    0.3504    0.0013    0.0168    0.0029

1.8 EXCEL的數據分析工具

在這里插入圖片描述
標題欄:數據 – 數據分析
如果沒有找到,鏈接:Excel數據分析功能在哪里?
在這里插入圖片描述
在這里插入圖片描述
得到結果:
在這里插入圖片描述

1.9 皮爾遜相關系數的計算

  • R = corrcoef(A)
    返回 A 的相關系數的矩陣,其中 A 的列表示隨機變量(指標),行表示觀測值(樣本)
  • R = corrcoef(A,B)
    返回兩個隨機變量A和B(兩個向量)之間的系數。
  • [R,P] = corrcoef(Test)
    R返回的是相關系數表,P返回的是對應於每個相關系數的p值

1.10 對皮爾遜相關系數進行假設檢驗

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

代碼演示

%% 假設檢驗部分
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-')

在這里插入圖片描述

1.11 更好用的方法:p值判斷法

在這里插入圖片描述
代碼演示

%% 計算p值
x = -4:0.1:4;
y = tpdf(x,28);
figure(2)
plot(x,y,'-')
grid on 
hold on

% 畫線段的方法
plot([-3.055,-3.055],[0,tpdf(-3.055,28)],'r-')
plot([3.055,3.055],[0,tpdf(3.055,28)],'r-')
disp('該檢驗值對應的p值為:')
disp((1-tcdf(3.055,28))*2)  %雙側檢驗的p值要乘以2

%% 計算各列之間的相關系數以及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.12 皮爾遜相關系數假設檢驗的條件

在這里插入圖片描述

1.13 正態分布JB檢驗(大樣本 n>30)

在這里插入圖片描述

1.14 偏度和峰度

在這里插入圖片描述
代碼演示

x = normrnd(2,3,100,1)  

% 生成100*1的隨機向量,每個元素是均值為2,標准差為3的正態分布
skewness(x)  %偏度
kurtosis(x)  %峰度

1.15 MATLAB結果

MATLAB中進行JB檢驗的語法:[h,p] = jbtest(x,alpha)
當輸出
h等於1時,表示拒絕原假設;
h等於0則代表不能拒絕原假設。
alpha就是顯著性水平,一般取0.05,此時置信水平為1‐0.05=0.95
x就是我們要檢驗的隨機變量,注意這里的x只能是向量。

%% 正態分布檢驗
% 檢驗第一列數據是否為正態分布
[h,p] = jbtest(Test(:,1),0.05)

% 用循環檢驗所有列的數據
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)

1.16 小樣本3≤n≤50:Shapiro-wilk檢驗

在這里插入圖片描述

1.17 另一種常見的方法:Q-Q圖

在這里插入圖片描述

qqplot(Test(:,1))  % 第一列數據和正態分布的Q-Q圖

在這里插入圖片描述

1.18 斯皮爾曼spearman相關系數

斯皮爾曼相關系數被定義成等級之間的皮爾遜相關系數。
在這里插入圖片描述
代碼演示

% MATLAB求解皮爾遜相關系數
RX = [2 5 3 4 1]
RY = [1 4.5 3 4.5 2]
R = corrcoef(RX,RY)
>> %% MATLAB求解皮爾遜相關系數
RX = [2 5 3 4 1]
RY = [1 4.5 3 4.5 2]
R = corrcoef(RX,RY)

RX = 2     5     3     4     1

RY = 1.0000    4.5000    3.0000    4.5000    2.0000

R = 1.0000    0.8721
    0.8721    1.0000

1.19 MATLAB中計算斯皮爾曼相關系

在這里插入圖片描述
代碼演示

X = [3 8 4 7 2]' % 一定要是列向量,一撇'表示求轉置
Y = [5 10 9 10 6]'
coeff = corr(X , Y , 'type' , 'Spearman')

代碼過程

>> X = [3 8 4 7 2]' % 一定要是列向量,一撇'表示求轉置
Y = [5 10 9 10 6]'
coeff = corr(X , Y , 'type' , 'Spearman')

X =
     3
     8
     4
     7
     2

Y =
     5
    10
     9
    10
     6

coeff = 0.8721  %這說明Matlab使用的是第二種計算方法

1.20 斯皮爾曼相關系數的假設檢驗

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

1.21 兩個相關系數的比較

在這里插入圖片描述
參考鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM