Problem
I have a dataset NxD, where N - number of observation (~100k) and D - number of features (~10k) (More specifically it is a single-cell RNAseq data, so each observation is a single cell and each feature is a gene, values are counts of genes in each of the cells).
*Cell* Cell1 Cell2 Cell3 ....
*Gene*
DPM1 . . . . . . . . . . . 1 . . . . . . .
SCYL3 . . . . . . . . . . . . . . . . . . .
C1orf112 . . . . . . . . . . . . . . . . . . .
FGR . . . . . . . . . 1 . . . . . . . . .
CFH . . . . . . . . . . . . . . . . . . .
FUCA2 . . . . . . . . . . . . . . . . . 1 .
GCLC . . . . . . . . . . . . . . . . . . .
As you can see data is discrete and sparse (only a small set of genes have non-zero counts in each cell).
I would like to select a subset of features (genes) such that:
- The dimensionality of the subset d << D (~1k)
- Resulting features are not correlated
- Using this subset I can predict remaining features
Possible approaches
I have a few ideas in mind, but I would be very grateful for any comments or suggestions. Are there any standard ways of approaching this problem?
Find clusters of genes in the space of cells (or reduced space) and select one gene per cluster, e.g. from the center. Presumably all genes in the cluster will be somewhat correlated with each other and therefore one gene should be enough to capture information about the other genes in the same cluster. Problems with this approach: clustering in high-dimensional space is hard, and this won't capture anticorrelated genes - they will belong to separate clusters, but still can be used to predict each others' expression.
Same as above, but use hierarchical clustering on the distance matrix. Distance can be anything from simple covariance, to mutual information (this would take care of anticorrelated genes as well).
Select most important features from multiple regularized regressions:
$\forall i, \quad x_i \sim X_{-i}$, where $x_i$ is expression of gene $i$, $X_{-i}$ - expression of all other genes. The problem with this approach - the distribution of gene counts is negative binomial so both my target variable and predictor variables will be negative binomial distributed.