典型相關分析及R應用
阿新 • • 發佈:2018-11-12
目錄
什麼是典型相關分析
用於探討一組解釋變數-亦即預測變數與一組反應變數間的關係即是典型相關分析-canonical correlation analysis,比如在體育訓練中,考察運動員身體的各項指標與訓練成績之間的關係,典型相關分析可以說是複相關分析的延伸。
典型相關分析基本架構
簡單相關分析
多變數相關分析
典型相關分析
典型相關分析的基本原理
假設有兩組變數,採用類似主成分分析的做法,在每一組變數中選擇若干個有代表性的綜合指標-變數的線性組合,通過研究兩組的綜合指標之間的關係來反映兩組變數之間的相關關係,基本原理如下:首先在魅族變數中找出變數的線性組合,使其具有最大相關性,然後再每組變數中找出第二對線性組合,使其分別與第一對線性組合不相關,而第二對線性組合本身具有最大的相關性,如此繼續下去,直到兩組變數之間的相關性被提取完畢。
R實現
20名中年人的生理指標和訓練指標
x1 x2 x3 y1 y2 y3 191 36 50 5 162 60 189 37 52 2 110 60 193 38 58 12 101 101 162 35 62 12 105 37 189 35 46 13 155 58 182 36 56 4 101 42 211 38 56 8 101 38 167 34 60 6 125 40 176 31 74 15 200 40 154 33 56 17 251 250 169 34 50 17 120 38 166 33 52 13 210 115 154 34 64 14 215 105 247 46 50 1 50 50 193 36 46 6 70 31 202 37 62 12 210 120 176 37 54 4 60 25 157 32 52 11 230 80 156 33 54 15 225 73 138 33 68 2 110 43
計算相關係數矩陣
> X=read.table("clipboard",header=T)#讀取例11.1資料 > (R=cor(X)) x1 x2 x3 y1 y2 y3 x1 1.0000000 0.8702435 -0.36576203 -0.3896937 -0.4930836 -0.22629556 x2 0.8702435 1.0000000 -0.35289213 -0.5522321 -0.6455980 -0.19149937 x3 -0.3657620 -0.3528921 1.00000000 0.1506480 0.2250381 0.03493306 y1 -0.3896937 -0.5522321 0.15064802 1.0000000 0.6957274 0.49576018 y2 -0.4930836 -0.6455980 0.22503808 0.6957274 1.0000000 0.66920608 y3 -0.2262956 -0.1914994 0.03493306 0.4957602 0.6692061 1.00000000 >
求特徵值和典型相關係數
> R11=R[1:3,1:3]
> R12=R[1:3,4:6]
> R21=R[4:6,1:3]
> R22=R[4:6,4:6]
> A=solve(R11)%*%R12%*%solve(R22)%*%R21
> ev=eigen(A)$values# 特徵值
> ev
[1] 0.632992335 0.040222726 0.005266446
> sqrt(ev)#典型相關係數
[1] 0.79560815 0.20055604 0.07257029
>
典型相關係數檢驗,確定典型變數
> xy=scale(X)#資料標準化
> ca=cancor(xy[,1:3],xy[,4:6])#典型相關分析
> ca$cor#典型相關係數
[1] 0.79560815 0.20055604 0.07257029
> ca$xcoef#第一組變數的典型載荷
[,1] [,2] [,3]
x1 -0.17788841 -0.43230348 0.04381432
x2 0.36232695 0.27085764 -0.11608883
x3 -0.01356309 -0.05301954 -0.24106633
> ca$ycoef#第二組變數的典型載荷
[,1] [,2] [,3]
y1 -0.08018009 -0.08615561 0.29745900
y2 -0.24180670 0.02833066 -0.28373986
y3 0.16435956 0.24367781 0.09608099
>
檢驗
> library(mvstats)
> cancor.test(xy[,1:3],xy[,4:6],plot=T)#典型相關分析及檢驗作圖
$`cor`
[1] 0.79560815 0.20055604 0.07257029
$xcoef
[,1] [,2] [,3]
x1 -0.17788841 -0.43230348 0.04381432
x2 0.36232695 0.27085764 -0.11608883
x3 -0.01356309 -0.05301954 -0.24106633
$ycoef
[,1] [,2] [,3]
y1 -0.08018009 -0.08615561 0.29745900
y2 -0.24180670 0.02833066 -0.28373986
y3 0.16435956 0.24367781 0.09608099
$xcenter
x1 x2 x3
-5.551115e-18 -1.942890e-17 1.821460e-17
$ycenter
y1 y2 y3
-2.775558e-17 3.330669e-17 3.365364e-17
cancor test:
r Q P
[1,] 0.79560815 16.2549575 0.06174456
[2,] 0.20055604 0.6718487 0.95475464
[3,] 0.07257029 0.0712849 0.78947507
>
廣州省能源消費量與經濟增長之間的典型相關分析
年份 x1 x2 x3 x4 y1 y2 y3 y4 y5 y6
1984 867.7 483.52 662.35 30 145.25 154.33 33.22 125.93 5576.6 818.37
1985 955.2 531.74 700.16 30.03 171.87 185.81 44.01 175.69 5656.6 954.12
1986 1019.3 624.53 797.59 231.83 188.37 208.46 47.42 223.28 5740.7 1102.1
1987 1144.4 678.17 944.6 175.46 232.14 273.77 56.58 284.2 5832.1 1320.9
1988 1451.1 756.01 1017.6 165.54 306.5 386.35 73.82 388.7 5928.3 1583.1
1989 1575.2 893.28 1112.6 375.61 351.73 464.06 90.07 475.53 6025 2086.2
1990 1326 919.61 1313.7 474.8 384.59 523.42 92.45 558.58 6246.3 2303.2
1991 1459.2 1055.7 1515.5 517.89 416 675.55 107.12 694.63 6348.9 2752.2
1992 1535.9 1149.4 1817 1046.3 465.83 899.28 201.04 881.39 6463.2 3476.7
1993 1693.8 1173.9 2174.5 1779.9 559.67 1380.2 320.73 1171.3 6581.6 4632.4
1994 1749.5 1328.3 2630.8 1605.2 694.65 1847.6 394.37 1580 6692 6367.1
1995 1906.8 1476 2803.7 1575.5 868.99 2413.8 462.91 1988.2 6788.7 7438.7
1996 1804.4 1506.2 3072 2354.6 941.73 2788.8 480.53 2308.1 6896.8 8157.8
1997 1756.3 1472.6 3090.8 3064.6 986.82 3158.7 489.08 2680.9 7013.7 8561.7
1998 1681.3 1737.9 3273.8 2954.2 1004.9 3463.1 528.85 2922.2 7115.6 8839.7
1999 1541.8 1912.5 3454.3 2668.3 1021.3 3705.9 558.44 3178.7 7298.9 9125.9
2000 1552.7 2052.1 4122.4 2757.4 1000.1 4295 573.72 3793.4 7498.5 9761.6
2001 1554.3 2209.2 4506.3 3662.6 1004.4 4732.4 609.2 4301.8 7565.3 10415
2002 1574.9 2346.1 5343.9 4211.2 1032.8 5288.5 647.1 4801.3 7649.3 11137
> d.2=read.table("clipboard",header=T)#選取例11.2資料
> cancor.test(d.2[,1:4],d.2[5:10],plot=T)
$`cor`
[1] 0.9990222 0.9549215 0.7372625 0.4267113
$xcoef
[,1] [,2] [,3] [,4]
x1 -0.01398338 0.2627242 -0.1633945 -0.05500050
x2 0.11886915 0.4359084 1.5136720 -0.02025096
x3 0.09035694 -0.7627282 -1.6045267 -0.96535666
x4 0.03687362 0.1724089 0.1985098 1.04168316
$ycoef
[,1] [,2] [,3] [,4] [,5] [,6]
y1 -0.05900682 1.7711541 1.05700423 1.5686538 -2.689797 -1.4397779
y2 -0.22982193 -5.0796599 3.72100577 1.5689112 12.636121 6.4680292
y3 0.05815256 1.2193116 0.09171477 0.9209067 -1.508867 -3.9679901
y4 0.32722774 4.4699954 -2.21299707 -0.2103381 -12.579865 -6.8854323
y5 0.08585993 -0.3786835 0.95433947 -0.8581875 2.151352 0.7645358
y6 0.05439361 -1.9202108 -3.59564677 -2.9345146 1.884370 4.9775014
$xcenter
x1 x2 x3 x4
3.418318e-16 -4.382459e-17 -8.034509e-17 -9.641410e-17
$ycenter
y1 y2 y3 y4 y5
-5.551115e-17 3.871172e-17 -9.641410e-17 7.888427e-17 3.494098e-16
y6
8.326673e-17
cancor test:
r Q P
[1,] 0.9990222 120.647898 7.438494e-15
[2,] 0.9549215 39.264245 5.850938e-04
[3,] 0.7372625 10.345472 2.416105e-01
[4,] 0.4267113 1.909441 5.914135e-01
>
經檢驗在0.05水平上,有兩個典型相關是顯著的。於是可得前兩對典型變數的線性組合:
-0.01398338x1 + 0.11886915x2 + 0.09035694x3 + 0.03687362x4 = V1
-0.05900682y1 + -0.22982193y2 + 0.05815256y3 + 0.32722774y4 + 0.08585993y5 + 0.05439361y6 = U1
…………
解釋如下:
r1 = 0.9990222,說明u1與v1之間具有高度的相關關係,尤其是擁有絕對值較大的權係數,而各自的線性組合中變數大多為正數,說明能源消耗越高,經濟增長越快。油品,電力,進口能源擁有較大載荷,說明油品,電力是能源消費量的重要指標,在能源消費中占主導地位,x4較x1較大,說明隨著經濟的發展,本地能源不足以滿足經濟發展需求,進口能源逐漸凸顯其重要性。