Может ли кто-нибудь дать мне руководство о том, как использовать для l oop поиск минимального значения RMSE и использовать «применить функцию» для прогнозирования в каждом столбце? Вот набор данных.
T 6753 6763 6803 6806 6777 6799 6809 6832 6838 6831 6838 6807 6782 6809 6785 6766 6788 6704 6656 7093 7091 7100 7074 7047 7063 7070 7067 7040 709 7051 7074 7058 709 7032 7074 7058 709 7032 7055 7027 7032 7074 7058 7051 7074 7058 7051 7074 7058 709 - 706 7058 709 7051 - 705 7058 7051 7074 7058 709 7032 - 705 7058 7067 7074 7058 708 7074 7058 7083 7074 70 5 708 7068 7070 7058 7061 7074 7061 708 7068 7068 7061 7083 D 830 3 5 5 5 5 6 6 6 3 3 3 3 6 6 6 6 6 68 68 68 6 687 6 8 68 68 6 687 6 8 68 6 6 6 5 5 6 6 5 6 6 6 6 5 6 6 6 6 6 6 6 6 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 П 7103 7127 7121 7111 7123 7147 7119 7106 7103 7091 7097 7103 7086 7099 7094 7139 7186 7198 7248 7274 7319 7329 7384 7410 7479
C 2307 2296 227 217 2094 2074 2074 2170 2094 2074 2117 2128 2106 1687 1674 1664 1638 1641 1672 1679 1677 1675 1681 1675 1665 1697 1694 1694 1693 1693 1691 1703 1706 1700 1695 1698 1712 1688 1701 1693 1674 1690 1688 1710 1711 1692 1688 1700 1684 1755 1744 1764 1762 1753 * 175 175 * 1763 1788 * 155
У меня есть 2 столбца, которые мне нужно спрогнозировать в R. Я планирую использовать «Холт» для прогнозирования будущих значений. Одна из переменных в Holt - ввод бета-версии. Я не знаю, как написать функцию для назначения бета-версии каждому столбцу.
Ниже описано, как рассчитать среднеквадратичное значение. Это легко, если у меня есть только один столбец. Но теперь у меня есть 2 или более столбцов.
beta<-seq(.05,.9,by=0.001)
RMSE<-NULL
for (i in seq_along(beta)){
fit<-holt(cretrain, beta=beta[i],h = length(cretest))
RMSE[i]<-accuracy(fit,cretest)[2,2]
}
beta.fit<-data_frame(beta,RMSE)
beta.min<-filter(beta.fit,RMSE==min(RMSE))
Вот как я использую приложение для прогнозирования. В идеале я хочу, чтобы бета-версия базировалась на значениях, которые исходят из первой части кода.
list<-apply(df,2,function(x)holt(ts(x,start = c(2015,1),end = c(2020,1),frequency = 12),h=2,beta=.5))
Спасибо