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 人の顧客で構成されています。