Chapter 07-Basic statistics(Part3 correlations)
这一部分使用R基础已安装包中的state.x77数据集。该数据集的数据是关于美国50个州在1977年对人口,收入,文盲率,平均寿命,谋杀率,高中毕业率统计所得。
1.关联的种类(types of correlations)
(1)PEARSON,SPEARMAN,KENDALL CORRELATIONS
·Pearson:评估两个数值变量间的线性关系的程度的暂时性关联;
·Spearman’s Rank Order:评估两个有排序关系的变量的相关率;
·Kendall's Tau:是非参数参与的排序关联。
cor(x,use=,method=)
其中,缺省时,use="everything",method="pearson"
例01:
> 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) 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") 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
·cov()函数:产生了variances & covariances;
·cor()函数:提供了Pearson Product Moment correlation coefficients;
·cor( ,method="spearman"):提供了Spearman Rank Order correlation coefficients。
例02:
> 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
用上面的方法可以产生非方矩阵(nonsquare matrices)。
注意,结果不能表明是否the correlations differ significantly from 0,故需要tests of significance.
(2)部分关联(PARTIAL CORRELATIONS)
partial correlation: a correlation between two quantitative variables,controlling for one or more other quantitative variables.
ggm包中的pcor()函数:提供partial correlation coefficients。
pcor(u,S)
·u: 数据的向量,前两个数标记需要关联的数,剩余的数标记其他conditioning variables,即variables being partialed out;
·S: covariance matrix among the variables。
例03:
> library(ggm)
> # partial correlation of population and murder rate, controlling
> # for income, illiteracy rate, and HS graduation rate
> pcor(c(1,5,2,3,6), cov(states))
[1] 0.346
注释:0.346是指人口与谋杀率之间的correlation,并且要控制收入,文盲率,高中毕业率的影响。
(3)OTHER TYPES OF CORRELATIONS
polycor()包中的函数hetcor()函数:计算一个heterogeneous correlation matrix,
在数值变量(numerical variables)间包含Pearson product-moment correlations,
在数值变量与常量(ordinal variables)间有polyserial correlations,
在常量间有polychoric correlations,
在two dichotomous variables间有tetrachoric correlations。
2. 测试关联的重要值(Testing correlations for significance)
cor.test()函数:测试一个个体的Pearson,Spearman,Kendall correlation coefficient.
cor.test(x,y,alternative=,method=)
·x与y:是要被关联的变量;
·alternative:特指two-tailed,one-tailed test, ("two.side","less","greater");
alternative="less":研究的假设是人口关联小于0;
alternative="greater":研究的假设是人口关联大于0;
缺省状态是,alternative="two side".
·method:特指关联的方式,(“pearson”,“kendall”,“spearman”)。
例04:
> states<-state.x77[,1:6] > cor(states)
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.test(states[,3],states[,5]) Pearson's product-moment correlation data: states[, 3] and states[, 5] t = 6.8479, df = 48, p-value = 1.258e-08 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.5279280 0.8207295 sample estimates: cor 0.7029752
注意:cor.test()函数一次只能测试一组关联。
corr.test()函数(psych包中)为pearson,spearman,kendall关联的矩阵提供关联与重要值。
例05:
> library(psych) > corr.test(states,use="complete") Call:corr.test(x = states, use = "complete") Correlation matrix Population Income Illiteracy Life Exp Murder HS Grad Population 1.00 0.21 0.11 -0.07 0.34 -0.10 Income 0.21 1.00 -0.44 0.34 -0.23 0.62 Illiteracy 0.11 -0.44 1.00 -0.59 0.70 -0.66 Life Exp -0.07 0.34 -0.59 1.00 -0.78 0.58 Murder 0.34 -0.23 0.70 -0.78 1.00 -0.49 HS Grad -0.10 0.62 -0.66 0.58 -0.49 1.00 Sample Size [1] 50 Probability values (Entries above the diagonal are adjusted for multiple tests.) Population Income Illiteracy Life Exp Murder HS Grad Population 0.00 0.59 1.00 1.0 0.10 1 Income 0.15 0.00 0.01 0.1 0.54 0 Illiteracy 0.46 0.00 0.00 0.0 0.00 0 Life Exp 0.64 0.02 0.00 0.0 0.00 0 Murder 0.01 0.11 0.00 0.0 0.00 0 HS Grad 0.50 0.00 0.00 0.0 0.00 0
注意:corr.test()函数中:
·use="pairwise"或"complete", pairwise deletion of missing values respectively;
·method="pearson"(缺省), "spearman", "kendall".
psych包中的pcor.test()函数:用来测试conditional independence of two variables controlling for one or more additional variables,assuming multivariate normality.
pcor.test(r,q,n)
r:pcor()函数产生的partial correlation;
q:被控制的变量数;
n:样本大小。
psych包中的r.test()函数:提供许多significance的测试。