【问题标题】:Correlation between many variables in one column一列中多个变量之间的相关性
【发布时间】:2015-01-20 22:07:58
【问题描述】:

我有 2 列的数据框 (df),例如

Variable(character):      Value(numeric):     
A                       12.25             
A                       2.14              
A                       31.10              
B                       4.6      
B                       6.987
D                       74.10
D                       6.17
D                       10.365
D                       54.98
C                       10.47
C                       156.1420
C                       1.69 

我想计算每个变量之间的相关性。类似的东西(值是完全随机的:

      A        B          D        C            
A     0.25     0.32       0.1256   0.9               
B     0.9      0.47       0.125    0.144
D     0.36     0.12       0.87     0.54          
C     0.369    0.147      0.4      0.485        

【问题讨论】:

    标签: r correlation


    【解决方案1】:

    假设您的变量具有相同数量的观察值:

    cor(as.data.frame(split(df$val, df$var)))
    

    生产:

               a          b          c          d
    a  1.0000000  0.3332724 -0.4755813 -0.1367066
    b  0.3332724  1.0000000 -0.9171748 -0.2348487
    c -0.4755813 -0.9171748  1.0000000  0.5713294
    d -0.1367066 -0.2348487  0.5713294  1.0000000
    

    该假设在您的数据中不成立。不确定您打算如何计算具有不等数量观察值的相关性。这是我使用的数据:

    set.seed(1)
    df <- data.frame(var=rep(letters[1:4], each=4), val=runif(16))
    

    【讨论】:

    • 我的数据确实没有相同数量的观测值(水文测量数据)。任何想法,如何处理?
    • @amikoma,它们是时间序列数据吗?那么正确的做法是将它们全部对齐到相同的时间序列上,用 NA 填充缺失值。你告诉我,你希望如何比较 A(3 obs)和 B(2 obs)?你知道关于 A 的一些事情,告诉你哪些观察(如果有的话)应该与 B 进行比较?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 2019-05-14
    • 2021-02-11
    • 1970-01-01
    相关资源
    最近更新 更多