将寓言中的点预测从指数格式转换为正常数字
Convert point forecasts in fable from exponential format to normal numbers
我创建了以下 tsibble
(名为 afsi
)
structure(list(Date = structure(c(12509, 12600, 12692, 12784,
12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514, 13604,
13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335, 14426,
14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156, 15248,
15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979, 16071,
16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801, 16892,
16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622, 17713,
17805, 17897), fiscal_start = 1, class = c("yearquarter", "vctrs_vctr"
)), Index = c(4.6049904235401, 4.60711076016453, 4.60980084146652,
4.61025389170935, 4.60544515681515, 4.60889021700954, 4.60983993107244,
4.61091608826696, 4.61138799159174, 4.61294431148318, 4.61167545843765,
4.61208284263432, 4.61421991328081, 4.61530485425155, 4.61471465043043,
4.6155992084451, 4.61195799200607, 4.61178486640435, 4.61037927954796,
4.60744590947049, 4.59979957741728, 4.59948551500254, 4.60078678080182,
4.60556092645471, 4.60934962087565, 4.60981147563749, 4.61060477704678,
4.61158365084251, 4.60963435263623, 4.61018215733317, 4.61209710959768,
4.61231368335184, 4.61071363571141, 4.61019496497916, 4.60948652606191,
4.61068813487859, 4.6084092003352, 4.60972706132393, 4.60866915174087,
4.61192565195909, 4.60878767339377, 4.61341471281265, 4.61015272152397,
4.6093479714315, 4.60750965935653, 4.60768790690338, 4.60676463096309,
4.60746490411374, 4.60885670935448, 4.60686846708382, 4.60688947889575,
4.60867708110485, 4.60448791268212, 4.60387348166032, 4.60569806689426,
4.6069320880709, 4.6087143894128, 4.61059688801283, 4.61065399116698,
4.61071421014339)), row.names = c(NA, -60L), key = structure(list(
.rows = structure(list(1:60), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame")), index = structure("Date", ordered = TRUE), index2 = "Date", interval = structure(list(
year = 0, quarter = 1, month = 0, week = 0, day = 0, hour = 0,
minute = 0, second = 0, millisecond = 0, microsecond = 0,
nanosecond = 0, unit = 0), .regular = TRUE, class = c("interval",
"vctrs_rcrd", "vctrs_vctr")), class = c("tbl_ts", "tbl_df", "tbl",
"data.frame"))
使用这些数据,我创建了一个 ARIMA 模型,并使用 fable
包从中模拟了未来一年的预测。我注意到我的 table 以指数表示法生成的预测不太好读,有没有一种方法可以转换点预测(在 [=24 的 Index
列下=]) 显示为正常数字(可能四舍五入为 5 位数)?
library(fable)
fit <- afsi %>%
model(arima = ARIMA(Index))
table <- fit1 %>% forecast(h='1 year')
table
的结果如下
# A fable: 4 x 4 [1Q]
# Key: .model [1]
.model Date Index .mean
<chr> <qtr> <dist> <dbl>
1 arima 2019 Q2 N(4.6, 4.6e-06) 4.61
2 arima 2019 Q3 N(4.6, 7.4e-06) 4.61
3 arima 2019 Q4 N(4.6, 9e-06) 4.61
4 arima 2020 Q1 N(4.6, 9.9e-06) 4.61
我们可以设置options
options(scipen = 999)
-之前
table
# A fable: 4 x 4 [1Q]
# Key: .model [1]
# .model Date Index .mean
# <chr> <qtr> <dist> <dbl>
#1 arima 2019 Q2 N(4.6, 4.6e-06) 4.61
#2 arima 2019 Q3 N(4.6, 7.4e-06) 4.61
#3 arima 2019 Q4 N(4.6, 9e-06) 4.61
#4 arima 2020 Q1 N(4.6, 9.9e-06) 4.61
options(scipen = 999)
-在
之后
table <- fit %>%
forecast(h='1 year')
table
# A fable: 4 x 4 [1Q]
# Key: .model [1]
# .model Date Index .mean
# <chr> <qtr> <dist> <dbl>
#1 arima 2019 Q2 N(4.6, 0.0000046) 4.61
#2 arima 2019 Q3 N(4.6, 0.0000074) 4.61
#3 arima 2019 Q4 N(4.6, 0.000009) 4.61
#4 arima 2020 Q1 N(4.6, 0.0000099) 4.61
我创建了以下 tsibble
(名为 afsi
)
structure(list(Date = structure(c(12509, 12600, 12692, 12784,
12874, 12965, 13057, 13149, 13239, 13330, 13422, 13514, 13604,
13695, 13787, 13879, 13970, 14061, 14153, 14245, 14335, 14426,
14518, 14610, 14700, 14791, 14883, 14975, 15065, 15156, 15248,
15340, 15431, 15522, 15614, 15706, 15796, 15887, 15979, 16071,
16161, 16252, 16344, 16436, 16526, 16617, 16709, 16801, 16892,
16983, 17075, 17167, 17257, 17348, 17440, 17532, 17622, 17713,
17805, 17897), fiscal_start = 1, class = c("yearquarter", "vctrs_vctr"
)), Index = c(4.6049904235401, 4.60711076016453, 4.60980084146652,
4.61025389170935, 4.60544515681515, 4.60889021700954, 4.60983993107244,
4.61091608826696, 4.61138799159174, 4.61294431148318, 4.61167545843765,
4.61208284263432, 4.61421991328081, 4.61530485425155, 4.61471465043043,
4.6155992084451, 4.61195799200607, 4.61178486640435, 4.61037927954796,
4.60744590947049, 4.59979957741728, 4.59948551500254, 4.60078678080182,
4.60556092645471, 4.60934962087565, 4.60981147563749, 4.61060477704678,
4.61158365084251, 4.60963435263623, 4.61018215733317, 4.61209710959768,
4.61231368335184, 4.61071363571141, 4.61019496497916, 4.60948652606191,
4.61068813487859, 4.6084092003352, 4.60972706132393, 4.60866915174087,
4.61192565195909, 4.60878767339377, 4.61341471281265, 4.61015272152397,
4.6093479714315, 4.60750965935653, 4.60768790690338, 4.60676463096309,
4.60746490411374, 4.60885670935448, 4.60686846708382, 4.60688947889575,
4.60867708110485, 4.60448791268212, 4.60387348166032, 4.60569806689426,
4.6069320880709, 4.6087143894128, 4.61059688801283, 4.61065399116698,
4.61071421014339)), row.names = c(NA, -60L), key = structure(list(
.rows = structure(list(1:60), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame")), index = structure("Date", ordered = TRUE), index2 = "Date", interval = structure(list(
year = 0, quarter = 1, month = 0, week = 0, day = 0, hour = 0,
minute = 0, second = 0, millisecond = 0, microsecond = 0,
nanosecond = 0, unit = 0), .regular = TRUE, class = c("interval",
"vctrs_rcrd", "vctrs_vctr")), class = c("tbl_ts", "tbl_df", "tbl",
"data.frame"))
使用这些数据,我创建了一个 ARIMA 模型,并使用 fable
包从中模拟了未来一年的预测。我注意到我的 table 以指数表示法生成的预测不太好读,有没有一种方法可以转换点预测(在 [=24 的 Index
列下=]) 显示为正常数字(可能四舍五入为 5 位数)?
library(fable)
fit <- afsi %>%
model(arima = ARIMA(Index))
table <- fit1 %>% forecast(h='1 year')
table
的结果如下
# A fable: 4 x 4 [1Q]
# Key: .model [1]
.model Date Index .mean
<chr> <qtr> <dist> <dbl>
1 arima 2019 Q2 N(4.6, 4.6e-06) 4.61
2 arima 2019 Q3 N(4.6, 7.4e-06) 4.61
3 arima 2019 Q4 N(4.6, 9e-06) 4.61
4 arima 2020 Q1 N(4.6, 9.9e-06) 4.61
我们可以设置options
options(scipen = 999)
-之前
table
# A fable: 4 x 4 [1Q]
# Key: .model [1]
# .model Date Index .mean
# <chr> <qtr> <dist> <dbl>
#1 arima 2019 Q2 N(4.6, 4.6e-06) 4.61
#2 arima 2019 Q3 N(4.6, 7.4e-06) 4.61
#3 arima 2019 Q4 N(4.6, 9e-06) 4.61
#4 arima 2020 Q1 N(4.6, 9.9e-06) 4.61
options(scipen = 999)
-在
之后table <- fit %>%
forecast(h='1 year')
table
# A fable: 4 x 4 [1Q]
# Key: .model [1]
# .model Date Index .mean
# <chr> <qtr> <dist> <dbl>
#1 arima 2019 Q2 N(4.6, 0.0000046) 4.61
#2 arima 2019 Q3 N(4.6, 0.0000074) 4.61
#3 arima 2019 Q4 N(4.6, 0.000009) 4.61
#4 arima 2020 Q1 N(4.6, 0.0000099) 4.61