Pythonへのサンプリングの実装
メニューを表示するにはスワイプしてください
単純無作為抽出法
1234567import random N = 30 # population size n = 5 # sample size sample_srs = random.sample(range(1, N+1), n) print(f"Simple Random Sample: {sample_srs}")
random.sample(range(1, N+1), n)は母集団からn個のユニークな値をランダムに選択;- 復元抽出なしで動作(重複なし);
- 母集団のすべてのメンバーが選ばれる確率は等しい。
層別抽出法
123456789N_males = 18 N_females = 12 N_total = N_males + N_females n_total = 10 n_males = round((N_males / N_total) * n_total) n_females = round((N_females / N_total) * n_total) print(f"Stratified Sample Size -> Males: {n_males}, Females: {n_females}")
- 母集団を**サブグループ(層)**に分割;
- 各サブグループから比例的にサンプルを抽出;
- 主要なグループの代表性を確保。
クラスターサンプリング
1234567import random clusters = 5 students_per_cluster = 25 selected_cluster = random.randint(1, clusters) print(f"Selected cluster (classroom): {selected_cluster} containing {students_per_cluster} students")
- 母集団をクラスター(例:教室)に分割
- 1つまたは複数のクラスターをランダムに選択
- 選ばれたクラスター内の全員を調査
- 全個体のリスト化が非現実的な場合に効率的
系統的サンプリング
123456789101112import random N = 1000 n = 100 k = N // n # Sampling interval start = random.randint(1, k) # Random start sample_systematic = list(range(start, N+1, k)) print(f"Sampling interval k = {k}") print(f"Random start = {start}") print(f"First 10 samples: {sample_systematic[:10]}")
- 間隔 k=nN
- 開始点は1からkの間でランダムに選択
- 並べ替えられた母集団からk番目ごとに要素を選択
手法の概要
- 単純無作為抽出法: すべてに等しい確率、重複なし;
- 層化抽出法: サブグループの代表性を確保;
- クラスター抽出法: グループ全体を無作為に選択;
- 系統抽出法: 無作為な開始後、一定間隔で選択。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 5. 章 6
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 5. 章 6