X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=pkg%2FR%2FEMGrank.R;h=5eea322f6c47c677d843cca24205f0afea64c24a;hb=9ccdd55a1f6e9d409e8ae43b878a5e89c42e20c7;hp=7c0d91f653a226a7b5bdf61f755eb2fee70af95c;hpb=43d76c49d2f98490abc782c7e8a8b94baee40247;p=valse.git diff --git a/pkg/R/EMGrank.R b/pkg/R/EMGrank.R index 7c0d91f..5eea322 100644 --- a/pkg/R/EMGrank.R +++ b/pkg/R/EMGrank.R @@ -48,7 +48,6 @@ matricize <- function(X) # R version - slow but easy to read .EMGrank_R = function(Pi, Rho, mini, maxi, X, Y, tau, rank) { - require(MASS) #matrix dimensions n = dim(X)[1] p = dim(X)[2] @@ -77,7 +76,7 @@ matricize <- function(X) if (length(Z_indice) == 0) next #U,S,V = SVD of (t(Xr)Xr)^{-1} * t(Xr) * Yr - s = svd( ginv(crossprod(matricize(X[Z_indice,]))) %*% + s = svd( MASS::ginv(crossprod(matricize(X[Z_indice,]))) %*% crossprod(matricize(X[Z_indice,]),matricize(Y[Z_indice,])) ) S = s$d #Set m-rank(r) singular values to zero, and recompose @@ -107,7 +106,7 @@ matricize <- function(X) } sumLogLLF2 = sumLogLLF2 + log(sumLLF1) } - + LLF = -1/n * sumLogLLF2 #update distance parameter to check algorithm convergence (delta(phi, Phi))