I wanted to implement a simple forecast model (mostly to try the platform) but I couldn't get it working. It's a bit different from the examples, so perhaps if it ends up working it could help improve the docs. It should be easily reproducible with the data below.
ws <- workspace() # I assume you have this
# AzureML Workspace
# Workspace ID : bla
# API endpoint : bla
#### The time series data. It's actually the monthly ARS/USD pair.
y = structure(c(4.136, 4.1481, 4.15094736842105, 4.208, 4.30252380952381,
4.28642857142857, 4.29709523809524, 4.36522727272727, 4.4385,
4.4407, 4.78166666666667, 4.70657894736842, 4.80904761904762,
4.74694444444444, 4.79659090909091, 4.98911764705882, 5.49942857142857,
5.9485, 6.31, 6.31590909090909, 6.31789473684211, 6.27772727272727,
6.374, 6.53944444444444, 7.37619047619048, 7.745625, 8.07277777777778,
8.681, 9.28, 8.44, 8.35647058823529, 9.01533333333333, 9.355,
9.80714285714286, 9.85363636363636, 9.59875, 11.5059090909091,
11.9263157894737, 10.9033333333333, 10.502, 11.1985, 11.8368421052632,
12.2636363636364, 13.3863157894737, 14.85, 14.8147619047619,
13.3583333333333, 13.136, 13.7163636363636, 13.1283333333333,
12.75, 12.596, 12.64625, 13.015, 14.3776470588235, 15.2385, 15.7378947368421,
15.9309090909091, 15.18625, 13.8333333333333, 13.9156666666667,
15.2083333333333, 15.1555555555556, 14.64, 14.45, 15.09, 15.242,
15.1256, 15.3643333333333, 15.416, 15.7596666666667, 16.145), .Tsp = c(2011,
2016.91666666667, 12), class = "ts")
# Fit a baseline model
fit = Arima(y, order = c(2, 1, 2))
# the "predict" function for the endpoint
predict_arima <- function(h){
require(forecast)
yhat = forecast(fit, h=h)
x = as.data.frame(yhat)
data.frame(yearmon = rownames(x), forecast = x[,1], stringsAsFactors = FALSE)
}
out_schema = predict_arima(h = 10)
str(out_schema)
# 'data.frame': 10 obs. of 2 variables:
# $ yearmon : chr "Jan 2017" "Feb 2017" "Mar 2017" "Apr 2017" ...
# $ forecast: num 16.2 16 16.1 16.1 16.1 ...
### Here is the web service definition:
ep <- publishWebService(ws = ws, fun = predict_arima, name = "forecast_arima_h",
inputSchema = list(h = "numeric"),
outputSchema = out_schema,
data.frame = FALSE,
packages = 'forecast')
Request failed with status 401. Waiting 3.0 seconds before retry
.
Error: AzureML returns error code:
HTTP status code : 400
AzureML error code : LibraryExecutionError
Module execution encountered an internal library error.
The following error occurred during evaluation of R script:
R_tryEval: return error: Error in do.call(..fun, inputDF[i, ]) : second argument must be a list
Hi,
I wanted to implement a simple forecast model (mostly to try the platform) but I couldn't get it working. It's a bit different from the examples, so perhaps if it ends up working it could help improve the docs. It should be easily reproducible with the data below.
After the packages are downloaded (I'll leave it out) This is the result: