BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
saza
Quartz | Level 8

To study the effect of the multicollinearity on response prediction, fill in the table below. For the last two columns, predict BODY FAT of an adult male with WEIGHT= 180 lbs, ABDOMEN = 90 cm and CHEST = 100 cm.

saza_0-1647540787627.png

The following code gives me a value of zero for everything.

proc reg data=bodyfat.bodyfat;
model pctFatSiri = weight abdomen chest;
where weight = 180;
where abdomen = 90;
where chest = 100;
run;

saza_1-1647540850101.png

 

1 ACCEPTED SOLUTION

Accepted Solutions
SAS_Rob
SAS Employee

What you are trying to do is very similar to this example in the documentation.

SAS Help Center: Example 102.3 Predicting Weight by Height and Age

 

You would not want to use a WHERE statement to limit the observations in the input data set.  Instead it seems you are to take the parameter estimates from each of the models you fit and make predictions and get prediction intervals based on those values for the independent variable.  You could use the OUTPUT statement to get predictions/intervals for all the observations and then limit that data set using a WHERE statement to the values that you are interested in. 

View solution in original post

5 REPLIES 5
PaigeMiller
Diamond | Level 26

The output indicates you have only one observation in your data. You can't fit a model to that, and there is 0 degrees of freedom, all regression coefficients are missing, there is no multicollinearity (or in the trival sense, with one observation, everything is perfectly correlated with everything else)

 

Fix the input data so that there are enough observations to fit the model.

--
Paige Miller
saza
Quartz | Level 8
proc reg data=bodyft;
model pctfatsiri = weight;
model pctfatsiri = abdomen;
model pctfatsiri = chest;
model pctfatsiri = weight abdomen;
model pctfatsiri= weight chest;
model pctfatsiri = abdomen chest;
model pctfatsiri = weight abdomen chest;
where weight = 180 Abdomen = 90 Chest = 100;
run;

like this?
PaigeMiller
Diamond | Level 26

There are so many problems here that I don't even know where to begin, most of them relating to confusion on your part about (seemingly) the entire problem. I don't have the time right now to go into all of this.

 

--
Paige Miller
saza
Quartz | Level 8
That was the table that was given with that problem set
SAS_Rob
SAS Employee

What you are trying to do is very similar to this example in the documentation.

SAS Help Center: Example 102.3 Predicting Weight by Height and Age

 

You would not want to use a WHERE statement to limit the observations in the input data set.  Instead it seems you are to take the parameter estimates from each of the models you fit and make predictions and get prediction intervals based on those values for the independent variable.  You could use the OUTPUT statement to get predictions/intervals for all the observations and then limit that data set using a WHERE statement to the values that you are interested in. 

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 5 replies
  • 587 views
  • 1 like
  • 3 in conversation