通常情况下,R包包含多个函数,这些函数创建由包指定的某个class
的对象,其中泛型或非泛型methods
应用于该类的所有对象。尽管通常很容易找到包中的函数,但我还没有找到任何同样简单的方法来为S3类找到class
本身的精确描述。我认为这至少在一定程度上是故意的。类定义可以被视为一种内部工作,一方面,用户不必考虑,另一方面,包创建者可能会更改,希望人们不要依赖它们。
然而,我发现有时我想创建相同class
的其他对象,这些对象与作为class
方法的包函数一起使用。而且,推导一个对象必须具有哪些特征才能被对该class
的对象执行各种操作的包函数使用并不总是容易的,尤其是当由不同函数创建的实例可能都具有完全相同的结构时。
我目前正在研究的例子是由forecast
包的各种函数创建的forecast
对象。预测包提供了大量将预测对象作为输入的函数。Rob Hyndman的这篇博客文章描述了一个函数来进行交叉验证,并要求类forecast
的对象作为参数;forecastFunction";作为自变量,它必须返回forecast
类的对象,并将一个单变量时间序列作为其第一个对象(假设为预测(,并具有给出地平线的自变量h
。听起来很简单。但在Hyndman的相关教科书第3.6节中,我们被告知预测对象包含有关预测方法、数据、点预测、预测区间、残差和拟合值的信息。这是很多事情,我不确定它们是否都是强制性的,或者有些是可选的,或者只有当你打算使用某些方法时才需要。我对这个班级的强制性内部结构一无所知。
最后,我特别想知道,作为预测包替代品的新寓言包是否使用了相同的预测类机制,并需要相同的内部结构。,或者,如果没有,它们有什么不同。在fpp3或其他地方,我找不到任何描述更改或包含对class forecast
对象的类似描述的内容。
如果有一些简单的功能,,我会很尴尬
you_should_know_this_dummy(package = “forecast”, class = “forecast”)
,
返回类的详细描述。但我一直在寻找这样一个函数,我能想到的每一种方式,但没有找到它
好吧,我的错。我一直在努力寻找查找类描述(我认为不存在(的帮助文件的方法,以至于在包forecast
的手册中,在函数forecast()
下,我忽略了class 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()
或由CCD_20返回的类似。我认为这给了我足够的时间来开始,并希望出现信息错误。
我仍然不知道fable
包是否也使用class forecast
的对象。forecast
包将forecast()
函数记录为泛型。fable
包没有记录泛型,尽管它有一个非常相似的函数列表,看起来像methods
,例如forecast.whatever
。如果我找到答案,我会把它贴在这里。
我也在寻找一些其他包,提供特定类型的时间序列预测。我希望他们能提供足够相似的输出,以便我可以使用预测/寓言功能进行显示、交叉验证等。我们拭目以待。