2016-03-03 2 views
1

Я пытаюсь адаптировать формулу, которая вычисляет коэффициент согласованности для нечетких данных. В документе, который описывает его здесь https://www.researchgate.net/publication/4738093_The_coefficient_of_concordance_for_vague_dataКоэффициент согласованности для неопределенных данных

Конкретное уравнение Я интересует (22)

coefficient of concordance for vague data

Есть четыре наблюдателя (IEK = 4) и восемь объектов (диен = 8) , Ответ должен быть 0,7485

Я могу выработать уравнение в R для стандартного уравнения W. Кендалла, но не этого. Я думаю, что я просто испортил порядок операций.

В RI думаю входные значения должны быть:

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

Упование вы можете помочь

ответ

2

Ваши векторы и значения k = 4 и n = 8 также правильны. Это означает, что в коэффициенте согласования Кендалла есть ошибка. Невозможно помочь вам дальше, если код не отображается, кроме 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)) 
+0

Большое спасибо за помощь. Я создам рабочую функцию R и добавлю ее в качестве ответа. –

+0

Добро пожаловать. – 4pie0

+0

Я слепой к нему, но где в уравнении он указывает, чтобы сделать точку 2, вычислить средние значения столбца? –

0

Я построил функцию для формулы в 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) 
} 

Вторая функция вычисляет значение р для этого (Я надеюсь):

## 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) 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^