【问题标题】:Identify regression sample in r识别 r 中的回归样本
【发布时间】:2016-06-30 07:39:29
【问题描述】:

我有一个一般性问题。无论如何,我可以识别(或标记)R 回归中使用的观察结果吗?

lligator = data.frame(lnLength = c(3.87, 3.61, NA, 3.43, 3.81, 3.83, 3.46, 3.76,
3.50, 3.58, 4.19, 3.78, 3.71, 3.73, 3.78),lnWeight = c(4.87, 3.93, 6.46, 3.33, 4.38, 4.70, 3.50, 4.50,NA, 3.64, 5.90, 4.43, 4.38, 4.42, 4.25))

t.test=lm(lnWeight ~ lnLength, data = alligator)

我想创建一个数据框,其中的另一列指示使用了哪个观察值。我知道怎么做

na.omit() 

na.exclude()

.completecases

工作,我可以使用它们进行回归。但我正在寻找的是一种创建指标来显示使用了哪些观察的方法。对于那些 Stata 用户来说,类似于 e(sample)

【问题讨论】:

    标签: r regression linear-regression sample


    【解决方案1】:

    如果我理解正确,您可以使用na.action() 检索在回归期间被排除的索引向量,并使用它来计算指标变量:

    alligator$used <- !seq_len(nrow(alligator))%in%na.action(t.test);
    alligator;
    ##    lnLength lnWeight  used
    ## 1      3.87     4.87  TRUE
    ## 2      3.61     3.93  TRUE
    ## 3        NA     6.46 FALSE
    ## 4      3.43     3.33  TRUE
    ## 5      3.81     4.38  TRUE
    ## 6      3.83     4.70  TRUE
    ## 7      3.46     3.50  TRUE
    ## 8      3.76     4.50  TRUE
    ## 9      3.50       NA FALSE
    ## 10     3.58     3.64  TRUE
    ## 11     4.19     5.90  TRUE
    ## 12     3.78     4.43  TRUE
    ## 13     3.71     4.38  TRUE
    ## 14     3.73     4.42  TRUE
    ## 15     3.78     4.25  TRUE
    

    等效但可能更快的方法:

    alligator$used <- TRUE;
    alligator$used[na.action(t.test)] <- FALSE;
    

    【讨论】:

    • 谢谢。那么 na.action() 也是 lm 的另一个返回对象吗?对吗?
    • 没错,它是返回对象上的命名列表组件之一,直接访问为$na.action
    • subsetlm 中使用时,rownames(alligator) %in% names(t.test$residuals)(可能很慢)似乎可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2016-03-22
    相关资源
    最近更新 更多