zoukankan      html  css  js  c++  java
  • 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的测试。

  • 相关阅读:
    Search Insert Position(二分查找)
    c++基础题
    Divide Two Integers(模拟计算机除法)
    Swap Nodes in Pairs(链表操作)
    Letter Combinations of a Phone Number(带for循环的DFS,组合问题,递归总结)
    进程和程序的区别
    Add Two Numbers(链表)
    Longest Substring Without Repeating Characters
    02.友盟项目--原始日志数据生成
    01.友盟项目--nginx服务器配置
  • 原文地址:https://www.cnblogs.com/wangshenwen/p/3278677.html
Copyright © 2011-2022 走看看