Статьи

Меры по ассоциации и согласованию с R

Чтобы определить меры связывания или меры согласования, определите функцию согласования следующим образом:

Позвольте http://freakonometrics.blog.free.fr/public/perso6/conc-28.gifбыть случайной пары с связкой http://freakonometrics.blog.free.fr/public/perso6/conc-27.gif, и http://freakonometrics.blog.free.fr/public/perso6/conc-29.gifс связкой http://freakonometrics.blog.free.fr/public/perso6/conc-26.gif. Затем определите

http://freakonometrics.blog.free.fr/public/perso6/cibc-25.gif

так называемая функция согласования . таким образом

http://freakonometrics.blog.free.fr/public/perso6/conc-23.gif

Как доказано на прошлой неделе,

http://freakonometrics.blog.free.fr/public/perso6/conc-24.gif

Основываясь на этой функции, можно получить несколько мер согласования. Популярная мера тау Кендалла, от Kendall (1938) , который определяется как http://freakonometrics.blog.free.fr/public/perso6/conc-22.gifт.е.

 http://freakonometrics.blog.free.fr/public/perso6/conc-21.gif

что просто http://freakonometrics.blog.free.fr/public/perso6/conc-20.gif.

Здесь вычисления могут быть сложными. Рассмотрим следующий пример:

set.seed(1)
> n=40
> library(mnormt)
> X=rmnorm(n,c(0,0),
+ matrix(c(1,.4,.4,1),2,2))
> U=cbind(rank(X[,1]),rank(X[,2]))/(n+1)

Тогда, используя функцию R, мы можем легко получить тау Кендалла,

> cor(X,method="kendall")[1,2]
[1] 0.3794872

Чтобы получить наш собственный код (и немного больше понять, как получить этот коэффициент), мы можем использовать

> i=rep(1:(n-1),(n-1):1)
> j=2:n
> for(k in 3:n){j=c(j,k:n)}
> M=cbind(X[i,],X[j,])
> concordant=sum((M[,1]-M[,3])*(M[,2]-M[,4])>0)
> discordant=sum((M[,1]-M[,3])*(M[,2]-M[,4])<0)
> total=n*(n-1)/2
> (K=(concordant-discordant)/total)
[1] 0.3794872

или следующее (мы будем использовать случайные величины http://freakonometrics.blog.free.fr/public/perso6/conc-30.gifдовольно часто),

> i=rep(1:n,each=n)
> j=rep(1:n,n)
> Z=((X[i,1]>X[j,1])&(X[i,2]>X[j,2]))
> (K=4*mean(Z)*n/(n-1)-1)
[1] 0.3794872

Другой мерой является ранговая корреляция Спирмена из Спирмена (1904) ,

http://freakonometrics.blog.free.fr/public/perso6/conc-05.gif

где http://freakonometrics.blog.free.fr/public/perso6/conc-19.gifесть распространение http://freakonometrics.blog.free.fr/public/perso6/conc-17.gif.

Здесь, http://freakonometrics.blog.free.fr/public/perso6/conc-07.gifчто приводит к следующим выражениям

http://freakonometrics.blog.free.fr/public/perso6/conc-06.gif

Численно мы имеем следующее

> cor(X,method="spearman")[1,2]
[1] 0.5388368
> cor(rank(X[,1]),rank(X[,2]))
[1] 0.5388368

Обратите внимание, что также можно написать

http://freakonometrics.blog.free.fr/public/perso6/conc-04.gif

Другой мерой является индекс cograduation, полученный от Gini (1914) , полученный путем введения нормы L1 вместо нормы L2 в предыдущем выражении,

http://freakonometrics.blog.free.fr/public/perso6/concord-01.gif

Обратите внимание, что этот индекс также можно определить как http://freakonometrics.blog.free.fr/public/perso6/concor-02.gif. Вот,

> Rx=rank(X[,1]);Ry=rank(X[,2]);
> (G=2/(n^2) *(sum(abs(Rx+Ry-n-1))-
+ sum(abs(Rx-Ry))))
[1] 0.41

И, наконец, еще одна мера — из Blomqvist (1950) . Позвольте http://freakonometrics.blog.free.fr/public/perso6/conc-10.gifобозначить медиану http://freakonometrics.blog.free.fr/public/perso6/conc-12.gif, то есть

http://freakonometrics.blog.free.fr/public/perso6/conc-15.gif

Затем определите

http://freakonometrics.blog.free.fr/public/perso6/conc-09.gif

или эквивалентно

http://freakonometrics.blog.free.fr/public/perso6/conc-08.gif

> Mx=median(X[,1]);My=median(X[,2])
> (B=4*sum((X[,1]<=Mx)*((X[,2]<=My)))/n-1)
[1] 0.4