私が住んでいる町では、「ステップワイズ法で、ただし特定の変数は残るようにした上で、最良のモデルを選択してほしい」と言われ、手法の妥当性を説明するのが難しいので気が進まないものの、やらざるを得ないことがあります。
ここにやり方が載っていて、
以下、ロジスティック回帰の例でやってみます。
library(dplyr) d <- iris # 従属変数を2カテゴリにして、値を0,1に変換しておきます(しなくてもいいけど) d <- d %>% mutate(Species = as.numeric(Species)-2) %>% filter(Species != -1) # まず、すべての変数を入れたロジスティック回帰 full.model <- glm(Species ~., family = binomial(logit), data = d, ) summary(full.model) # AIC最小となるベストのモデルを探索 best.model.1 <- step(full.model) summary(best.model.1) # 特定の変数を残したい場合は、scopeの中でlowerに最小限モデルを設定する # (今回は結果的にフルモデルと同じものが採択される) best.model.2 <- step(full.model, scope=list(lower=Species ~ Sepal.Length, upper=full.model)) summary(best.model.2)