Loess - y-координаты не отображаются правильно - PullRequest
1 голос
/ 20 мая 2019

Я использую набор данных flu из пакета astsa, и он содержит месячные значения измерений с 1968 по 1978.

Теперь я хотел бы иметь последовательность того же диапазона (12 * 11= 132), которая содержит именно эти моменты времени измерения, так что я смогу построить кривую лёсса с линиями, как в коде ниже.

К сожалению, красная кривая Лёсса абсолютно плоская, даже если она выглядит хорошо, если я строю ее отдельно (с x = measure_points).

Проблема, безусловно, заключается в точках измерения времени, я просто не могу их правильно использовать в качестве индекса для линий (предсказать Лесс).Как я могу решить это правильно с моим набором данных?

install.packages("astsa")
library(astsa)
data(flu)
tm <- seq(flu)
infpneum <- ts(flu,start=1968,freq=12)
res <- loess(infpneum ~ tm,span=0.1) 
pred <- predict(res)
measurement_points <- seq(as.Date("1968-01-01"),as.Date("1978-12-31"),by="months")
plot(infpneum)
lines(pred,type="l",col="red",x=measurement_points)

Ответы [ 2 ]

2 голосов
/ 20 мая 2019

Это то, что вы имели в виду?

plot (measurement_points, infpneum, type = "l")
lines(measurement_points, res$fitted, type="l", col="red")

1 голос
/ 20 мая 2019

Одним из решений является создание объекта временных рядов путем имитации структуры infpneum:

library(astsa); data(flu)
tm <- seq(flu)
infpneum <- ts(flu,start=1968,freq=12)

str(infpneum) #just to see how it's structured 
 ## Time-Series [1:132] from 1968 to 1979: 0.811 0.446 0.342 0.277 0.248 ...

res <- loess(infpneum ~ tm,span=0.1)
pred <- ts(predict(res),start=1968,freq=12)

str(pred) #just to see how it's structured
 ## Time-Series [1:132] from 1968 to 1979: 0.706 0.54 0.41 0.314 0.248 ...

plot(infpneum)
lines(pred,type="l",col="red")

Создано в 2019-05-20 с помощью Представить пакет (v0.2.1)

...