如何在 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
广告