python實現典型相關分析 R語言典型相關分析

2021-10-17 00:25:34 字數 3125 閱讀 6917

典型相關分析是用於分析兩組隨機變數之間的相關程度的一種統計方法,它能夠有效地揭示兩組隨機變數之間的相互(線性依賴)關係

例如 研究生入學考試成績與本科階段一些主要課程成績的相關性

將研究兩組變數的相關性問題轉化為研究兩個變數的相關性問題

此類相關為典型相關#

2 分類:

總體典型相關

樣本典型相關

3 r語言提供的計算函式:

典型相關計算

cancor(x,y,xcenter=true,ycenter=true)

x,y是相應的資料矩陣 xcenter,ycenter是邏輯變數

true是將資料中心化 false是不中心化

4 分析結果含義

cor是典型相關係數

xcoef是對應於資料x的係數 又稱關於資料x的典型載荷即樣本典型變數u係數矩陣a的轉置

xcenter是資料x的中心 即資料x的樣本均值

y是對應於資料x的係數 又稱關於資料y的典型載荷即樣本典型變數v係數矩陣b的轉置

ycenter是資料y的中心 即資料y的樣本均值

5 分析步驟

(1.)載入原始資料 data.frame

(2.)原始資料標準化 scale

(3.)典型相關分析 cancor

(4.)相關係數顯著性檢驗 corcoef.test.r

i.典型相關分析的計算

現對20名中年人測得三個生理指標:體重(x1) 腰圍(x2)

脈搏(x3);三個訓練指標:引體向上(y1) 起座次數(y2) 跳躍次數(y3) 試分析這組資料的相關性

#用資料框的形式輸入資料矩陣

test

x1=c(191, 193, 189, 211, 176, 169, 154, 193,

176, 156,

189, 162, 182, 167, 154, 166, 247, 202, 157, 138),

x2=c(36, 38, 35, 38, 31, 34, 34, 36, 37,

33,37, 35, 36, 34, 33, 33, 46, 37, 32, 33),

x3=c(50, 58, 46, 56, 74, 50, 64, 46, 54,

54,52, 62, 56, 60, 56, 52, 50, 62, 52, 68),

y1=c( 5, 12, 13, 8, 15, 17,

14, 6, 4, 15,

2, 12, 4, 6, 17,

13, 1, 12, 11, 2),

y2=c(162, 101, 155, 101, 200, 120,

215, 70, 60, 225,

110, 105, 101, 125, 251, 210, 50, 210, 230,

110),

y3=c(60, 101, 58, 38, 40, 38, 105, 31, 25,

73,60, 37, 42, 40, 250, 115, 50, 120, 80, 43)

#為了消除數量級的影響 將資料標準化處理 呼叫scale函式

test

#對標準化的資料做典型相關分析

ca#檢視分析結果

ca結果說明:

1) cor給出了典型相關係數;xcoef是對應於資料x的係數,

即為關於資料x的典型載荷; ycoef為關於資料y的典型載荷;xcenter與$ycenter是資料x與y的中心,

即樣本均值;

2) 對於該問題, 第一對典型變數的表示式為

u1 = -0.17788841x1 0.36232695x2 - 0.01356309x3

u2 = -0.43230348x1 0.27085764x2 - 0.05301954x3

u3 = -0.04381432x1 0.11608883x2 0.24106633x3

v1 = -0.08018009y1 - 0.24180670y2 0.16435956y3

v2 = -0.08615561y1 0.02833066y2 0.24367781y3

v3 = -0.29745900y1 0.28373986y2 - 0.09608099y3

,p(u2,v2)=0.20055604 ,p(u3,v3)=0.07257029

可以進行典型相關係數的顯著性檢驗, 經檢驗也只有第一組典型變數.

下面計算樣本資料在典型變數下的得分:

#計算資料在典型變數下的得分 u=ax v=byuv

#調整圖形

opar

#畫出以相關變數u1、v1和u3、v3為座標的資料散點圖

plot(u[,1], v[,1], xlab="u1", ylab="v1")

plot(u[,3], v[,3], xlab="u3", ylab="v3")

#調整圖形

par(opar)

由散點圖可知

第一典型相關變數分布在一條直線附近;第三典型相關變數資料很分散。因為第一典型變數其相關係數為0.79560815,接近1,所以在一直線附近;第三典型變數的相關係數是0.07257029,接近於0,所以很分散。

ii.典型相關係數的顯著性檢驗

作為相關分析的目的

就是選擇多少對典型變數?因此需要做典型相關係數的顯著性檢驗。若認為相關係數k為0 就沒有必要考慮第k對典型變數了

#相關係數檢驗r程式

corcoef.test

#r為相關係數 n為樣本個數

且n>p qmq

for (k in m:1){

#檢驗統計量

lambda

#檢驗統計量取對數

q[k]si

for (k in 1:m){

#統計量  q[k]

chiif (chi>alpha){is

#顯示輸出結果 選用第幾對典型變數

isource("corcoef.test.r")

#輸入相關係數r,樣本個數n,兩個隨機向量的維數p和q,置信水平a(預設值為0.1)

corcoef.test(r=ca$cor,n=20,p=3,q=3)

#程式輸出值為典型變數的對數

最終程式執行結果顯示選擇第一對典型相關變數。我們只利用第一典型變數分析問題,達到降維的目的。

write.csv(test,"test_test.csv")

R語言 典型相關分析

1 關鍵點 典型相關分析 典型相關分析是用於分析兩組隨機變數之間的相關程度的一種統計方法,它能夠有效地揭示兩組隨機變數之間的相互 線性依賴 關係 例如 研究生入學考試成績與本科階段一些主要課程成績的相關性 將研究兩組變數的相關性問題轉化為研究兩個變數的相關性問題 此類相關為典型相關 3 r語言提供的...

R語言 典型相關分析

1 關鍵點 典型相關分析 典型相關分析是用於分析兩組隨機變數之間的相關程度的一種統計方法,它能夠有效地揭示兩組隨機變數之間的相互 線性依賴 關係 例如 研究生入學考試成績與本科階段一些主要課程成績的相關性 將研究兩組變數的相關性問題轉化為研究兩個變數的相關性問題 此類相關為典型相關 總體典型相關 樣...

R語言 相關分析和典型相關分析

r語言相關分析與典型相關分析 相關分析與典型相關分析 pearson相關係數 a c 1,3,5,7,9 b c 1,4,6,9,10 cor a,b pearson相關係數 cor.test a,b 檢驗相關係數的顯著性 cor iris 1 4 相關係數,引數填資料集,則計算相關係數矩陣 spe...