【问题标题】:How to make a stratified random sample with panel data in Rstudio?如何在 Rstudio 中使用面板数据制作分层随机样本?
【发布时间】:2021-02-12 09:30:00
【问题描述】:

我想做一个分层随机样本的面板数据。怎么做?

示例: 最相似的情况是数据集 Guns,包含在“R”的 AER 包中。它有 51 个状态,13 个变量超过 23 年。这里有两种情况:

  1. 如何制作40个州的分层随机样本?
  2. 如何仅制作 size=40 个状态的随机样本?

我试过这个:

set.seed(2)

samp1=strata(Guns, ("levels(Guns$state)"), size=c(40), method = "srswor")

但返回错误:

Error in strata(Guns, (levels(Guns$state)), size = c(40), method = "srswor") : 
  the names of the strata are wrong

谢谢!

【问题讨论】:

  • 分层随机抽样是在层/每个层内抽样。因此,对于分层抽样的第一步,我认为您只需要随机抽样。

标签: r sampling panel-data


【解决方案1】:

对于随机样本,请执行以下简单步骤

set.seed(2)
x <- sample(unique(Guns$state), 40)

sample <- Guns[Guns$state %in% x,]

> nrow(Guns)
[1] 1173
> nrow(sample)
[1] 920

已选择 920/1173 行

检查样本中的状态数

> length(unique(sample$state))
[1] 40

对于这个 40 个州的样本中的分层抽样,比如每个州 50% 的选择,请遵循此代码

library(tidyverse)
set.seed(2)
str_sample <- sample %>% group_by(state) %>%
  sample_frac(size = 0.5)

如果您会看到 480 行被选中。检查每个层大小

> table(sample$state)

             Alabama               Alaska              Arizona             Arkansas           California             Colorado          Connecticut 
                  23                   23                   23                    0                    0                   23                    0 
            Delaware District of Columbia              Florida              Georgia               Hawaii                Idaho             Illinois 
                  23                   23                    0                   23                   23                   23                   23 
             Indiana                 Iowa               Kansas             Kentucky            Louisiana                Maine             Maryland 
                  23                   23                   23                   23                   23                   23                   23 
       Massachusetts             Michigan            Minnesota          Mississippi             Missouri              Montana             Nebraska 
                  23                   23                   23                   23                    0                   23                    0 
              Nevada        New Hampshire           New Jersey           New Mexico             New York       North Carolina         North Dakota 
                  23                   23                    0                   23                   23                   23                   23 
                Ohio             Oklahoma               Oregon         Pennsylvania         Rhode Island       South Carolina         South Dakota 
                  23                   23                   23                   23                    0                   23                    0 
           Tennessee                Texas                 Utah              Vermont             Virginia           Washington        West Virginia 
                   0                   23                   23                   23                   23                   23                   23 
           Wisconsin              Wyoming 
                   0                   23 

> table(str_sample$state)

             Alabama               Alaska              Arizona             Arkansas           California             Colorado          Connecticut 
                  12                   12                   12                    0                    0                   12                    0 
            Delaware District of Columbia              Florida              Georgia               Hawaii                Idaho             Illinois 
                  12                   12                    0                   12                   12                   12                   12 
             Indiana                 Iowa               Kansas             Kentucky            Louisiana                Maine             Maryland 
                  12                   12                   12                   12                   12                   12                   12 
       Massachusetts             Michigan            Minnesota          Mississippi             Missouri              Montana             Nebraska 
                  12                   12                   12                   12                    0                   12                    0 
              Nevada        New Hampshire           New Jersey           New Mexico             New York       North Carolina         North Dakota 
                  12                   12                    0                   12                   12                   12                   12 
                Ohio             Oklahoma               Oregon         Pennsylvania         Rhode Island       South Carolina         South Dakota 
                  12                   12                   12                   12                    0                   12                    0 
           Tennessee                Texas                 Utah              Vermont             Virginia           Washington        West Virginia 
                   0                   12                   12                   12                   12                   12                   12 
           Wisconsin              Wyoming 
                   0                   12

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-20
    • 2018-02-14
    • 2014-06-22
    • 1970-01-01
    • 2018-01-11
    • 2019-03-24
    • 1970-01-01
    相关资源
    最近更新 更多