模糊数据的一致性系数
The coefficient of concordance for vague data
我正在尝试调整一个公式来计算模糊数据的一致性系数。描述它的论文在这里 https://www.researchgate.net/publication/4738093_The_coefficient_of_concordance_for_vague_data
我感兴趣的具体方程是 (22)
有四个观察者(i.e.k=4)和八个物体(i.e.n=8)。答案应该是 0.7485
我可以用 R 计算出 Kendall 的 W 标准方程的方程,但这个方程不行。我想我只是搞乱了操作顺序。
在 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 页顶部看到这些值
希望能帮到你
你的向量是正确的,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 中为公式构建了如下函数:
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)
}
我正在尝试调整一个公式来计算模糊数据的一致性系数。描述它的论文在这里 https://www.researchgate.net/publication/4738093_The_coefficient_of_concordance_for_vague_data
我感兴趣的具体方程是 (22)
有四个观察者(i.e.k=4)和八个物体(i.e.n=8)。答案应该是 0.7485
我可以用 R 计算出 Kendall 的 W 标准方程的方程,但这个方程不行。我想我只是搞乱了操作顺序。
在 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 页顶部看到这些值
希望能帮到你
你的向量是正确的,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 中为公式构建了如下函数:
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)
}