如何在 R 資料框中找到顯著的相關性?


為了在 R 資料框中找到顯著的相關性,我們需要找到相關性檢驗的 p 值矩陣。這可以透過使用 Hmisc 包中的 rcorr 函式並讀取輸出作為矩陣來完成。例如,如果我們有一個名為 df 的資料框,則可以透過使用 rcorr(as.matrix(df)) 來找到具有 p 值的相關性矩陣。

示例 1

考慮以下資料框 -

線上演示

> x1<-rnorm(20)
> x2<-rnorm(20)
> x3<-rnorm(20)
> df1<-data.frame(x1,x2,x3)
> df1

輸出

            x1          x2          x3
1  -0.96730523 -1.73067540 -0.01974065
2   0.08564529 -0.05200856  0.76356487
3  -0.33694783 -0.30326744 -0.04760562
4   0.54367676  2.35227967  1.43707451
5   1.12280219 -0.18757952 -1.32278427
6  -0.33947234  0.23128580 -0.05856621
7   0.44756887 -1.38533649 -1.00647630
8  -2.51192456  1.05865975  0.28503664
9  -0.29031722  1.02173256  0.15224756
10  0.36920006  0.17323515 -0.35192833
11 -0.17268384 -1.14498165  0.03180043
12 -0.20811125 -0.49241097 -0.60731423
13 -0.03852074  0.41839372  0.93668284
14  1.98958724  0.85683240 -1.80125628
15 -1.46587108 -0.72375704  0.69243074
16  1.36737574  0.09767378  0.31809893
17 -1.23625739 -1.63587272  0.67043038
18  0.12273089 -0.77565928 -1.48336472
19  0.82783551  0.82508774  0.20627496
20 -0.08917803  0.60930926 -1.92432261

載入 Hmisc 包並找到 df1 中各列的相關性檢驗的 p 值矩陣 -

> library(Hmisc)
> rcorr(as.matrix(df1))

輸出

      x1   x2    x3
x1  1.00 0.25 -0.38
x2  0.25 1.00  0.16
x3 -0.38 0.16  1.00

示例

n = 20
P

輸出

      x1     x2     x3  
x1        0.2899 0.1030
x2 0.2899        0.4919
x3 0.1030 0.4919      

示例 2

線上演示

> y1<-rpois(20,2)
> y2<-rpois(20,5)
> y3<-rpois(20,1)
> y4<-rpois(20,1)
> y5<-rpois(20,5)
> df2<-data.frame(y1,y2,y3,y4,y5)
> df2

輸出

   y1 y2 y3 y4 y5
1   2  5  1  1  2
2   2  1  1  0  7
3   1  2  1  0  4
4   1  5  1  0  5
5   4  6  0  2  6
6   2  4  2  0  2
7   2  0  1  0  3
8   4  8  1  1  5
9   0  3  1  1  5
10  0  2  0  3  5
11  1  5  2  1  3
12  0  2  1  0  6
13  3  5  3  0  7
14  3  6  0  0  3
15  0  6  0  1  9
16  3  4  2  1  0
17  1  5  0  2  6
18  0  7  2  2  6
19  2  5  0  1  4
20  1  3  3  0  8

找到 df2 中各列的相關性檢驗的 p 值矩陣 -

> rcorr(as.matrix(df2))

輸出

      y1    y2    y3    y4    y5
y1  1.00  0.32  0.03 -0.16 -0.32
y2  0.32  1.00 -0.06  0.31  0.07
y3  0.03 -0.06  1.00 -0.40 -0.04
y4 -0.16  0.31 -0.40  1.00  0.06
y5 -0.32  0.07 -0.04  0.06  1.00

示例

n= 20

輸出

      y1     y2     y3     y4     y5  
y1        0.1667 0.8898 0.4971 0.1714
y2 0.1667        0.7915 0.1873 0.7800
y3 0.8898 0.7915        0.0795 0.8694
y4 0.4971 0.1873 0.0795        0.8066
y5 0.1714 0.7800 0.8694 0.8066      

示例 3

線上演示

> z1<-runif(20,2,5)
> z2<-runif(20,2,10)
> z3<-runif(20,5,10)
> df3<-data.frame(z1,z2,z3)
> df3

輸出

         z1       z2       z3
1  2.551367 4.399332 7.336909
2  3.513887 4.358521 5.377418
3  3.912958 9.211070 6.693739
4  4.878766 4.827914 9.044594
5  2.290927 5.935495 8.265392
6  3.225698 8.094953 8.095421
7  4.508908 3.864593 8.245445
8  3.418809 9.196999 8.158323
9  3.394496 2.589988 7.007051
10 3.395509 4.175238 5.704264
11 2.730546 6.833714 6.910100
12 4.147959 2.176295 6.996571
13 2.198546 6.049636 7.975485
14 2.275193 4.090590 7.933500
15 3.095163 6.409786 9.948502
16 2.388818 4.006544 9.998355
17 2.138960 5.293971 8.822274
18 2.439146 4.649725 7.313394
19 4.026674 8.068449 8.128699
20 4.436093 2.695067 6.952906

找到 df3 中各列的相關性檢驗的 p 值矩陣 -

> rcorr(as.matrix(df3))

輸出

      z1    z2    z3
z1  1.00 -0.08 -0.18
z2 -0.08  1.00  0.17
z3 -0.18  0.17  1.00

示例

n = 20
P

輸出

      z1     z2     z3  
z1        0.7265 0.4435
z2 0.7265        0.4641
z3 0.4435 0.4641      

更新於: 2021-03-05

506 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.