Hello,
I am currently setting up a voxel-wise normative model for diffusion MRI metrics across the adult lifespan. At the moment, my dataset comes from a single site (single batch).
My goal is to fit the following voxel-wise model: y ~β0 +β1*age +β2*age^2 +β3*sex
My input covariate matrix is structured as X = [age, sex] (with sex as a 0/1 dummy variable), and my batch effect array simply contains a single dummy batch for all subjects.
I would like to ask for a sanity check on my configuration to ensure it avoids redundant slope parameters for Age, while intentionally keeping the batch intercept available for future transfer learning.
Here is my current setup :
template_blr = BLR(
name = 'template_md_smooth',
basis_function_mean = PolynomialBasisFunction(basis_column = 0, degree = 2) ,
fixed_effect = True,
fixed_effect_slope = False,
fixed_effect_var_slope = False,
heteroskedastic = True,
warp_name = None
)
# Normative Model
model_blr = NormativeModel(
template_regression_model = template_blr,
savemodel = True,
evaluate_model = True,
saveresults = True,
saveplots = False,
save_dir = output_blr,
inscaler = 'standardize',
outscaler = 'standardize',
name = 'BLR_reference_model'
)
I set fixed_effect_slope = False to prevent the model from appending a duplicated ‘Age’ column in the design matrix, ensuring I get exactly one coefficient for the linear age effect, one for age^2, and one for sex, while I kept fixed_effect = True despite having a single site, to keep the batch intercept slot available for future transfer learning on ne datasets.
I set heteroskedastic = True to properly model the increasing variance expected in older individuals.
Any help or feedback would be greatly appreciated!
