R: 基本函数不能使用 Caper 包中的对象

R: Base functions cannot use object from the package Caper

我正在 运行 使用 caper 包进行系统发育分析,其中回归函数(使用系统发育独立对比)是 crunchcrunch 函数使用 caper 包内部的对象 caic.

模型通过以下方式启动:

crunchMod <- crunch(y ~ f(x), data = comparison)

当我 运行 summary(crunchMod) 时,我得到的格式与 lm() 函数生成的摘要的格式相同。

但是,在尝试通过输入 rstandard(crunchMod) 开始检查模型假设时,我收到以下错误:

Error in UseMethod("rstandard") : 
no applicable method for 'rstandard' applied to an object of class "caic"

通读第 19-20 页的 http://cran.r-project.org/web/packages/caper/vignettes/caper.pdf,我发现 plot(crunchMod) 使用包装器来检查回归假设。然而,这些是图形检查:

residuals vs Fitted values
standardized residuals vs theoretical quantities [QQ plot]
sqrt(standardized residuals) vs fitted values [Scale-location]
standardized residuals vs leverage).

有谁知道如何使用我自己的包装器访问标准化残差,或者允许我访问 p 值而不是图形图像?

这个很简单,但是在crunch().中的第二个if()语句兜了一圈才看到caic的总结方法,只是整个摘要/模型的子集

> summary.caic
function (object, ...) 
{
    summary(object$mod, ...)
}
<environment: namespace:caper>

您可以看到整个模型的名称显示其余部分有有用的统计信息。

names(summary(crunchMod))
# [1] "call"          "terms"         "residuals"     "coefficients" 
# [5] "aliased"       "sigma"         "df"            "r.squared"    
# [9] "adj.r.squared" "fstatistic"    "cov.unscaled" 

注意只有mod部分继承自lm()你可以用

查看crunchMod对象的所有继承
> sapply(crunchMod, is)
$contrast.data
[1] "list"   "vector"

$mod
[1] "lm"       "oldClass"

$data
[1] "comparative.data"