#r #time-series #modeling
#r #временные ряды #моделирование
Вопрос:
В R, используя библиотеку HarmonicRegression, я пытаюсь подогнать модель гармонической регрессии к тренду, но я изо всех сил пытаюсь выяснить, как вызвать функцию harmonic.regression и построить подобранную модель.
library(TSA)
library(HarmonicRegression)
data(tempdub)
har_model <- harmonic.regression(tempdub, time(tempdub), Tau = 24, normalize = TRUE, norm.pol = FALSE, norm.pol.degree = 1, trend.eliminate = FALSE, trend.degree = 1)
plot(ts(fitted(har_model), freq=1, start=c(1964,1)), type='l', ylim=range(c(fitted(har_model), tempdub)))
points(tempdub)
Первая ошибка, с которой я сталкиваюсь, это:
Error in if (nrow(inputts) != length(inputtime)) stop(paste("Length of time series (inputts):", :
argument is of length zero
Есть идеи, как этого можно достичь?
Ответ №1:
library("TSA")
library("HarmonicRegression")
data(tempdub)
har_model <- harmonic.regression(as.vector(tempdub),
1:length(tempdub), Tau = 12,
normalize = TRUE, norm.pol = FALSE, norm.pol.degree = 1,
trend.eliminate = FALSE, trend.degree = 1)
plot(tempdub)
lines(ts(har_model$fit.vals, freq=12, start=c(1964,1)), lty=2, col=3)
https://cran.r-project.org/web/packages/HarmonicRegression/HarmonicRegression.pdf
В руководстве объясняется, что вы должны указывать входные данные и время ввода в виде вектора или матрицы для harmonic.regression()
.