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

Hello, this is my first post and I hope it's in the correct place.

 

It appears proc ADAPTIVEREG ignores variables that have a p-value > 0.05

 

Is it possible to change this limit?

 

I need to estimate the splines on a variable that gets a p-value of ~0.055. In addition I can imagine other situation where it might be necessary for marginally significant variables or when considering one-sided t-tests.

 

Thanks in advance

1 ACCEPTED SOLUTION

Accepted Solutions
Rick_SAS
SAS Super FREQ

I don't understand what the JMP table is... OLS parameter estimates?  The p-value for the variable in an OLS model is not used by PROC ADAPTIVEREG.  You might be thinking about PROC REG or PROC GLMSELECT which both have forward/backward selection methods that use options (SLENTRY= SLSTAY=) that look at p-values for a parameter in order to include/exclude a variable.

 

PROC ADAPTIVEREG does not use p-values of the parameter of the linear model to determine inclusion of a term.  By default it uses the GCV criterion, or it can use cross-validation. 

 

It sounds like you want to FORCE the X5 variable to be in the final model. You can use the KEEP=X5 option to force X5 into the model. The following call illustrates the syntax. Without the KEEP=MSRP option, that variable does not enter the model.

 

proc adaptivereg data=sashelp.cars details=bases;
model mpg_city = Cylinders EngineSize Horsepower Length 
                 MPG_Highway Weight MSRP / additive linear=MSRP;
run;

View solution in original post

5 REPLIES 5
Rick_SAS
SAS Super FREQ

Can you provide an example of what you are seeing, preferably by using one of the sample data sets in the doc? PROC ADAPTIVEREG creates multiple spline basis functions and then performs variable selection on the splines.  It does not perform variable selection on the variables themselves.

 

One possible source of confusion: PROC ADAPTIVEREG has a parameter called ALPHA that controls the number of knots that are considered for each variable. By default ALPHA=0.05. However, this parameter is different from the significance value in linear models that is sometimes used to determine which variables enter/leave a model.  Same name, but not the same purpose.

damarek
Calcite | Level 5

Thanks for looking into this matter.

 

I didn't find a suitable dataset to reproduce but let me share some screenshots. I don't think it's related to the ALPHA parameter.

 

I'm trying to evaluate the splines on a 5 variable model, and according to JMP the variable X5 has a p-value > 0.05, but only slightly so, so I would like to include it regardless.

 image.png

 

However running ADAPTIVEREG in SAS just ignores it. 

image.png

 

And doesn't include it in any of the outputs

image.pngimage.pngimage.png

 

Is it possible to enable it regardless of statistical significance?

 

Rick_SAS
SAS Super FREQ

I don't understand what the JMP table is... OLS parameter estimates?  The p-value for the variable in an OLS model is not used by PROC ADAPTIVEREG.  You might be thinking about PROC REG or PROC GLMSELECT which both have forward/backward selection methods that use options (SLENTRY= SLSTAY=) that look at p-values for a parameter in order to include/exclude a variable.

 

PROC ADAPTIVEREG does not use p-values of the parameter of the linear model to determine inclusion of a term.  By default it uses the GCV criterion, or it can use cross-validation. 

 

It sounds like you want to FORCE the X5 variable to be in the final model. You can use the KEEP=X5 option to force X5 into the model. The following call illustrates the syntax. Without the KEEP=MSRP option, that variable does not enter the model.

 

proc adaptivereg data=sashelp.cars details=bases;
model mpg_city = Cylinders EngineSize Horsepower Length 
                 MPG_Highway Weight MSRP / additive linear=MSRP;
run;
damarek
Calcite | Level 5

Yes adding KEEP to MODEL helps, but it seems to keep it linear instead of applying the splines. I'll have to look into it further but this gives me something to work with. Thanks!

Ksharp
Super User
Try KEEP= option of MODEL statement .



sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

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
  • 1502 views
  • 0 likes
  • 3 in conversation