Я занимаюсь моделированием арима, и мне нужно выполнить пошаговое обратное удаление переменных, удалив член (переменную) с наименьшим ранжированием (наивысшее p_value), а затем повторно запустив моделирование и выходные данные.
Я написал 6функции и использовать их все в функции под названием backward_stepwise
.Где два входа: x = объект временного ряда и y = кадр данных (те же данные, что и для x, столбцы которого будут удалены, а затем преобразованы в объект временного ряда).
Если я отключу функцию изапускать каждую строку отдельно, она работает как положено, однако при запуске внутри функции это не так.
Я полагаю, что проблема заключается в том, где x изначально вводится как объект временного ряда.Далее в функции x переопределено x<-cond_select(x = y, y = remove_num_one)
Как мне переопределить x, поскольку текущий подход не работает?
backward_stepwise<-function(x, y){
repeat{
arima_result<-auto_arima(x)
arima_pvals<-p_calc(arima_result)
arima_outputs<-run_outputs(arima_result, arima_pvals)
arima_ranked<-rank_pval(arima_outputs)
remove_num_one<-remove_one(arima_ranked)
x<-cond_select(x = y, y = remove_num_one)
if(min(arima_ranked$rank, na.rm = TRUE) != 1){
}
break
}
return(arima_ranked)
}
Вывод представляет собой df следующим образом:
term coef pval rank
intercept 1813100.88 0.000 NA
Price.Diff -70754.08 0.015 NA
School 19136.72 0.091 NA
Easter -56811.50 0.469 1
Christmas -53763.55 0.046 NA
High.Week -436343.74 0.000 NA
Low.Week 187945.17 0.005 NA
Тем не менее, цикл повторения должен удалить Пасху и повторно запустить модель и выходные данные и прерваться, когда min $ rank! = 1, поэтому столбец ранга всех NA.
Большое спасибо