Pandas でのクラスター サンプリング: 例付き


研究者は多くの場合、母集団からサンプルを採取し、そのサンプルのデータを使用して母集団全体についての結論を導き出します。

一般的に使用されるサンプリング方法はクラスター サンプリングです。この方法では、母集団がクラスターに分割され、特定のクラスターのすべてのメンバーがサンプルに含められるように選択されます。

このチュートリアルでは、Python で pandas DataFrame でクラスター サンプリングを実行する方法について説明します。

例: Pandas でのクラスター サンプリング

市内ツアーを提供する会社が顧客を調査したいとします。 1 日に提供する 10 件のツアーの中から 4 件をランダムに選択し、各顧客に体験を 1 から 10 のスケールで評価してもらいます。

次のコードは、操作する pandas DataFrame を作成する方法を示しています。

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (0)

#createDataFrame
df = pd.DataFrame({'tour': np. repeat (np. arange (1,11), 20),
                   'experience': np. random . normal (loc=7, scale=1, size=200)})

#view first six rows of DataFrame
df. head ()

  tour experience
1 1 6.373546
2 1 7.183643
3 1 6.164371
4 1 8.595281
5 1 7.329508
6 1 6.179532

次のコードは、4 つの訪問をランダムに選択し、それらの訪問の各メンバーをサンプルに含めることで顧客のサンプルを取得する方法を示しています。

 #randomly choose 4 tour groups out of the 10
clusters = np. random . choice (np. arange (1,11), size=4, replace= False )

#define sample as all members who belong to one of the 4 tour groups
cluster_sample = df[df[' tour ']. isin (clusters)]

#view first six rows of sample
cluster_sample. head ()

tour experience
40 3 5.951447
41 3 5.579982
42 3 5.293730
43 3 8.950775
44 3 6.490348 

#find how many observations came from each tour group
cluster_sample[' tour ']. value_counts ()

10 20
6 20
5 20
3 20
Name: tour, dtype: int64

結果から次のことがわかります。

  • サンプルにはツアー グループ #10 の 20 人の顧客が含まれていました。
  • サンプルには観光客グループ #6 の 20 人の顧客が含まれていました。
  • サンプルには、観光グループ #5 の 20 人の顧客が含まれていました。
  • サンプルには、観光グループ #3 の 20 人の顧客が含まれていました。

したがって、このサンプルは 4 つの異なる観光グループの合計 80 人の顧客で構成されています。

追加リソース

さまざまな種類のサンプリング方法を理解する
パンダでの層別サンプリング
パンダの体系的なサンプリング

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です