0

そのため、R を使用してガウス過程に関連付けられた相関行列を計算しようとしています。以下に記述したトリプル for ループを使用せずにそうするためのいくつかの提案を期待していました。主に、読みやすくするためにコードを要約し、計算を高速化したいと考えています。

#Example Data
n = 500
x1 = sample(1:100,n,replace=T)
x2 = sample(1:100,n,replace=T)
x3 = sample(1:100,n,replace=T)


X = cbind(x1,x2,x3)


R = matrix(NA,nrow=n,ncol=n)

for(i in 1:nrow(X)){
    for(j in 1:nrow(X)){
        temp = 0
        for(k in 1:ncol(X)){
            temp = -abs(X[i,k]-X[j,k])^1.99 + temp
        }
        R[i,j] = exp(temp)
    }
}

そのためn、大きくなるにつれて、コードは非常に遅くなります。また、これは相関行列であるため、行列は対称であり、対角線は 1 に等しいことに注意してください。

4

2 に答える 2