Yes. To be honest I had to play around with my fabrcated data, to get all the estimates positive.
One way to workaround this is to use the RESTRICT statement. You can force coefficients >=0 with it.
RESTRICT statment is not available in PROC GLM, but other regression procedures have it. PROC REG fore example.
Though this does not solve the problem you describe.
I you have individual variances it sound more like a random effects model.
Still, depending on the data you can get negative parameter estimates. Or even if all parameter estimates are positive, they have an associated variance, so dheir distribution includes negative values.
I would investigate if the model is rather multiplicative (when effects are restricted to be positive it is always suspicious that the model is multiplicative), then you can simply first take the logarithm of the target variable and then model. In that case maybe variances of individuals become similar, and then you can assume one common variance for the sum.
With 1600 observations (in this context 1 observation is when you observe the aggregated result) and 200 variables you will need to estimate 2x200 parameters (mean and variance for each individual). Sounds possible, but... good luck 🙂
Instead of my fabricated data I simulate data in the following example. Its an additive model. The task is to get back the the original means (40, 100, 15, 300).
data have; array indiv[4] a b c d; array means[4] _temporary_ (40, 100, 15, 300); array varia[4] _temporary_ (5, 5, 10, 20); do obs=1 to 1000; sum=0; do var=1 to 4; ind_effect=means[var]+varia[var]*rannor(0); indiv[var]=ranbin(0,1,0.5); /*0.5 chance that effect is included*/ sum+(indiv[var]*ind_effect); end; output; end; drop obs var ind_effect; run; proc mixed data=have ; model sum=a b c d / noint solution ; random a b c d / type=vc ; run;
... View more