Set p-value threshold for stepwiseglm() function?

2 views (last 30 days)
Hi, I am using
stepwiseglm(D(1:2719,2:end),D(1:2719,1),'constant','upper','linear','Distribution','binomial','Link','logit')
in a process to explore available parameters for a logistic regression and decide on which ones to use and which ones to ignore.
The function adds the parameter if p-value of marginal value is <.05, discards parameter if >.10
Since my purpose is exploratory, I'd be interested in having a look at parameters with a p-value of say, up to .25
I am new to matlab and having trouble finding if I can adjust the p-value thresh-hold.
Anyone know? Thanks-- Justin

Accepted Answer

the cyclist
the cyclist on 18 Sep 2014
Edited: the cyclist on 18 Sep 2014
Use the Criterion name-value pair to specify which criterion is measured to determine terms to remove, and the PRemove name-value pair to specify the value.
See the "Name-Value Pair Arguments" section of the documentation for stepwiseglm for details.
  8 Comments
the cyclist
the cyclist on 4 Oct 2014
I finally found some time to explore. Here is a contrived example in which I construct three different models -- "strict","loose", and "very loose" -- off the same data.
rng(1)
N = 50;
X = randn(N,2);
noise = 10;
Y = 2 + 3*X(:,1) + 3.6*X(:,2) + noise*randn(N,1);
model_strict = stepwiseglm(X,Y,'constant','upper','linear')
model_loose = stepwiseglm(X,Y,'constant','upper','linear','Criterion','Deviance','PEnter',0.25,'PRemove',1)
model_very_loose = stepwiseglm(X,Y,'constant','upper','linear','Criterion','Deviance','PEnter',0.90,'PRemove',1)
"model_strict" uses default MATLAB settings for adding and removing terms. Notice that this model does not add either X(:,1) or X(:,2).
"model_loose" adds terms if p-value is less than 0.25, and only removes if p-value greater than 1. (In other words, it never removes terms.) This model adds X(:,2), but not X(:,1).
"model_very_loose" adds terms if p-value is less than 0.90, and only removes if p-value greater than 1. (In other words, it never removes terms.) This model adds both X(:,2) and X(:,1).
I think "model_loose" is effectively to what you are trying to achieve.
I hope this helps. The "Algorithm" section of this documentation page describes the algorithm MATLAB uses to add and remove terms.
Justin
Justin on 8 Oct 2014
Yeah that did it - Thanks for the step by step and taking time to look into it, still learning how to apply function parameters--

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!