ggfortify уровень доверительных интервалов автоплотинга - PullRequest
1 голос
/ 02 марта 2020

Я пытаюсь оценить 95% доверительные интервалы, используя автоплот из ggfortify, однако я не могу этого достичь. Если я использую пакет прогноза и прогнозирую на 3 недели вперед с 95% -ным доверительным интервалом, он работает нормально. См. Ниже:

wt <- structure(list(DOC = c(3, 10, 17, 24, 31, 38, 45, 52, 59, 66, 
73, 80, 87, 94, 101), AvgWeight = c(1, 1.66666666666667, 2.06666666666667, 
2.275, 3.83333333333333, 6.2, 7.4, 8.5, 10.25, 11.1, 13.625, 
15.2, 16.375, 17.8, 21.5), PondName = structure(c(1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "Pond01", class = "factor"), 
    SampleDate = structure(c(1182585600, 1183190400, 1183795200, 
    1184400000, 1185004800, 1185609600, 1186214400, 1186819200, 
    1187424000, 1188028800, 1188633600, 1189238400, 1189843200, 
    1190448000, 1191052800), class = c("POSIXct", "POSIXt"))), .Names = c("DOC", 
"AvgWeight", "PondName", "SampleDate"), row.names = c(NA, 15L
), class = "data.frame")  

wt$SampleDate <- as.Date(wt$SampleDate)  
wt
     DOC AvgWeight PondName SampleDate
1    3  1.000000   Pond01 2007-06-23
2   10  1.666667   Pond01 2007-06-30
3   17  2.066667   Pond01 2007-07-07
4   24  2.275000   Pond01 2007-07-14
5   31  3.833333   Pond01 2007-07-21
6   38  6.200000   Pond01 2007-07-28
7   45  7.400000   Pond01 2007-08-04
8   52  8.500000   Pond01 2007-08-11
9   59 10.250000   Pond01 2007-08-18
10  66 11.100000   Pond01 2007-08-25
11  73 13.625000   Pond01 2007-09-01
12  80 15.200000   Pond01 2007-09-08
13  87 16.375000   Pond01 2007-09-15
14  94 17.800000   Pond01 2007-09-22
15 101 21.500000   Pond01 2007-09-29

    library(forecast)
    library(ggfortify)
    library(ggplot2)
    library(xts) 

pond <- as.xts(wt$AvgWeight,order.by=seq(as.Date("2007-06-23"), by=7, len=15))
pond 
d.arima <- auto.arima(pond)
d.arima;fitted(d.arima)
d.forecast <- forecast(d.arima, level = c(95), h = 3)
d.forecast


 > d.forecast
    Point Forecast    Lo 95    Hi 95
106           25.2 23.14483 27.25517
113           28.9 24.30450 33.49550
120           32.6 24.91026 40.28974

Я получаю правильные 95% доверительные интервалы при построении объекта пакета прогноза (в данном случае d.forecast)

autoplot(d.forecast,ts.colour='dodgerblue',predict.colour='green',
predict.linetype='dashed',ts.size=1.5,conf.int.fill='azure3') +
 xlab('DOC') + ylab('AvgWeight-grs') + theme_bw()

enter image description here

Но если я это сделаю:

ggfortify::autoplot(d.arima,predict=predict(d.arima,n.ahead=3),conf.int=TRUE,predict.alpha = 
0.05,fitted.colour="green",
predict.colour='red',predict.linetype='solid')

enter image description here

По умолчанию установлено 80% доверительных интервалов. Я попытался установить уровень доверия в функции предиката (), но он игнорируется. Я также пробовал уровень внутри autoplot () и тоже не работал. Вопросы: Как я могу достичь sh различных уровней доверия, используя автоплот из ggfortify? Правильно ли использовать прогнозируемый альфа здесь или он предназначен для альфа-цвета оценки прогнозируемой точки? Кроме того, возможно ли подключить приспособленную зеленую линию к предсказанной красной линии?

1 Ответ

0 голосов
/ 02 марта 2020

Я удивлен, что вы не получаете ошибку и видите графики, которые вы показываете. К сожалению, я не могу воспроизвести ваши графики

  1. Когда я загружаю ggfortify после forecast, я не смог найти способ использовать forecast s autoplot. Это потому, что ggfortify на самом деле не экспортирует autoplot; вместо этого он перезаписывает метод autoplot из forecast. Таким образом, ggfortify::autoplot(...) не должен работать и должен выдавать ошибку

    Ошибка: 'autoplot' не является экспортированным объектом из 'namespace: ggfortify'

  2. Существует также нет predict аргумента autoplot.forecast или autoplot.ts, поэтому я не уверен, откуда это взялось.

Есть ли причина, по которой вы хотите использовать forecast и ggfortify? Почему бы не придерживаться forecast s autoplot для построения? Вот пример, основанный на ваших данных выборки и d.arima

autoplot(forecast(d.arima)) + theme_minimal()

enter image description here

Светлые и темные области соответствуют 95% и 80% CI, соответственно.

Протестировано с использованием forecast_8.10 и ggfortify_0.4.7.

...