This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Reporting p.value for my PCA results

Hi I've done PCA for my gene expression data after DEG analysis, I can see that my case and control samples clustered distinctly but I want to report a p.value for this result, it worth to notice that I have the coordinate csv file that represents coordinates of samples from different phenotypes (case vs control).

Thanks in advance

pca gene expression

PCA is an exploratory data analysis method. It does not test a null hypothesis and generate a p-value.

ok. I'll try to explain a little bit more then

2 answers

What Nicolas says is true; however, there are indirect ways to derive a P value based on your PCA results.

Buid a regression model

You can indirectly derive P values in your situation by building a binary logistic regression model using the PC1 (or PC2, PC3, ..., PCX) values to predict case/control status. From this, you should see a strong P value based on what you say.

summary(glm(CaseControl ~ PC1))

Correlation

For other type of variables, like continuous variables, you can simply run a correlation test between the continuous variable and the PC1 values, and derive a P value from this too (in R, use cor.test())

PCA is an exploratory data analysis method. It does not test a null hypothesis and generate a p-value.

If you want to compute a p-value maybe you should try pvclust package in R. It didn't use PCA but a hierarchical clustering and report p-values for each sub-tree

http://stat.sys.i.kyoto-u.ac.jp/prog/pvclust/

PVclust is indeed great, and it bootstraps the clustering.

Log in to answer this question.