3
$\begingroup$
  1. We have 100 subjects (A,B,C....) in total.
  2. We took 2000 tissue samples from each subject.
  3. For each subject, we evaluated the outcome(PASS or Fail), but we only evaluated the outcome on the subject level, not on the sample level.
  4. We also have other measurements (V1,V2, V3....V300) on the sample level. We have total of 300 measurements.

The goal here is to predict the outcome(Categorical variable : PASS/Fail) for each subject using measurements (V1,V2,V3...) taken from sample-level data.

Mixed effect random forest first came to my mind, but the prediction is made on the sample level, not on the subject level. Now, I am wondering what kind of model should I consider? Thank you for any idea in advance!

enter image description here

$\endgroup$
6
  • $\begingroup$ Since you are strictly interested in prediction, have you considered PCA or other data reduction techniques on the samples? $\endgroup$
    – dipetkov
    Jun 19 at 14:11
  • $\begingroup$ I have already performed PCA on sample level, but I am not sure how to connect samples with subject for prediction. $\endgroup$ Jun 19 at 18:53
  • $\begingroup$ You can project new samples into the PCA space. For example, take a look at the transform method in the scikit-learn implementation of PCA. $\endgroup$
    – dipetkov
    Jun 19 at 19:20
  • 1
    $\begingroup$ Are the 2000 (?!) tissue samples from each subject just random samples, or is there some systematic relationship of samples among subjects? Also, how many other variables (V1 ...) do you have data on, at the subject or sample level? Please provide that information by editing the question, as comments are easy to overlook and can be deleted. $\endgroup$
    – EdM
    Jun 21 at 16:52
  • $\begingroup$ Is the number of samples per subject variable? Otherwise just about any standard model could potentially work with these inputs (of course dimension reduction techniques are very much worth considering). If it's a variable number of samples/measurements, you might have to do something to reduce things to a fixed dimensional input (or use a model that can use flexible length input such as transformer neural networks). $\endgroup$
    – Björn
    Jun 22 at 8:24

1 Answer 1

1
+50
$\begingroup$

This is a multidimensional problem in which the predictor variables $v_{ijn}$ have three indices:

  1. $i$ for subjects/individuals;
  2. $j$ for variables/measurements;
  3. $n$ for tissue samples.

The variable to predict $y_i$ has a single index (subject).

I propose a method to collapse the $n$ index.

For each subject $i$ and each variable/measurement index $j$, compute some features of the empirical distribution of the sample of 2000 observations $$S_{ij}=\left\{v_{ijn}: n=1,\ldots,2000\right\}$$

For example, you could compute the minimum and maximum values of the empirical distribution, its mean and standard deviation, some quantiles (e.g., the 0.01 0.05 0.10 0.25 0.5 0.75 0.90 0.95 0.99 quantiles), the proportion of observations that exceed a certain threshold.

You repeat the computation of the characteristics of the empirical distribution for each $i$ and each $j$.

By doing so, you obtain a vector of predictors $$X_i=\left[X_{i1} \ldots X_{iK}\right]$$ for each subject.

The number $K$ of predictors is equal to the number of characteristics you compute for each empirical distribution times the number of measurements per tissue sample.

Then, you can use any standard model that allows you to predict a binary variable $y_i$ (pass/fail) conditional on a vector of predictors $X_i$ (e.g., logit models, XGBoost, random forests, etc.).

However, given the relatively small number of subjects, it would seem appropriate to use methods that allow to effectively fight over-fitting. My choice would be averaging of many XGboost or LightGBM runs performed by randomizing along various dimensions (hyperparameters, bagging, feature bagging).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.