0

VBAでマハラノビス距離を計算しようとしています。

共分散行列を計算する UDF を作成しましたが、関数を実行すると #value エラーが発生しました。

助けてもらえますか

前もって感謝します!

Function DMahalanobis(x As Range, y As Range) As Variant
    Dim c() As Variant, k As Variant, U As Range, a() As Variant, b() As Variant
    Set U = Application.Union(x, y)
    Debug.Print U
    k = x.Columns.Count
    a = x
    b = y
    ReDim c(1, k)
    For i = 1 To k Step 1
        c(1, i) = a(1, i) - b(1, i)
    Next i
    DMahalanobis = Application.MMult(Application.MMult(Application.Transpose(c), Application.MInverse(MVARCOVAR(U))), c)
End Function

これは正常に動作する私の VarCovar 関数です

'Function to calculate Covariance matrix
Function MVARCOVAR(RANGO As Range) As Variant
Dim c() As Variant, i As Long, k As Long, j As Long
k = RANGO.Columns.Count
Debug.Print k
ReDim c(k, k)
 For i = 1 To k Step 1
  For j = 1 To k Step 1
  c(i, j) = Application.Covar(Application.Index(RANGO, , i), Application.Index(RANGO, , j))
  Next j
 Next i
MVARCOVAR = c
End Function

ここに画像の説明を入力

4

1 に答える 1