【问题标题】:The coefficient of concordance for vague data模糊数据的一致性系数
【发布时间】:2016-03-03 09:22:30
【问题描述】:

我正在尝试采用一个公式来计算模糊数据的一致性系数。描述它的论文在这里https://www.researchgate.net/publication/4738093_The_coefficient_of_concordance_for_vague_data

我感兴趣的具体方程是 (22)

有四个观察者(即 k=4)和八个对象(即 n=8)。答案应该是 0.7485

我可以为肯德尔 W 的标准方程计算出 R 中的方程,但不能计算出这个方程。我想我只是弄乱了操作顺序。

在 R 中,我认为输入值应该是:

u <- c(6/7, 4/7, 1, 1/7, 2/7, 3/7, 5/7, 0,
5/7, 4/7, 6/7, 1/7, 2/7, 3/7, 0, 0,
    1, 5/7, 2/7, 0, 2/7, 4/7, 6/7, 1/7,
        5/7, 3/7, 4/7, 0, 2/7, 0, 6/7, 1/7)
v<-c(1/7, 3/7, 0, 6/7, 5/7, 4/7, 2/7, 1,
1/7, 2/7, 0, 5/7, 4/7, 3/7, 0, 6/7,
    0, 2/7, 4/7, 1, 4/7, 3/7, 1/7, 6/7,
        1/7, 3/7, 2/7, 6/7, 4/7, 0, 0, 5/7)

您可以在第 320 页底部和第 321 页顶部看到这些值

希望你能帮忙

【问题讨论】:

    标签: r algorithm math correlation ranking


    【解决方案1】:

    您的向量是正确的,k = 4 和 n = 8 的值也是正确的。这意味着 Kendall 的一致性系数计算存在错误。如果不显示除here 之外的代码,就不可能进一步帮助您。我放置了执行此计算的电子表格kendall_concordance.ods,因此希望它能为您完成这项工作。我得到了预期的 0.7485 结果。

    你应该做的是:

    1. Build u, v vectors (you have done this)
    
    2. Calculate averages of each column in u and v (2n averages).
    
    3. Subtract 0.5 from all averages and square them (for all av in u:
       av = (av - 1/2)^2, same for v) so they are now distances from
       ideal concordance for each column
    
    4. Sum all 16 distances and multiply by 6(n-1)/(n(n+1))
    

    【讨论】:

    • 非常感谢您的帮助。我将构建一个有效的 R 函数并将其添加为答案。
    • 我对此视而不见,但它在等式中的哪个位置指定执行第 2 点,计算列平均值?
    • @ManassaMauler 在您的等式(对应于文档中的 eq 22)中,u_a(x_j) 和 v_a(x_j) 是成员函数和非成员函数 u 和 v(文档中的 mi 和 v)的平均值, 等式 14 和 15)
    【解决方案2】:

    我在 R 中为公式构建了如下函数:

    vagueKendall<-function(u,v,n){
      u<-matrix (u, ncol=n, byrow = TRUE)
      v<-matrix (v, ncol=n, byrow = TRUE)
        ## divide by n-1 
      uColNo<-u/(n-1)
      vColNo<-v/(n-1)
        ## take the averages
      colMeansU<-colMeans(uColNo)
      colMeansV<-colMeans(vColNo)
        ## measure the distances from the averages 
      au = (colMeansU - 1/2)^2
      av = (colMeansV - 1/2)^2
        ## calculate component before sum
      outside<-6*(n-1)/(n*(n+1))
        ## sum of squared distances from averages 
      sumSqdDiff<-sum(au+av)
        ## The product of these gives the modified Kendall's W
      W<-outside*sum(au+av)
      return(W)
    }
    

    第二个函数将为此计算 p 值(我希望):

    ## Extract p-value function
    vagueKendallP<-function(W,k,n){
    ## Calculate correlation coefficient 
    r<-(k*W-1)/(k-1)
    ## Calculate Chi Squared
    Chi<-k*(n-1)*W
    ## degrees of freedom
    df<-n-1
    ## p-value 
    pValue<-pchisq(Chi,df, lower.tail = FALSE)
    return(pValue)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 2016-04-03
      • 2011-08-16
      • 1970-01-01
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多