LinearModel& GeneralizedLinearMixedModel类

时间:2015-05-27 19:06:56

标签: matlab oop time-series linear-regression superclass

Matlab定义了LinearModelGeneralizedLinearMixedModel类。浏览文档表明(i)一个来自另一个,或(ii)有自动转换。这些是复杂的对象,我刚刚开始探索它们,所以如果他们的关系很明显我很抱歉,但他们的关系到底是什么?

另请注意,我在面向对象的背景(C ++)方面表达了上述(i)和(ii),并且我知道可能与Matlab范例存在差异。

此问题的出现是因为函数coefTest接受了GeneralizedLinearMixedModel个对象,但计量经济学工具箱示例"Time Series Regression IX: Lag Order Selection"却提交了LinearModel个对象。

请注意,此问题与Matlab特定的类和Matlab命令coefTest有关。因此,它不属于"交叉验证" Stack Exchange论坛。我把它发布到:

Relationship between LinearModel & GeneralizedLinearMixedModel classes

http://groups.google.com/forum/#!topic/comp.soft-sys.matlab/OHLajBEuPU0

1 个答案:

答案 0 :(得分:1)

要确定这一点,您可以使用superclasses功能:

superclasses('LinearModel')
superclasses('GeneralizedLinearMixedModel')

这将返回每种情况的可见超类的名称。如您所见,两者都继承自abstract超类classreg.regr.ParametricRegression

您还可以查看实际的classdef文件并查看inheritances。在命令窗口中,键入edit LinearModeledit GeneralizedLinearMixedModel。您将分别看到:

classdef (Sealed = true) LinearModel < classreg.regr.TermsRegression

classdef (Sealed = true) GeneralizedLinearMixedModel < classreg.regr.LinearLikeMixedModel

等等。 LinearModelGeneralizedLinearMixedModel都是Sealed,这意味着不允许对它们进行子类化。


为什么coefTest“接受”LinearModelGeneralizedLinearMixedModel类对象的对象?

LinearModelGeneralizedLinearMixedModel都有名为coefTest的方法:LinearModel/coefTestGeneralizedLinearMixedModel/coefTest。尽管名称,这些是完全独立的功能。调用哪个方法取决于传递给它的对象的类。每个类的方法都列在各自的文档中,但是,您也可以在任一类的对象上使用methods函数列出其公共方法。