相关系数能够用来描述定量变量之间的关系,相关系数的符号(+-)代表关系的方向(正相关或负相关),其值大小表示关系的强弱程度(彻底不相关时为0,彻底相关时为1)函数
Pearson积差相关系数衡量了两个定量变量之间的线性相关程度spa
Spearman等级相关系数则衡量分级定序变量之间的相关程度code
Kendall’s Tau相关系数也是一种非参数的等级相关度量it
cov()函数用来计算协方差io
cor()函数用来计算上述三种相关系数, 参数不少,格式为table
cor(x, use= ,method= )
参数 | 描述 |
x | 矩阵或数据框 |
use | 指定缺失数据的处理方式。可选的方式为 all.obs(假设不存在缺失的数据--遇到缺失数据是将报错) everything(遇到缺失是,相关系数的计算结果将被missing) complete.obs(行删除) pairwise.complete.obs(成对删除,pairwise deletion) 默认参数为:use=“everything” |
method | 指定系数的类型。可选类型为pearson、spearman或kendall 默认参数为:method=“pearson” |
例变量
> states<- state.x77[,1:6] > cov(states) #计算协方差和方差 #在几率论和统计学中,协方差用于衡量两个变量的整体偏差,而方差是协方差的一种特殊状况,既当两个变量相同的状况 Population Income Illiteracy Life Exp Murder HS Grad Population 19931683.7588 571229.7796 292.8679592 -407.8424612 5663.523714 -3551.509551 Income 571229.7796 377573.3061 -163.7020408 280.6631837 -521.894286 3076.768980 Illiteracy 292.8680 -163.7020 0.3715306 -0.4815122 1.581776 -3.235469 Life Exp -407.8425 280.6632 -0.4815122 1.8020204 -3.869480 6.312685 Murder 5663.5237 -521.8943 1.5817755 -3.8694804 13.627465 -14.549616 HS Grad -3551.5096 3076.7690 -3.2354694 6.3126849 -14.549616 65.237894 > cor(states) #计算Pearson积差相关系数 Population Income Illiteracy Life Exp Murder HS Grad Population 1.00000000 0.2082276 0.1076224 -0.06805195 0.3436428 -0.09848975 Income 0.20822756 1.0000000 -0.4370752 0.34025534 -0.2300776 0.61993232 Illiteracy 0.10762237 -0.4370752 1.0000000 -0.58847793 0.7029752 -0.65718861 Life Exp -0.06805195 0.3402553 -0.5884779 1.00000000 -0.7808458 0.58221620 Murder 0.34364275 -0.2300776 0.7029752 -0.78084575 1.0000000 -0.48797102 HS Grad -0.09848975 0.6199323 -0.6571886 0.58221620 -0.4879710 1.00000000 > cor(states, method="spearman") #计算了Spearman等级相关系数 Population Income Illiteracy Life Exp Murder HS Grad Population 1.0000000 0.1246098 0.3130496 -0.1040171 0.3457401 -0.3833649 Income 0.1246098 1.0000000 -0.3145948 0.3241050 -0.2174623 0.5104809 Illiteracy 0.3130496 -0.3145948 1.0000000 -0.5553735 0.6723592 -0.6545396 Life Exp -0.1040171 0.3241050 -0.5553735 1.0000000 -0.7802406 0.5239410 Murder 0.3457401 -0.2174623 0.6723592 -0.7802406 1.0000000 -0.4367330 HS Grad -0.3833649 0.5104809 -0.6545396 0.5239410 -0.4367330 1.0000000
#计算非方形的相关矩阵 > x <- states[,c("Population", "Income", "Illiteracy", "HS Grad")] > y <- states[,c("Life Exp", "Murder")] > cor(x,y) Life Exp Murder Population -0.06805195 0.3436428 Income 0.34025534 -0.2300776 Illiteracy -0.58847793 0.7029752 HS Grad 0.58221620 -0.4879710
是指控制一个或多个定量变量时,另外两个定量变量之间的相互关系,能够使用ggm包的pcor()函数家us年偏相关系数,格式为统计
pcor(u , s)
其中的 u 是一个数值向量,前两个数值表示要计算相关系数的变量下标,其他的数值为条件变量(即要排除影响的变量)的下标,其他的数值为条件变量(即要排除影响的变量)的下标,S为变量的协方差阵数据
例tab
> library(ggm) > colnames(states) [1] "Population" "Income" "Illiteracy" "Life Exp" "Murder" "HS Grad" > pcor(c(1,5,2,3,6), cov(states)) [1] 0.3462724 #本例中,在控制了收入、文盲率、高中毕业率的影响时,人口和谋杀率之间的相关系数为0.346,偏相关系数经常使用于社会科学的研究中
polycor包中的hetcor()函数能够计算一种混合的相关矩阵,其中包括数值型变量的Pearson积差相关系数、数值型变量和有序变量之间的多系列相关系数、有序变量之间的多分格相关系数以及二分变量之间的四分相关系数,多系列、多分格和四分相关系数都假设有序变量或二分变量由潜在的正态分布导出,更多参考帮助吧