Non-orthogonality with NIPALS after filtering for data with high rates of missing values

Hi guys,

I’m a newby in data analysis with Mixomics functions/packages and want to ask about non-orthogonality of components when using NIPALS. The way we obtain the data, the output is configured as proteins in rows vs. samples in columns. Before running PCA and sPCA functions, I’m hadnling the data for variables (proteins) with high rates of missing values (I’m filtering out those with > 20% missing values per sample). I’m using NIPALS for imputation of missing values, but with running the nipals.tune function (after removing high missing value rate variables) I still get warning messages about some components not being orthogonal to previous ones. I wonder whether this would be an issue with going ahead to perform PCA and sPCA, and if so whether there’s a way of getting around this.


hi @MychelMorais,
thanks for your question!

Once the data are imputed, if you fit them into PCA and sPCA it will be orthogonal. The warning just says that using NIPALS (to either handle or estimate the missing values, the components are not orthogonal).

One way to check that the components are not correlated (value very close to 0):

X <- multidrug$ABC.trans
pca.res <- pca(X, ncomp = 4, scale = TRUE)
# extract components and calculate correlation
>             PC1           PC2           PC3           PC4
PC1 1.000000e+00  0.0004698188  2.147894e-05  0.0006036665
PC2 4.698188e-04  1.0000000000 -3.730894e-04 -0.0004256354
PC3 2.147894e-05 -0.0003730894  1.000000e+00 -0.0006099230
PC4 6.036665e-04 -0.0004256354 -6.099230e-04  1.0000000000


Hi @kimanh.lecao

thanks so much!! I ran the cor function on the PC obtained after imputing missing values with NIPALS and they weren’t correlated. Very helpful tip!