@
- 數學建模常見的一些方法
- 1. 相關系數
- 1.1 總體和樣本
- 1.2 總體皮爾遜Pearson相關系數
- 1.3 樣本皮爾遜Pearson相關系數
- 1.4 相關性可視化
- 1.5 關於皮爾遜 相關系數的一些理解誤區
- 1.6 對相關系數大小的解釋
- 1.7 描述性統計
- 1.8 EXCEL的數據分析工具
- 1.9 皮爾遜相關系數的計算
- 1.10 對皮爾遜相關系數進行假設檢驗
- 1.11 更好用的方法:p值判斷法
- 1.12 皮爾遜相關系數假設檢驗的條件
- 1.13 正態分布JB檢驗(大樣本 n>30)
- 1.14 偏度和峰度
- 1.15 MATLAB結果
- 1.16 小樣本3≤n≤50:Shapiro-wilk檢驗
- 1.17 另一種常見的方法:Q-Q圖
- 1.18 斯皮爾曼spearman相關系數
- 1.19 MATLAB中計算斯皮爾曼相關系
- 1.20 斯皮爾曼相關系數的假設檢驗
- 1.21 兩個相關系數的比較
- 1. 相關系數
數學建模常見的一些方法
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 斯皮爾曼相關系數的假設檢驗