大家好
我正在开展一项研究,需要研究代表性样本。我已经收集了数据,但我需要选择一个满足代表性标准的子集,即 4:样本应满足以下配额:
-
性别方面:男性50%,女性50%。
-
年龄结构:1/3为18至30岁,1/3为31至50岁,1/3为51岁以上。
-
按家庭收入水平划分:1/3 来自低收入,1/3 来自中等收入,1/3 来自高收入。
该市五个区域(北区、南区、中区、东区和西区)各占研究人口的 1/5
我如何创建这个示例?
我正在使用 JMP pro 17
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。
数据表-理想情况:
New Table( "quota_samples",
Add Rows( 100000 ),
Compress File When Saved( 1 ),
New Column( "gender",
Character,
Formula( Match( Floor( Random Uniform() * 2 ), 0, "M", "F" ) ),
Compact(),
Set Selected
),
New Column( "income",
Character,
Formula(
Match( Floor( Random Uniform() * 3 ), 0, "low", 1, "medium", "high" )
),
Compact()
),
New Column( "region",
Character,
Formula(
Match( Floor( Random Uniform() * 5 ),
0, "N",
1, "S",
2, "W",
3, "E",
"C"
)
)
),
New Column( "age",
Character,
Formula(
Match( Floor( Random Uniform() * 3 ), 0, "young", 1, "medium", "old" )
)
)
)
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。
对于这样一个理想的表格,(如果您的数据集的概率适合您想要的分数),您可以选择随机样本 - 每个变体的随机样本或每个变体的特定数量的样本 - 或所有这三个的组合......
您将始终获得具有所需分数的子群(1/2、1/3、1/3 和 1/5)
// random sampling : full data set
if(not(current data table() << has column ("cum_prob")),New Column( "cum_prob",
Formula(
Col Rank( random uniform()) / (
Col Number( 1 ))
)
));
// random sampling : per variant
if(not(current data table() << has column ("cum_prob_indiv")),New Column( "cum_prob_indiv",
Formula(
tmp = random uniform(); // tmp =1; // **)
Col Rank( tmp, :gender, :income, :region, :age ) / (
Col Number( tmp, :gender, :income, :region, :age ))
)
));
// force ratios: 1/2, 1/3, 1/3, 1/5
if(not(current data table() << has column ("rank_indiv")),
New Column( "rank_indiv",
Formula( Col Rank( random uniform(), :gender, :income, :region, :age ) )
));
Graph Builder(
Size( 518, 448 ),
Show Control Panel( 0 ),
Graph Spacing( 4 ),
Variables( X( :gender ), X( :income ), X( :region ), X( :age ) ),
Elements( Position( 1, 1 ), Bar( X, Summary Statistic( "N" ) ) ),
Elements( Position( 2, 1 ), Bar( X, Summary Statistic( "N" ) ) ),
Elements( Position( 3, 1 ), Bar( X, Summary Statistic( "N" ) ) ),
Elements( Position( 4, 1 ), Bar( X, Summary Statistic( "N" ) ) ),
Local Data Filter( Title( "how many samples do you want ? " ),
Add Filter(
columns( :cum_prob, :cum_prob_indiv, :rank_indiv )
)
)
);
**)而不是使用带有随机 uniform() 的CDF,可以随机化行顺序并使用“1”的 CDF。
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。
最后一个选项也适用于不太系统化的表格,比如下面的表格。
唯一的限制是,如果特定变体的样本很少,则可选择的样本数量就会有明显的限制。
它遵循简单的规则:
如果对于其中一个变体(A)只有 N 个样本,则取这些样本并从其他变体中挑选相同数量的随机样本。
实际上,对于变体“A”,这不是采样。
因此,也许只选择 M << N 个样本 - 从所有变体中随机选择。
您可以采用相同的(JSL)逻辑 - 只需将 N 调整为较低的值。
variants = {};
For Each( {gender}, {"F", "M"},
For Each( {age}, {"young", "medium", "old"},
For Each( {income}, {"low", "medium", "high"},
For Each( {region}, {"N", "S", "E", "W", "C"},
Insert Into( variants, Concat Items( {gender, age, income, region} ) )
)
)
)
);
Eval(
Eval Expr(
new table(
"unfair",
add rows( 100000 ),
New Column( "variant",Character,
formula(
variants = As constant(Expr( variants ));
Try(
variants[Floor( Random Normal( 45, 30 ) )],
"F young medium C"
);
)
),
New column ("gender",Character, formula(Word(1,:variant))),
New column ("age",Character, formula(Word(2,:variant))),
New column ("income",Character, formula(Word(3,:variant))),
New column ("region",Character, formula(Word(4,:variant))),
)
)
);
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。