代码之家  ›  专栏  ›  技术社区  ›  S_Dhungel

在不访问原始数据框架的情况下计算回归模型中变量的类别

  •  2
  • S_Dhungel  · 技术社区  · 8 年前

    rda 文件中包含逻辑回归模型。如果我只想知道在 glm 我怎样才能检查这些?例如,如果 Y~ X1+X2+X3 如何知道数据类型 X1 , X2 X3 是此时,我没有数据框架来调查数据类型。任何帮助都将不胜感激。

    1 回复  |  直到 8 年前
        1
  •  3
  •   Zheyuan Li    8 年前

    我想首先提供一些更有用的东西。检查一下怎么样 $terms ? (使用 fit 以下为示例)

    ## or `attr(terms(fit), "dataClasses")`
    attr(fit$terms, "dataClasses")
    #         mpg         qsec   factor(am)           wt factor(gear) 
    #   "numeric"    "numeric"     "factor"    "numeric"     "factor" 
    

    由于您的问题只提到识别数据类,这就足够了。但是,如果要访问变量的数据,请检查 $data . 这就是 glm 不同于 lm . glm 返回的东西比 lm ,包括 data 论点笔记 lm 不回来 数据 .


    多一点 model.frame

    几乎总是, 模型框架 是最好的程序。但要小心使用。

    dat <- mtcars
    fit <- glm(mpg ~ qsec + factor(am) + wt + factor(gear),
               data = dat,  model = FALSE)
    rm(dat)
    model.frame(fit)
    

    is.data中出错。帧(数据):未找到对象“dat”

    $model 不是 NULL , 模型框架 简单地提取它。但如果真是这样的话 无效的 , 模型框架 旨在重建它。但要重建它,您需要访问原始数据帧。如果原始数据帧不可用,您将什么也得不到(只有一个错误)。

    模型框架

    .S3methods("model.frame")
    #[1] model.frame.aovlist* model.frame.default  model.frame.glm*    
    #[4] model.frame.lm*
    

    model.frame.lm model.frame.glm 简单摘录 $model 从模型对象(如果 $model 存在);否则,它会调用 model.frame.default 用于从模型公式和原始数据帧构造模型框架。