Set p-value threshold for stepwiseglm() function?

1 view (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)

Categories

Find more on Descriptive Statistics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!