數學建模常用模型13 :相關性分析
相關分析研究的是兩個變數的相關性,但你研究的兩個變數必須是有關聯的,如果你把歷年人口總量和你歷年的身高做相關性分析,分析結果會呈現顯著地相關,但它沒有實際的意義,因為人口總量和你的身高都是逐步增加的,從資料上來說是有一致性,但他們沒有現實意義。
相關性分析和聚類分析一樣,比較簡單,數學建模中經常用,但是每次都只用一小步,或者只是對資料進行一下分析,根據分析的結果確定使用的方法,所以這些方法不要掌握的特別深,能會用SPSS實現就行。相關性分析可以是簡單的理解為各個變數之間的相關程度。
相關性分析的SPSS操作不在演示,比較簡單,大家可以參考下面連結操作一下。
一般這樣認為:
0.8-1.0
0.6-0.8 強相關
0.4-0.6 中等程度相關
0.2-0.4 弱相關
0.0-0.2 極弱相關或無相關
Sperman或kendall等級相關分析
Person相關(樣本點的個數比較多)//一般常用皮爾遜相關
Copula相關(比較難,金融數學,概率密度)
典型相關分析(因變數組Y1234,自變數組X1234,各自變數組相關性比較強,問哪一個因變數與哪一個自變數關係比較緊密?)
下面是一個典型相關性分析的MATLAB的程式,想看的可以看一下
例 滿意度典型相關分析
某調查公司從一個大型零售公司隨機調查了 784 人,測量了 5 個職業特性指標和 7個職業滿意變數,有關的變數見表 1討論兩組指標之間是否相聯絡。
表1 指標變量表
X組 |
X1—使用者反饋,X2—任務重要性,X3—任務多樣性,X4—任務特殊性 X5—自主性 |
Y組 |
Y1—主管滿意度,Y2—事業前景滿意度,Y3—財政滿意度,Y4—工作強度滿意度,Y5—公司地位滿意度, Y6—工作滿意度,Y7—總體滿意度 |
相關係數矩陣資料見表 2
表2 相關係數矩陣資料
X1 |
X2 |
X3 |
X4 |
X5 |
Y1 |
Y2 |
Y3 |
Y4 |
Y5 |
Y6 |
Y7 |
|
X1 |
1.00 |
0.49 |
0.53 |
0.49 |
0.51 |
0.33 |
0.32 |
0.20 |
0.19 |
0.30 |
0.37 |
0.21 |
X2 |
0.49 |
1.00 |
0.57 |
0.46 |
0.53 |
0.30 |
0.21 |
0.16 |
0.08 |
0.27 |
0.35 |
0.20 |
X3 |
0.53 |
0.57 |
1.00 |
0.48 |
0.57 |
0.31 |
0.23 |
0.14 |
0.07 |
0.24 |
0.37 |
0.18 |
X4 |
0.49 |
0.46 |
0.48 |
1.00 |
0.57 |
0.24 |
0.22 |
0.12 |
0.19 |
0.21 |
0.29 |
0.16 |
X5 |
0.51 |
0.53 |
0.57 |
0.57 |
1.00 |
0.38 |
0.32 |
0.17 |
0.23 |
0.32 |
0.36 |
0.27 |
Y1 |
0.33 |
0.30 |
0.31 |
0.24 |
0.38 |
1.00 |
0.43 |
0.27 |
0.24 |
0.34 |
0.37 |
0.40 |
Y2 |
0.32 |
0.21 |
0.23 |
0.22 |
0.32 |
0.43 |
1.00 |
0.33 |
0.26 |
0.54 |
0.32 |
0.58 |
Y3 |
0.20 |
0.16 |
0.14 |
0.12 |
0.17 |
0.27 |
0.33 |
1.00 |
0.25 |
0.46 |
0.29 |
0.45 |
Y4 |
0.19 |
0.08 |
0.07 |
0.19 |
0.23 |
0.24 |
0.26 |
0.25 |
1.00 |
0.28 |
0.30 |
0.27 |
Y5 |
0.30 |
0.27 |
0.24 |
0.21 |
0.32 |
0.34 |
0.54 |
0.46 |
0.28 |
1.00 |
0.35 |
0.59 |
Y6 |
0.37 |
0.35 |
0.37 |
0.29 |
0.36 |
0.37 |
0.32 |
0.29 |
0.30 |
0.35 |
1.00 |
0.31 |
Y7 |
0.21 |
0.20 |
0.18 |
0.16 |
0.27 |
0.40 |
0.58 |
0.45 |
0.27 |
0.59 |
0.31 |
1.00 |
一些計算結果的資料見下面的表格。
表3 的典型變數
u1 |
u2 |
u3 |
u4 |
u5 |
|
X1 |
0.421704 |
-0.34285 |
0.857665 |
-0.78841 |
0.030843 |
X2 |
0.195106 |
0.668299 |
-0.44343 |
-0.26913 |
0.983229 |
X3 |
0.167613 |
0.853156 |
0.259213 |
0.468757 |
-0.91414 |
X4 |
-0.02289 |
-0.35607 |
0.423106 |
1.042324 |
0.524367 |
X5 |
0.459656 |
-0.72872 |
-0.97991 |
-0.16817 |
-0.43924 |
表 4原始變數與本組典型變數之間的相關係數
u1 |
u2 |
u3 |
u4 |
u5 |
|
X1 |
0.829349 |
-0.10934 |
0.48534 |
-0.24687 |
0.061056 |
X2 |
0.730368 |
0.436584 |
-0.20014 |
0.002084 |
0.485692 |
X3 |
0.753343 |
0.466088 |
0.105568 |
0.301958 |
-0.33603 |
X4 |
0.615952 |
-0.22251 |
0.205263 |
0.661353 |
0.302609 |
X5 |
0.860623 |
-0.26604 |
-0.38859 |
0.148424 |
-0.12457 |
V1 |
V2 |
V3 |
V4 |
V5 |
|
Y1 |
0.756411 |
0.044607 |
0.339474 |
0.129367 |
-0.33702 |
Y2 |
0.643884 |
0.358163 |
-0.17172 |
0.352983 |
-0.33353 |
Y3 |
0.387242 |
0.037277 |
-0.17673 |
0.53477 |
0.414847 |
Y4 |
0.377162 |
0.791935 |
-0.00536 |
-0.28865 |
0.334077 |
Y5 |
0.653234 |
0.108391 |
0.209182 |
0.437648 |
0.434613 |
Y6 |
0.803986 |
-0.2416 |
-0.23477 |
-0.40522 |
0.196419 |
Y7 |
0.502422 |
0.162848 |
0.4933 |
0.188958 |
0.067761 |
表 5原始變數與對應組典型變數之間的相關係數
V1 |
V2 |
V3 |
V4 |
V5 |
|
X1 |
0.459216 |
0.025848 |
-0.05785 |
0.017831 |
0.003497 |
X2 |
0.404409 |
-0.10321 |
0.023854 |
-0.00015 |
0.027816 |
X3 |
0.417131 |
-0.11019 |
-0.01258 |
-0.02181 |
-0.01924 |
X4 |
0.341056 |
0.052602 |
-0.02446 |
-0.04777 |
0.01733 |
X5 |
0.476532 |
0.062893 |
0.046315 |
-0.01072 |
-0.00713 |
u1 |
u2 |
u3 |
u4 |
u5 |
|
Y1 |
0.41883 |
-0.01055 |
-0.04046 |
-0.00934 |
-0.0193 |
Y2 |
0.356523 |
-0.08467 |
0.020466 |
-0.0255 |
-0.0191 |
Y3 |
0.214418 |
-0.00881 |
0.021064 |
-0.03863 |
0.023758 |
Y4 |
0.208837 |
-0.18722 |
0.000639 |
0.020849 |
0.019133 |
Y5 |
0.3617 |
-0.02562 |
-0.02493 |
-0.03161 |
0.02489 |
Y6 |
0.445172 |
0.057116 |
0.027981 |
0.029268 |
0.011249 |
Y7 |
0.278194 |
-0.0385 |
-0.05879 |
-0.01365 |
0.003881 |
表6 典型相關係數
1 |
2 |
3 |
4 |
5 |
0.5537 |
0.2364 |
0.1192 |
0.0722 |
0.0573 |
MATLAB原始碼:
clc,clear
load r.txt %原始的相關係數矩陣儲存在純文字檔案r.txt中
n1=5;n2=7;num=min(n1,n2);
s1=r(1:n1,1:n1); %提出X與X的相關係數
s12=r(1:n1,n1+1:end); %提出X與Y的相關係數
s21=s12'; %提出Y與X的相關係數
s2=r(n1+1:end,n1+1:end); %提出Y與Y的相關係數
m1=inv(s1)*s12*inv(s2)*s21; %計算矩陣M1
m2=inv(s2)*s21*inv(s1)*s12; %計算矩陣M2
[vec1,val1]=eig(m1); %求M1的特徵向量和特徵值
for i=1:n1
vec1(:,i)=vec1(:,i)/sqrt(vec1(:,i)'*s1*vec1(:,i)); %特徵向量歸一化,滿足a's1a=1
vec1(:,i)=vec1(:,i)/sign(sum(vec1(:,i))); %特徵向量乘以1或-1,保證所有分量和為正
end
val1=sqrt(diag(val1)); %計算特徵值的平方根
[val1,ind1]=sort(val1,'descend'); %按照從大到小排列
a=vec1(:,ind1(1:num)) %取出X組的係數陣
dcoef1=val1(1:num) %提出典型相關係數
[vec2,val2]=eig(m2);
for i=1:n2
vec2(:,i)=vec2(:,i)/sqrt(vec2(:,i)'*s2*vec2(:,i)); %特徵向量歸一化,滿足b's2b=1
vec2(:,i)=vec2(:,i)/sign(sum(vec2(:,i))); %特徵向量乘以1或-1,保證所有分量和為正
end
val2=sqrt(diag(val2)); %計算特徵值的平方根
[val2,ind2]=sort(val2,'descend'); %按照從大到小排列
b=vec2(:,ind2(1:num)) %取出Y組的係數陣
dcoef2=val2(1:num) %提出典型相關係數
x_u_r=s1*a %x,u的相關係數
y_v_r=s2*b %y,v的相關係數
x_v_r=s12*b %x,v的相關係數
y_u_r=s21*a %y,u的相關係數
mu=sum(x_u_r.^2)/n1 %x組原始變數被u_i解釋的方差比例
mv=sum(x_v_r.^2)/n1 %x組原始變數被v_i解釋的方差比例
nu=sum(y_u_r.^2)/n2 %y組原始變數被u_i解釋的方差比例
nv=sum(y_v_r.^2)/n2 %y組原始變數被v_i解釋的方差比例
fprintf('X組的原始變數被u1~u%d解釋的比例為%f\n',num,sum(mu));
fprintf('Y組的原始變數被v1~v%d解釋的比例為%f\n',num,sum(nv));
可以看出,所有五個表示職業特性的變數與有大致相同的相關係數,視為形容職業特性的指標。第一對典型變數的第二個成員V1與Y1,Y2,Y5,Y6有較大的相關係數,說明V1主要代表了主管滿意度,事業前景滿意度,公司地位滿意度和工種滿意度。而U1和V1之間的相關係數0.5537。
u1和v1解釋的本組原始變數的比率:
,
X組的原始變數被到解釋了100%, Y 組的原始變數被到解釋了80.3%。