NEWS.md
LSDModel() drops trend_correction, IDSModel() drops threshold and STLModel() drops trend, none of which exists in Julia; KDEModel() drops bandwidth and kernel and STLModel() drops robust, which are estimation settings that fit_baseline() does not expose; ARMAModel() drops include_mean, as the intercept is always estimated; and ETSModel() drops damped, since damping is requested through trend_type = "Ad" or "Md". These arguments were accepted and then discarded, so a model built with them was identical to one built without them (#7).ETSModel(error_type = "M") now returns a multiplicative-error model, and error_type = "N" is rejected: every ETS model has an error term. ForecastBaselines.jl reaches its multiplicative error through the string "N" and builds an additive-error model for every other string, so in 0.1.0 it was error_type = "N" — documented there as “none” — that gave multiplicative errors, while "M" gave additive ones. Code written against 0.1.0 should read "N" as "M", and "M" as "A".setup_ForecastBaselines() drops install_package, which it accepted and then ignored: the package always initialises Julia against the pinned project it ships in inst/julia.LSDModel() defaults window_width to 0, matching ForecastBaselines.jl. The previous default of 1 averaged in the time points either side of each seasonal position, blurring the seasonal profile without saying so.TemporalInfo() constructors return a description of the Julia call, built in Julia only when it is used, so they no longer start Julia. Printing one shows the Julia code it stands for, and $kwargs holds its arguments under their ForecastBaselines.jl names, as in LSDModel(s = 12)$kwargs$w. as_julia_object() builds the Julia object for inspecting it, so that as_julia_object(LSDModel(s = 12))$w reads the field as before.add_intervals(), add_trajectories() and filter_levels() return forecasts that the has_*(), add_*() and filter functions can act on. They used to return forecasts those functions refused.ARMAModel() passes include_drift through to Julia, which adds a linear trend to the mean of the series (#7).ARMAModel() and INARCHModel() gain k, the number of harmonic waves representing seasonality. Values above 1 allow sharper, asymmetric seasonal shapes than a single sinusoid, subject to the limits documented on each function: ARMA fits with several waves can settle far from the data, and INARCH forecasts do not reflect the estimated seasonality, which INARCHModel() warns about (#7).INARCHModel() gains s (seasonal period) and nb (negative binomial conditional distribution for overdispersed counts) (#7).add_temporal_info() matches the ForecastBaselines.jl method it calls: it drops target_date, which Julia derives from the reference date, the forecast’s horizon and resolution; takes resolution as a keyword argument rather than positionally; and converts a Date reference date into a Julia Date rather than letting it reach Julia as a Float64. Every previous call failed with a MethodError (#14).