Skip to content

Commit cfe680c

Browse files
authored
Merge pull request #3 from anyappinc/support-forced-entry
Add support for forced entry to BackwardElimination
2 parents 3fb50c6 + 18c0aa8 commit cfe680c

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

v2/regression.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,9 @@ func (r *Regression) Run() (*Model, error) {
498498
}
499499

500500
// BackwardElimination : 変数減少法で解析する
501-
func (r *Regression) BackwardElimination(p float64) ([]Model, error) {
501+
//
502+
// `forcedExpVarsIndexesSet`に指定したインデックスの説明変数は強制投入(必ず使用)される
503+
func (r *Regression) BackwardElimination(p float64, forcedExpVarsIndexesSet map[int]struct{}) ([]Model, error) {
502504
originalDisregardingExplanatoryVarsSet := make(map[int]struct{}, len(r.disregardingExplanatoryVarsSet))
503505
for k, v := range r.disregardingExplanatoryVarsSet {
504506
originalDisregardingExplanatoryVarsSet[k] = v
@@ -519,6 +521,10 @@ func (r *Regression) BackwardElimination(p float64) ([]Model, error) {
519521
}
520522
eliminationTarget, border := (*ExplanatoryVarResult)(nil), p
521523
for i := range model.ExplanatoryVars {
524+
// 強制投入する変数は除かない
525+
if _, ok := forcedExpVarsIndexesSet[model.ExplanatoryVars[i].OriginalIndex]; ok {
526+
continue
527+
}
522528
if model.ExplanatoryVars[i].Prob > border {
523529
eliminationTarget = &model.ExplanatoryVars[i]
524530
border = model.ExplanatoryVars[i].Prob

0 commit comments

Comments
 (0)