R中的标准模型对象的关键组件和函数是什么?

我在R中实现了一个新的统计模型,它在我的沙箱中工作,但我想使它更标准。一个很好的比较是lm(),其中我可以采取一个模型对象和:

>应用summary()函数
>提取模型的系数
>从拟合(训练)数据提取残差
>更新模型
>应用predict()函数
>应用plot()到预先选择的描述性图
>参与许多其他种类的欢乐

我已经浏览了R手册,在线搜索,并通过几本书,并且,除非我忽视的东西,我找不到一个很好的教程,应该进入一个新的模型包。

虽然我最感兴趣的是彻底的参考文献或指南,我会继续这篇文章专注于一个问题有两个组件:

>通常预期在模型对象中的关键组件是什么?
>什么是通常在建模包中实现的典型功能?

答案可以来自R核心(或软件包开发者)的角度或从用户的角度,例如。用户期望能够使用诸如摘要,预测,残差,系数等函数,并且在拟合模型时通常期望传递公式。

把你认为有用和必要的对象。我认为一个更重要的问题是你如何包括这些信息,以及如何访问它。

至少,提供一个print()方法,以便在打印对象时,整个对象不会被转储到屏幕上。如果你提供一个summary()方法,约定是让该对象返回一个类为summary.foo的对象(其中foo是你的类),然后提供一个print.summary.foo()方法—你不希望你的summary()方法做任何打印和本身。

如果你有系数,拟合值和残差,这些都很简单,那么你可以将它们分别作为$系数,$ fits.values和$ residuals存储在返回的对象中。然后coef(),fitted()和resid()的默认方法将工作,而不需要添加自己的定制方法。如果这些不简单,那么为你的类提供自己的coef(),fitted.values()和residuals()方法。不是简单的,我的意思是,例如,如果有几种类型的残差,你需要处理存储的残差以获得所请求的类型—然后你需要自己的方法,需要一个类型参数或类似选择从可用类型的残差。参见?residuals.glm例子。

如果预测是可以有用地提供的东西,则可以提供predict()方法。看看predict.lm()方法,例如看看应该采取什么参数。同样,如果通过添加/删除项或更改模型参数更新模型有意义,则可以提供update()。

plot.lm()给出了提供拟合模型的几个诊断图的方法的示例。您可以对该函数建模方法,以从一组预定义的诊断图中进行选择。

如果你的模型有可能性,那么提供logLik()方法来计算或从拟合模型对象中提取它是标准的,如果这样的事情是相关的,deviance()是另一个类似的函数。对于参数的置信区间,confint()是标准方法。

如果你有一个公式接口,那么formula()方法可以提取它。如果你把它存储在默认方法搜索的地方,那么你的生活会变得更容易。一个简单的存储方式是将匹配的调用(match.call())存储在$ call组件中。提取数据和扩展的模型框架(model.frame())和模型矩阵(model.matrix())的方法(使用对比度转换为变量,加上模型框架数据的任何转换或函数的模型)模型矩阵是标准提取器函数。查看标准R建模函数的示例,了解如何存储/提取此信息。

如果您使用公式接口,请尝试遵循具有公式接口/方法的大多数R模型对象中使用的标准非标准计算方法。你可以在R Developer页找到详细信息,特别是Thomas Lumley的document。这给了大量的建议,使你的功能像一个R模型功能工作的工作。

如果你遵循这个范例,那么如果你遵循标准(非标准)规则,那么像na.action()这样的提取器应该可以正常工作。

翻译自:https://stackoverflow.com/questions/6849410/what-are-the-key-components-and-functions-for-standard-model-objects-in-r

转载注明原文:R中的标准模型对象的关键组件和函数是什么?