How can I build a model to find the best predictor for 5 different targets and 30 predictors?

Neuronerd
Neuronerd New Altair Community Member
edited November 2024 in Community Q&A
I’m looking at 5 different cognitive tasks and I want to see which brain region’s volume is the best predictor of performance on those tasks. I also need to covary for intracranial volume and gender. I have no clue where to start so any help would be appreciated!
Tagged:

Best Answer

  • varunm1
    varunm1 New Altair Community Member
    Answer ✓
    Hello @Neuronerd

    Just want to be clear as I lost track, so you have 23 Predictor Variables (Features/attributes) and 5 Outcome variables (each outcome variable is for a different cognitive task). 

    Now to understand which predictor variable is better for each one of these outcome variables there are two methods (based on my current thought). One is to find the global importances of variables or statistical tests. In this, you can use statistical tests like correlation to check the correlation between target variables and the predictor variables. In rapidminer, you can use "Correlation matrix" and select an option called "include special attributes". You can also use "Weight by correlation" operator that assigns a higher weight to predictor/attribute that is highly relevant. If you want to know model-specific weights/relevance of predictor variables, you can use "Weight by SVM" or "Weight by Random forest". These are some examples, you can see more operators in Modeling --> Feature Weights.

    There is a second way called local weights/importances based on predictions. We have an operator called "explain predictions" that provides you with the importance of each attribute for each prediction sample. There is also a global weight port in this operator that helps you see which attributes have the highest weight based on local weights.

    Now if you want to build a model and predict all the five outcome variables, there is an operator called "Multi label Modeling". Be sure to assign some user "user-defined role" using a set role operator to your 5 outcome variables. If you don't assign a role to these, then when a model is built for one outcome variable the other 4 outcome variables are included in the inputs (predictors) of a model.

    I hope this helps, if you need more specific information please explain your need.

Answers

  • varunm1
    varunm1 New Altair Community Member
    Hello @Neuronerd

    You can build a multi-class classification model. If you are new to classification, I recommend you look at videos on "Rapidminer Academy"

    The below videos on rapidminer youtube also helps you.

    https://www.youtube.com/watch?v=Gg01mmR3j-g&list=PLssWC2d9JhOZLbQNZ80uOxLypglgWqbJA

    Please let us know if you are looking for any specific information.

  • [Deleted User]
    [Deleted User] New Altair Community Member
    edited February 2020
    Hello

    sorry your question is not clear 

    All the best 
    mbs
  • Neuronerd
    Neuronerd New Altair Community Member
    @varunm1 would I need to build a multi class classification model for each predictor? The model would essentially be a 23x5 matrix. I was thinking of using simple regression but I’d prefer more accurate measures. Also how could I covary for intracranial volume?

    Thank you
  • varunm1
    varunm1 New Altair Community Member
    Hello @Neuronerd

    When you say you have 5 targets or cognitive tasks, do you mean you have 5 separate outcome variables or 5 classes in a single outcome variable?
  • Neuronerd
    Neuronerd New Altair Community Member
    @varunm1 5 separate outcome variables. The original hypothesis was testing brain lateralization of verbal/spatial memory in different regions, so there are 4 verbal tasks and 1 spatial task. I want to see which brain regions/other physiological properties can best predict performance on these tasks.
  • rfuentealba
    rfuentealba New Altair Community Member
    Hello Neuronerd,

    So your data is like:
    r1, r2, r3, r4, r5, r6, r7, ov1, ov2, ov3, ov4, ovs

    And you want to predict performance on each one? What prevents you from calculating just one variable at a time and then mix these? I just want to understand a little more.

    All the best,

    Rodrigo.

  • Neuronerd
    Neuronerd New Altair Community Member
    @rfuentealba I guess I could do it that way, but I want to compare the values and see what predicts best, so I was hoping there was a more streamlined way of doing it. I want to see what physiological measures predict performance on the cognitive tasks the best.
  • varunm1
    varunm1 New Altair Community Member
    Answer ✓
    Hello @Neuronerd

    Just want to be clear as I lost track, so you have 23 Predictor Variables (Features/attributes) and 5 Outcome variables (each outcome variable is for a different cognitive task). 

    Now to understand which predictor variable is better for each one of these outcome variables there are two methods (based on my current thought). One is to find the global importances of variables or statistical tests. In this, you can use statistical tests like correlation to check the correlation between target variables and the predictor variables. In rapidminer, you can use "Correlation matrix" and select an option called "include special attributes". You can also use "Weight by correlation" operator that assigns a higher weight to predictor/attribute that is highly relevant. If you want to know model-specific weights/relevance of predictor variables, you can use "Weight by SVM" or "Weight by Random forest". These are some examples, you can see more operators in Modeling --> Feature Weights.

    There is a second way called local weights/importances based on predictions. We have an operator called "explain predictions" that provides you with the importance of each attribute for each prediction sample. There is also a global weight port in this operator that helps you see which attributes have the highest weight based on local weights.

    Now if you want to build a model and predict all the five outcome variables, there is an operator called "Multi label Modeling". Be sure to assign some user "user-defined role" using a set role operator to your 5 outcome variables. If you don't assign a role to these, then when a model is built for one outcome variable the other 4 outcome variables are included in the inputs (predictors) of a model.

    I hope this helps, if you need more specific information please explain your need.