4

A と B の 2 つのグループに属するデータを扱っています。2 つの母集団間の最大の違いを示す変数を見つけようとしていますが、カルバック - ライブラー距離がそのための適切な尺度になると思いました。ここに私のデータを表すサンプルがあります

df1 <- structure(list(Var1 = c(2L, 3L, 5L, 7L, 2L, 1L, 0L, 0L, 0L, 1L, 
3L, 4L), VarA = c(0.56, 0.43, 0.25, 0.12, 0.78, 0.55, 0.35, 0.36, 
0.3, 0.41, 0.43, 0.5), VarT = c(10L, 11L, 15L, 12L, 8L, 7L, 7L, 
7L, 6L, 5L, 1L, 2L), Var3 = c(152L, 187L, 149L, 132L, 132L, 178L, 
240L, 205L, 137L, 125L, 124L, 56L), group = structure(c(1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "A", class = "factor")), .Names = c("Var1", 
"VarA", "VarT", "Var3", "group"), class = "data.frame", row.names = c(NA, 
-12L))

df2 <- structure(list(Var1 = c(5L, 8L, 7L, 4L, 5L, 2L, 1L, 2L, 6L, 5L
), VarA = c(0.24, 0.76, 0.43, 0, 0.52, 0.63, 0.46, 0.64, 0.55, 
0.78), VarT = c(10L, 8L, 9L, 5L, 11L, 14L, 12L, 1L, 7L, 7L), 
    Var3 = c(205L, 120L, 531L, 203L, 215L, 224L, 211L, 212L, 
    134L, 222L), group = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L), .Label = "B", class = "factor")), .Names = c("Var1", 
"VarA", "VarT", "Var3", "group"), class = "data.frame", row.names = c(NA, 
-10L))

同様の列のforループでカルバック・ライブラー距離検定を適用して、2つのグループの同じ変数間の最大距離を示す変数を確認することを考えています。

まず、FNNパッケージからこのコマンドを実行しようとしました

require(FNN)
X <- df1[,2]
Y <- df2[,2]
KLx.dist(X, Y, k = 5)
[1]        NaN       -Inf -0.1928958  0.0312911  0.1972085

結果は非常に面白いです。これらの距離はどれも互いに近くさえありません! ここでの私の質問は次のとおりです。テストを正しく適用していますか? はいの場合、距離に大きな違いがあるのはなぜですか?

注: 他のテストで問題が解決する場合は、喜んで試します。

どうもありがとう、

4

1 に答える 1