Для моих нейровизуальных прогностических моделей я обычно строю 2 модели. Один с данными, представляющими интерес, и другой, включая возраст и c. Если производительность существенно не меняется, то возраст и c не влияют на прогнозирующую способность данных.
Конечно, для этих типов вопросов следует использовать схему перекрестной проверки.
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
rng = np.random.RandomState(42)
# dummy feature set (columns represent voxels)
X = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
# dummy labels (1 = patients, 0= healthy controls)
y = np.array([1,0,1,0])
# dummy covariates (age and gender) - These should be included in my classification task
age = np.array([18,25,31,55])
gender = np.array([1,1,0,0])
Xfull = np.concatenate([X,age.reshape(-1,1),gender.reshape(-1,1)], axis = 1)
# z-standardize features
scaler = StandardScaler()
X = scaler.fit_transform(X)
# z-standardize features with covariates
scaler2 = StandardScaler()
Xfull = scaler2.fit_transform(Xfull)
# classification task - model 1
lr1 = LogisticRegression(random_state=rng)
lr1.fit(X, y)
print("Score using only voxel data: {}".format(lr.score(X,y)))
# classification task - model 2
lr2 = LogisticRegression(random_state=rng)
lr2.fit(Xfull, y)
print("Score using voxel data & covariates: {}".format(lr2.score(Xfull,y)))