【问题标题】:Bootstrap Variance in R?R中的自举方差?
【发布时间】:2018-02-18 04:26:30
【问题描述】:

尝试在 R 中对估计量进行引导方差,但遇到了困难。本质上,我试图从更大的数据集中提取 50 个随机行,然后从这 50 个行中,使用 20 的样本大小引导 1000 倍特定估计器(下面的公式),然后从那里计算估计量之间的差异。我的代码如下。我很迷茫。

vector = d()
bootstraprows <- data[sample(nrow(data), 50), ]
for (i:100){
i <- sample(nrow(bootstraprows), size=20, replace=T)
c <- (sum(i$mpg*i$weight))/(sum((i$weight)^2))
append(d, c)
}
var(d)

如前所述,我正在尝试计算 MPG * 重量的总和除以重量^2 的总和。如果可以的话请帮忙。谢谢!

【问题讨论】:

    标签: r statistics


    【解决方案1】:

    我不太确定您想要完成什么,但我尝试构建一个示例。我使用了R自带的内置mtcars数据集。

    # load sample data
    data(mtcars) 
    df <- mtcars
    # show data structure
    str(df) 
    'data.frame':   32 obs. of  11 variables:
    $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
    $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
    $ disp: num  160 160 108 258 360 ...
    $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
    $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
    $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
    $ qsec: num  16.5 17 18.6 19.4 17 ...
    $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
    $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
    $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
    $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
    # fix randomization seed, make sample() reproducible
    set.seed(1)
    # take random 10 rows from df
    sampleSize <- 10
    bRows <- df[sample(nrow(df), sampleSize), ]
    # do 7 bootstrap replications
    bSamples <- 7
    # make container for results
    bResults <- rep(NA, bSamples) 
    

    现在我们可以实际执行引导了

    # loop over bootstraps
    for (b in seq_len(bSamples)) { 
      # make bootstrap draw from bRows
      bData <- bRows[sample(sampleSize, size = sampleSize, replace = TRUE), ]
      # compute your statistic of interest
      bValue <- sum(bData[["mpg"]] * bData[["wt"]]) / sum((bData[["wt"]])^2)
      # store results in container
      bResults[[b]] <- bValue
    }
    # show what we computed
    bResults
    [1] 4.490459 6.297782 3.651372 3.612414 5.348291 5.149250 3.818677
    

    这些有帮助吗?

    【讨论】:

    • 是的!太感谢了! :)
    猜你喜欢
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多