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

2021-09-12 21:40:21 字數 2581 閱讀 4293

@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]) #相關係數,引數填資料集,則計算相關係數矩陣

#spearman相關係數,亦即秩相關係數

#spearman和kendall都是等級相關係數,亦即其值與兩個相關變數的具體值無關,而僅僅與其值之間的大小關係有關。

#spearman相關係數,亦即秩相關係數,根據隨機變數的等級而不是其原始值衡量相關性的一種方法。

m=c(1,2,4,3);n=c(100,101,102,103)

m1=c(30,31,35,34);n1=c(85,87,90,93)

cor(m,n);cor(m1,n1)

cor(m,n,method = 「spearman」);cor(m1,n1,method = 「spearman」)

cor.test(m,n,method = 「spearman」);cor.test(m1,n1,method = 「spearman」)

#spearman相關係數的計算可以由計算pearson係數的方法,只需要把原隨機變數中的原始資料替換成其在隨機變數中的等級順序即可:

acf #自相關和協方差函式

acf(airmiles,type=『correlation』,lag.max=10) #自相關

pacf(airmiles,lag.max=10) #偏自相關

pairs(~sepal.length+sepal.width+petal.length+petal.width,data=iris,

main=「****** scatterplot matrix」) #散點圖矩陣

install.packages(「scatterplot3d」) #3d散點圖

library(scatterplot3d)

scatterplot3d(irissep

al.l

engt

h,ir

is

sepal.length, iris

sepal.

leng

th,i

rispetal.length, iris$petal.width)

d<-sqrt(1-cor(mtcars)^2)

hc<-hclust(as.dist(d))

plot(hc)

rect.hclust(hc,k=3)

install.packages(「pvclust」)

library(pvclust)

cluster.bootstrap <- pvclust(mtcars, nboot=1000, method.dist=「correlation」)

plot(cluster.bootstrap)

pvrect(cluster.bootstrap) #自己練習部分結束

#典型相關:指兩組變數之間的相關關係,不是兩個變數之間相關關係,也不是兩組變數之間兩兩組合的簡單相關

#兩組變數作為整體的相關性

#例如體育運動和身體狀況的相關性,體育運動包括跑步,籃球,足球,桌球,游泳等變數,身體狀況包括身高,體重,肺活量,血壓等變數

#以r語言自帶的iris為例

#1、提取iris的前4個數值列,並進行標準化處理

data0=scale(iris[1:4])

#2、計算這4個變數的協方差,由於經過標準化處理,這樣得到的也是相關係數

m=cov(data0)

#3、將m進行分塊,1:2兩個變數一組,3:4是另外一組,並進行兩兩組合

x11=m[1:2,1:2]

x12=m[1:2,3:4]

x21=m[3:4,1:2]

x22=m[3:4,3:4]

#4、按公式求解矩陣a和b

a=solve(x11)%%x12%%solve(x22)%%x21

b=solve(x22)%%x21%%solve(x11)%%x12

#5、使用eigen函式求解典型相關係數如下

ev=sqrt(eigen(a)$values)

ev#6、進行驗證

#…比較a與xλx^(-1)是否相等

round(a-eigen(a)vec

tors

vectors%*%diag(eigen(a)

vector

svalues)%*%solve(eigen(a)$vectors),3)

#…比較b與yλy^(-1)是否相等

round(b-eigen(b)vec

tors

vectors%*%diag(eigen(b)

vector

svalues)%*%solve(eigen(b)$vectors),3)

round(cor(cbind(c1,c2)),3)

#用cancor可以直接求解典型相關係數

x<-as.matrix(iris[,1:2])

y<-as.matrix(iris[,3:4])

cancor(x,y)

R語言 典型相關分析

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

R語言 典型相關分析

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

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

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