如何從資料集中選擇配額樣本大家好
我正在進行一項研究,這意味著研究代表性樣本。我已經收集了數據,但我需要選擇一個符合代表性標準 4 的子集:樣本應滿足以下配額:
-
性別:男性 50%,女性 50%。
-
年齡方面:1/3為18歲至30歲,1/3為31歲至50歲,1/3為51歲以上。
-
依家庭收入水準:低收入1/3,中收入1/3 7,高收入1/3。
城市五個區域(北、南、中、東、西)各1/5的研究人口
我怎麼才能創建這個樣本?
我正在使用 JMP pro 17
資料存取資料混合與清理回覆:如何從資料集中選擇配額樣本聽起來像是教科書上的練習——有沒有一章給出解決方案?
回覆:如何從資料集中選擇配額樣本不
我實際上正在與一位同事討論這個問題,以開始使用這種配額抽樣技術對專案進行數據分析。回覆:如何從資料集中選擇配額樣本這是一個複雜的問題。您從中提取資料的資料表有多大。您要抽取多大的樣本? 4 列有 90 種組合。您和您的同事是否想出瞭如何解決該問題的想法?
回覆:如何從資料集中選擇配額樣本您不想透過分佈的實際份額來選取樣本數據,而是透過人為分數來選取樣本數據?
女性怎麼樣,> 51歲,高收入,北方。
應該是 1/2 * 1/3 * 1/3 * 1/5 嗎? (*)
這很容易計算 - 但可能太嚴格 - 並且不是有意的?
想想原來分佈中沒有女性、>51歲、高收入、北方的情況。
另一方面:如果只需要滿足1/2、1/3、1/3和1/5,就可以用0個樣本資料來彌補女性、> 51歲、高收入、北方的極端情況。
回覆:如何從資料集中選擇配額樣本這並不優雅,我什至不確定它是否會起作用,但它可能會起作用。您可以為每個條件建立 0,1 列,然後將它們組合成一個 0,1 列,其中 1 表示所有單獨的條件列都 =1。這將給出所需的子集。而且,如果您想從此類行中隨機選擇,只需使用按 0,1 列分層的驗證列即可。正如我所說,雖然不優雅但可能有效。
回覆:如何從資料集中選擇配額樣本資料表-理想情況:
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" )
)
)
)
回覆:如何從資料集中選擇配額樣本對於這樣一個理想的表,(如果您的資料集的機率符合您想要的分數),您可以選擇隨機樣本- 每個變體的隨機樣本或每個變體的特定數量的樣本- 或所有3個的組合......
您將始終獲得具有所請求分數的子組(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(<BR /> Title( "how many samples do you want ? " ),
Add Filter(
columns( :cum_prob, :cum_prob_indiv, :rank_indiv )
)
)
);
**) 可以將行順序隨機化並使用「1」的 CDF,而不是使用帶有隨機 Uniform() 的CDF。
回覆:如何從資料集中選擇配額樣本最後一個選項也適用於不太系統化的表格,如下所示。
唯一的限制是,如果特定變異的樣本很少,那麼可以選擇的樣本數量就有明顯的限制。
它遵循簡單的規則:
如果對於其中一個變體 (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))),
)
)
);
回覆:如何從資料集中選擇配額樣本我花了很多時間思考這個問題,但沒有得到很好的答案。我確實產生了一個類似於@hogi 的範例資料表。以下是我使用的程式碼對@hogi JSL 的修改。基本上,我認為它更容易閱讀,就 Age 而言,它更好地代表了@Samira所說的分佈。
New Table( "Samp",
Add Rows( 100000 ),
Compress File When Saved( 1 ),
New Column( "gender",
Character,
Set Each Value( Match( Random Integer( 1, 2 ), 1, "Male", "Female" ) ),
Compact()
),
New Column( "income",
Character,
Set Each Value(
Match( Random Integer( 1, 3 ), 1, "Low", 2, "Medium", "High" )
),
Compact()
),
New Column( "region",
Character,
Set Each Value(
Match( Random Integer( 1, 5 ),
1, "North",
2, "South",
3, "West",
4, "East",
"Ccentre"
)
)
),
New Column( "age",
Character,
Set Each Value(
temp = Random Integer( 18, 80 );
If(
temp <= 30, "Young",
temp <= 50, "Middle Age",
"Old"
);
)
)
)
回覆:如何從資料集中選擇配額樣本感謝您的回覆
這個想法是對居住在整個城市的人口的代表性樣本進行研究
回覆:如何從資料集中選擇配額樣本非常感謝您的努力
您的建議給了我一個好主意,即首先在圖形生成器中使用本地資料過濾器來有效地探索我的資料集。就我的數據而言,某些組合(例如居住在中部地區且擁有 IM 收入的中年男性)樣本為 0
透過這種方式創建代表性樣本的整個想法現在看來似乎不切實際。從一開始就應該使用的抽樣技術是機率抽樣技術之一。可以是分層隨機抽樣,僅使用 5 個區域作為分層。然後從每個層收集隨機樣本。
回覆:如何從資料集中選擇配額樣本非常感謝您的時間和努力
透過這種方式創建代表性樣本的整個想法現在看來似乎不切實際。從一開始就應該使用的抽樣技術是機率抽樣技術之一。可以是分層隨機抽樣,僅使用 5 個區域作為分層。然後從每個層收集隨機樣本。
回覆:如何從資料集中選擇配額樣本感謝您的回覆
我認為你是對的,
透過這種方式創建代表性樣本的整個想法現在看來似乎不切實際。從一開始就應該使用的抽樣技術是機率抽樣技術之一。可以是分層隨機抽樣,僅使用 5 個區域作為分層。然後從每個層收集隨機樣本。
回覆:如何從資料集中選擇配額樣本這聽起來是個合理的方法
回覆:如何從資料集中選擇配額樣本因此,您在原始帖子中要求的是:
不成比例的分層隨機抽樣,對吧?
階層是性別x年齡x收入x地區的90個子組。
回覆:如何從資料集中選擇配額樣本在仔細修改教科書上的不同採樣技術後,我發現我最初的想法與它們都不相符。要獲得代表性的樣本,您應該選擇一種機率抽樣技術(為研究群體的每個受訪者提供平等的機率或機會被納入樣本)。這些技術包括 4 種類型:
這就是為什麼我認為可以從一開始就使用分層抽樣來獲取研究樣本(僅使用 5 個區域作為分層。然後,從每個分層中收集隨機樣本)。分層、整群和配額抽樣技術需要將總體分為相互排斥的群組,這不是我的問題中的情況。這就是為什麼我認為我原來的問題一開始就不正確。
:
回覆:如何從資料集中選擇配額樣本嗯,當我們將這個案例與 DOE 進行比較時...
在精心設計的 DOE 中,人們甚至不會從 90 個子集的每一個中挑選一個(單一)樣本。
[90 個子集中每個子集 1 個樣本:「全因子」->「昂貴」的方式]
那麼,也許結合模型的一些簡化,這裡使用在某些交點中缺少條目的資料集也可以嗎?更進一步,也許透過有意刪除一些交叉點(一些數據點),人們可以在分層輸入資料和平衡 DOE 之間得到一些有用的東西?
@Victor_G可能有建議嗎?
回覆:如何從資料集中選擇配額樣本
回覆:如何從資料集中選擇配額樣本對於“隨機抽樣 - 每個變體”的方法,來自
https://community.jmp.com/t5/Discussions/How-to-Select-a-quota-sample-from-a-data-set/mp/821078/highlight/true#M100011
我創建了一個 JSL 片段來對任意資料進行分層 - 只需選擇列並單擊“確定”。
librecall可以在這裡下載: Recall函式庫
Names Default To Here( 1 );
verbose=0;
//Include( ".\libRecall_v2.jsl" );
objects = {"si^myCols", "s^Ncolumns", "s^Nfolds"};
values = {{}, {1}, {5}};
Try( // issue with projects
librecall:genArrays( objects, values, "Stratify", verbose )
);
dt = Current Data Table();
nw = New Window( "K Fold Creator",
<<TYPE></TYPE>回覆:如何從資料集中選擇配額樣本嗨@hogi和@Samira ,
只要快速閱讀貼文和答案,我仍然不是 100% 清楚你的目標,因為「代表性」資料集可能有不同的意義:
您是否想更好地理解和建模基於人口統計數據(年齡、性別、位置等)的反應/現象,或者您是否想要一個「代表性」樣本以便對人口進行一些推斷/概括?
- 在第一種情況下,因為您希望將響應/現象連結到特定屬性,所以最好有一個平衡的資料集,因此具有年齡、性別、位置等的平衡級別......以便更輕鬆地建模和解釋結果。
使用DoE 方法,無論是「從頭開始」建立您的客製化設計並找到與不同屬性相對應的合適人選,還是透過使用收集的人口統計資料的候選集方法來建立您的D 最優設計,都將幫助您調查和分析不同的屬性。
- 在第二種情況下,因為您想要將樣本結果推廣到總體,所以您需要有一個代表性的總體樣本(與總體一樣有「偏差」)。因此,也許您不會有 50/50 的男性/女性,因為人口可能會偏向例如 40/60,所以您需要尊重這種人口統計特殊性。
對您在 5 個地區收集的人口統計資料使用分層方法可能會有所幫助。您可能需要考慮兩個方面:根據人口創建您所在地區的樣本(確保您的樣本相對於該地區人口的比例相同,因此人口密集/人口稠密的地區樣本中會有更多人數據集)並基於人口統計資料(性別、年齡等)。
在這兩種情況下,我建議收集盡可能多的有關 5 個區域人口的數據,以便更好地理解和告知您的樣本創建方法。
順便說一句,您還可以找到有關人口統計數據細分的文獻,我不確定這裡提出的年齡細分是否真的有幫助,因為年齡範圍不同:18-30(12歲)、31-50(19歲), 51+(20+歲?)。另外,您如何定義家庭收入水準低/中和高?基於分析或預定義的閾值/標準 ?
有關人口統計細分的一些範例: https://xperiencify.com/what-is-demographic-segmentation/
希望這個答案可以提供一些想法