Set p-value threshold for stepwiseglm() function?
2 views (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
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.
8 Comments
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.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!