New Contributor
Posts: 2

# Regression analysis

Hello group, first post,

I have one physiological outcome variable and 3 independent variables that I have measured in different conditions on the same subjects. Physiologically, my 3 dependent variables should be able to explain all of the outcome, so in linear regression, my model would look like this (without intercept):

outcome = a*V1 + b*V2 + c*V3, with V1-3 being my independent variables.

So far, pretty simple. However, for interpretation I would like/need to constrain a, b, c to >0 & <1, and that their sum should always be 1.

I've tried in NLMIXED:

proc nlmixed data=final;

bounds

a > 0, b > 0, a < 1, b < 1;

parameters

a = .3

b = .3

;

c = (1-a-b);

pred = a*V1 + b*V2 + c*V3;

model outcome ~ normal(pred,5);

run;

All variables, including outcome, are continues between 0 and 100. They are a measure of hemoglobin saturation.

However, this doesn't include subject-subject variation (random effect) and I don't get an estimate of c (fair enough).

Any help out there? Thanks. Peter

Posts: 2,655

## Re: Regression analysis

You won't get an estimate for c under this parameterization, as V3 is a linear combination of V1 and V2.  As far as adding in a subject effect, see the first example in Getting Started: NLMIXED Procedure.  It is for nonlinear growth curves with gaussian data, but the principles for adding in a subject effect are clearly outlined.  You might actually end up with an estimate for c under this model, but it would represent sampling differences more than anything else--it still represents a fully collinear combination of V1 and V2 under the boundary conditions.

Good luck.

Steve Denham

New Contributor
Posts: 2

## Re: Regression analysis

Dear Steve, thanks for you reply. I may have misunderstood your reply or maybe not phrased my question clearly. For that I apologise. The idea is to fit a model where V1-3 can fully explain the outcome variable so as far as my thinking goes, a+b+c = 1 is a requirement of the model. I do still get the same estimates for a, b and c if I replace "c = 1-a-b" with e.g "a = 1-b-c". Where is the flaw in my logic/thinking? Anyway, here is two examples of my code. The proc model I am fairly confident in but I am not sure I am adding the random effect the right way in proc nlmixed.

title 'NIRO, arterial, venous, and skin contribution, without intercept';

proc model data=final;

ods output ParameterEstimates=NIROnoint;

bounds a > 0, a < 1, b > 0, b < 1;

parameters a = 0.50 b = 0.20;

c = 1-a-b;

niro_toi = a*sao2 + b*sjvo2 + c*moor_so2;

fit niro_toi;

estimate 'Arterial' a, 'Venous' b, 'Skin' c;

run;

title 'NIRO, random effects model, arterial, venous, and skin contribution, without intercept';

proc nlmixed data=final ;

bounds a > 0, b > 0, a < 1, b < 1;

parameters a = .5 b = .25 sd1 = 110 sd2 = 0.03;

c = 1-a-b;

pred = (a*sao2 + b*sjvo2 + c*moor_so2)*r;

model niro_toi ~ normal(pred,sd1);

random r ~ normal(1,sd2) subject=subject;

estimate 'Arterial' a;

estimate 'Venous' b;

estimate 'Skin' c;

run;

Posts: 2,655

## Re: Regression analysis

That is an interesting parameterization in the NLMIXED code--multiplying by a random effect.  Most of the models I have seen involve additive random effects around the parameters. My brain thinks of the additive pretty easily--the subjects come from a population with a multivariate normal distribution for the parameters, with variances for each and covariances between them.  Could you present a motivation for the multiplicative effect?

Given this approach, you may think about doing some recoding to force the multiplier to be consistently positive. Do a  search on the SAS-L listserv:archives for NLMIXED, and look particularly for articles by Dale McLerran.  He has several where log and exp transforms are used to constrain parameters to positive values.

Steve Denham

Posts: 5,042