BookmarkSubscribeRSS Feed
catch18
Obsidian | Level 7

Hi,

 

I'm running reduced rank regression for the first time with the sas code as below:

 

proc pls data=Theresa.morphdiet method=RRR

nfac=6 varssdetails;

model BWt BLen HdCirc wt_6m Hgt_6m HdCirc_6m = &xlist;

output out=pattern xscore=scoreRRR yscore=scoreRRR;

run;

 

I have several response anthropometric variables (12)and dietary data comprised of 48 food groups defined with a macro as &xlist. I'm just wondering whether with the pls method I could include all 12 response variables at once? Also, would I need to log transform non-normal response variables (n= 350) or is this incorporated into the pls method?

 

Thanks.

9 REPLIES 9
PGStats
Opal | Level 21

@PaigeMiller would be the expert on this topic...

PG
catch18
Obsidian | Level 7

Thanks.

PaigeMiller
Diamond | Level 26

PROC PLS handles as many response variables as you have at once.

 

There is no need to transform x-variables, but your message is unclear. At one place you say 12 response variables, at another place you have 350 response variables.

--
Paige Miller
catch18
Obsidian | Level 7

My apologies, 350 is the sample size.

I notice that in putting all the responses in the model at once my sample size is drastically reduced.

Each variable has different missing numbers and this way SAS adds up all the missing numbers and equates it to all the variables. For instance weight has no missing number but SAS uses say 250 observations instead of 350. Is there a way to avoid this without imputation?

 

Many thanks

ballardw
Super User

Proc PLS has a proc option MISSING= that has 3 possible values, NONE which is the default and excludes observation if any variables have missing values, MISSING=AVG fills the missing values with the mean value or imputes with the mean value, or MISSING=EM which does an iterative approach of calculate as Missing=AVG then replace the "means" with the predicated values and redoes the model. The EM allows additional parameters of MAXITER to set how many of those iterations takes place and Epsilon which specifies a convergence criteria which defaults to 0.00000001. The options might be used as MISSING=EM(MAXITER=100 EPSILON= 0.001)

 

Note that the values I show for Maxiter and Epsilon are only to show the syntax. I have no idea whether 100 or 0.0001 would be appropriate for any specific task.

catch18
Obsidian | Level 7

Thanks for the suggestion.

PaigeMiller
Diamond | Level 26

@catch18 wrote:

My apologies, 350 is the sample size.

I notice that in putting all the responses in the model at once my sample size is drastically reduced.

Each variable has different missing numbers and this way SAS adds up all the missing numbers and equates it to all the variables. For instance weight has no missing number but SAS uses say 250 observations instead of 350. Is there a way to avoid this without imputation?


This is still confusing to me. You initially ask about transforming non-normal variables, but when asked to clarify that, you talk about missing values.

 

What is the real question?

--
Paige Miller
catch18
Obsidian | Level 7

I thought my question on non-normal response variables with proc pls was answered when you said "no need to transform".

 

My subsequent question is based on your suggestion of putting in all the response variables at once, which I agree to, but then I also notice that doing that greatly reduces my sample size. Hence my question on missing values.

 

Thanks

PaigeMiller
Diamond | Level 26

@catch18 wrote:

I thought my question on non-normal response variables with proc pls was answered when you said "no need to transform".

 

My subsequent question is based on your suggestion of putting in all the response variables at once, which I agree to, but then I also notice that doing that greatly reduces my sample size. Hence my question on missing values.


I did say "no need to transform the x-variables", although I don't see where you have clearly stated you were talking about x-variables. In fact, your original message specifically referred to transforming response variables: "would I need to log transform non-normal response variables"

 

For missing values, I would try the EM algorithm.

--
Paige Miller

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 9 replies
  • 1726 views
  • 0 likes
  • 4 in conversation