0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

系統抽出法の定義が理解しにくい

Posted at

目的

統計検定2級の受験に向けてのんびり議事録です。
今回は第1回です。

意義

受験者の理解を助けるような内容であること。

統計検定2級のテーマ整理

1.1変数,2変数の記述統計の分野
2.データ収集,確率,分布の分野
3.推定,検定,線形モデルの分野

2.データ収集,確率,分布の分野

標本抽出法は、以下の4つに分類されます。

・系統抽出法
・層化抽出法
・集落(クラスター)抽出法
・二段抽出法

今回は系統抽出法について見ていきます。

系統抽出法の一般的な定義

引用:統計用語集

系統抽出法
systematic sampling
母集団に通し番号をつけ、それ以下の通し番号を持つ点から無作為に一点目の標本を抽出する。その点から等間隔で(抽出間隔ごとに)標本を抽出するような方法。

最初にこの定義を見た際に、以下のような疑問が生まれた。

疑問

母集団N=1~100のとき、無作為に選んだ1点がN=70になるとき、N=1~69は標本抽出されないのか?

仮説

等間隔で標本取得を行い、N=100まで到達したらN=0へ、と循環するように取得するという理解でいいかもしれない。

python:一般的な実装

※ここでいう一般的な実装とは、よく検索に引っ掛かるので目にするという意味です。
参考文献:github_Sampling-in-Python_index[409]

Keito_Chushutsuho_general.py
import random
import matplotlib.pyplot as plt

def systematic_sampling(population, sample_size):
    N = len(population)
    k = N // sample_size
    start = random.randint(0, k - 1)
    sample_indices = [start + i * k for i in range(sample_size)]
    sample = [population[i] for i in sample_indices]

    return sample_indices, sample

# Example population
population = list(range(1, 101))
sample_size = 10

# Perform systematic sampling
sample_indices, sample = systematic_sampling(population, sample_size)
print("抽出された標本:", sample)

出力結果

抽出された標本: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

この実装では、予め全体のN=100をサンプルサイズで割った値(100 ÷ sample_size = 10)を計算しているため、初期位置は1~10の間で決定される。これは定義に従った「無作為に最初の標本を抽出する」方法と言えるのだろうか?

python:定義に従った実装

Keito_Chushutsuho_defined.py
import random
import matplotlib.pyplot as plt

def systematic_sampling(population, sample_size):
    N = len(population)
    k = N // sample_size
    # 1からkまでの間で初期位置を無作為に選択
    start = random.randint(0, N - 1)
    # 系統抽出の標本インデックスを計算
    sample_indices = [(start + i * k) % N for i in range(sample_size)]
    sample = [population[i] for i in sample_indices]

    return sample_indices, sample

# Example population
population = list(range(1, 101))
sample_size = 10

# Perform systematic sampling 10 times
results = []
for trial in range(10):
    sample_indices, sample = systematic_sampling(population, sample_size)
    results.append(sample)

# Print results
for i, sample in enumerate(results):
    print(f"試行 {i+1}: 抽出された標本: {sample}")

出力結果

試行 1: 抽出された標本: [12, 22, 32, 42, 52, 62, 72, 82, 92, 2]
試行 2: 抽出された標本: [54, 64, 74, 84, 94, 4, 14, 24, 34, 44]
試行 3: 抽出された標本: [18, 28, 38, 48, 58, 68, 78, 88, 98, 8]
試行 4: 抽出された標本: [95, 5, 15, 25, 35, 45, 55, 65, 75, 85]
試行 5: 抽出された標本: [82, 92, 2, 12, 22, 32, 42, 52, 62, 72]
試行 6: 抽出された標本: [74, 84, 94, 4, 14, 24, 34, 44, 54, 64]
試行 7: 抽出された標本: [36, 46, 56, 66, 76, 86, 96, 6, 16, 26]
試行 8: 抽出された標本: [35, 45, 55, 65, 75, 85, 95, 5, 15, 25]
試行 9: 抽出された標本: [90, 100, 10, 20, 30, 40, 50, 60, 70, 80]
試行 10: 抽出された標本: [96, 6, 16, 26, 36, 46, 56, 66, 76, 86]

###結論
今回の議事録では、統計検定2級の学習に向けて、特に「データ収集、確率、分布の分野」の中から「系統抽出法」に焦点を当てました。系統抽出法の定義と実装方法を詳しく見ていく中で、統計学の基礎的な概念をしっかりと理解することの重要性を再確認しました。

Pythonを使った実装例では、一般的な方法と定義に忠実な方法の違いを具体的に示すことで、理論と実践の結びつきを体感できました。このようなアプローチは、ただ知識を得るだけでなく、実際のデータ分析に応用する力を養う上で非常に有効です。

引き続き、統計検定2級の合格を目指して、皆さんと一緒に学びを深めていきたいと思います。これからも一緒に頑張りましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?