stepwiselm: Can I limit the maximum number of variables to a fixed integer?

1 次查看(过去 30 天)
I'm using stepwiselm:
stepwiselm(X,y,'constant','Upper','quadratic','Criterion','adjrsquared')
I want my model to include all kinds of linear terms, interactions, and squared terms, so I choose "'Upper','quadratic'". At the same time I would like my model not to include more than 10 variables altogether. E.g. the goal is to find those 10 terms from all kinds of possibilities that maximize the Criterion, e.g. adjrsquared. How can I implement this?
Thank you very much.

采纳的回答

Mukul Rao
Mukul Rao 2017-7-19
Hi,
I work for the MathWorks, and I believe what you are trying to accomplish is not currently supported by "stepwiselm". You can come close to this functionality by starting with a model containing only the constant term, and using the 'NSteps' option to limit the number of steps taken. That process may include terms being removed as well as entered, though, so this will not do exactly as requested.
There is an enhancement request in place and I will make sure to add your use case in the details.
  1 个评论
Karsten Reuß
Karsten Reuß 2017-7-19
Dear Mukul,
thank you very much for the info and the enhancement request. I think such a functionality could be very useful in several situations. Like if you want to make predictions without overfitting and you seek a parsimonious model with few, but very strong predictors.
I actually attempted to approach this functionality the way you described, but as you said, as the algorithm may remove and add terms more frequently to optimize the criteria. E.g. it may not be the best model in the end after NSteps is not always equal maxPredictors.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Model Building and Assessment 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by