0

通常情况下,R 包包含多个函数,这些函数创建 some 的对象,由包指定,具有适用于该类的所有对象的class泛型或非泛型。methods尽管通常很容易找到包中的函数,但我还没有找到任何同样直接的方法来找到classS3 类本身的精确描述。我认为这至少部分是故意的。类定义可以被视为一种内部工作方式,一方面,用户不应该考虑,另一方面,可以由包创建者更改,他希望人们不依赖它们。

但是,我发现有时我想创建class与作为方法的包函数一起使用的相同对象的其他对象class。并且,要推断出一个对象必须具有哪些特征才能被对它的对象执行各种操作的包函数使用并不总是那么容易class,尤其是当由不同函数创建的实例可能具有或可能不具有完全相同的结构时。

我目前正在研究的示例是由包forecast的各种功能创建的对象forecast。预测包提供了大量以预测对象为输入的函数。Rob Hyndman 的这篇博客文章描述了一个进行交叉验证的函数,并且需要一个类对象forecast作为参数tsCV函数文档说它需要一个“forecastFunction”作为参数,它必须返回一个类对象forecast并且具有单变量时间序列它的第一个对象(预测,一个假设)并且有一个参数h给出了地平线。嗯,这听起来很容易。但随后在海德曼的相关教科书中,第 3.6 节,我们被告知预测对象包含有关预测方法、数据、点预测、预测区间、残差和拟合值的信息。这是很多事情,我不确定它们是否都是强制性的,或者是否有些是可选的,或者仅当您打算使用某些方法时才需要。而且我对班级的强制性内部结构一无所知。

最后,我特别想知道作为预测包替换的新fable包是否使用相同的预测类机制并需要相同的内部结构。如果不是,它们有何不同。我无法在fpp3或其他地方找到任何描述更改或包含class forecast.

如果有一些简单的功能,我会很尴尬,

you_should_know_this_dummy(package = “forecast”, class = “forecast”),

返回类的详细描述。但是我已经以我能想到的各种方式寻找了这样的功能,但没有找到。

4

1 回答 1

0

好吧,我的坏。我一直在努力寻找一种方法来查找类描述的帮助文件(我认为它不存在),以至于我忽略了package 手册中class forecast函数下的一个很好的描述的存在。这里是:forecast()forecast

An object of class "forecast" is a list usually containing at least the following elements:
model     A list containing information about the fitted model
method    The name of the forecasting method as a character string
mean      Point forecasts as a time series
lower     Lower limits for prediction intervals
upper     Upper limits for prediction intervals
level     The confidence values associated with the prediction intervals
x         The original time series (either object itself or the time series used to create the model stored as object).
residuals  Residuals from the fitted model. For models with additive errors, the residuals will be x minus the fitted values.
fitted    Fitted values (one-step forecasts)

这仍然留下一些未解决的问题,例如模型信息参数的格式model,以及x多变量模型的参数。但我希望这些类似于交给或归还的那些,例如,lm()。我认为这给了我足够的开始,并希望出现信息错误。

我仍然不知道该fable包是否还使用class forecast. 该forecast包将forecast()函数记录为泛型。该fable包没有记录泛型,尽管它有一个非常相似的函数列表,看起来像methods,例如,forecast.whatever。如果我找出答案,我会在这里发布。

我也在寻找其他一些提供特定类型时间序列预测的包。我希望它们提供足够相似的输出,以便我可以使用预测/寓言函数进行显示、交叉验证等。走着瞧。

于 2020-12-11T02:30:04.853 回答