最小サンプル数は?
サンプリングとパーティショニングの違いは?
良いモデルを開発するのに十分なデータはあるのか?
サンプルが少ない場合に起こりうる問題とは?
これらの質問は、私が予測モデリングに関するトレーニングコースを提供する際によく受ける質問です。この記事では、最も一般的なサンプリング方法について説明することで、これらの質問に答えようと思います。
1.サンプリングとパーティショニング
サンプリングでは、あるデータセット(母集団と呼ぶ)からサンプルを抽出して母集団の特性を推測し、モデルを開発します。一方、パーティショニングでは、1つのデータセットがあり、それを相互に排他的なセグメントに分割します。例えば、モデリングデータを2つ(または3つ)に分割します。1つはモデルのフィッティング用、もう1つはモデルのテストまたは検証用です。つまり、母集団からサンプルを抽出し、このサンプルを、1つはモデルの適合用、もう1つはモデルの検定用の2つに分割します(図1)。

図1:サンプリングとパーティショニングの比較
サンプリングとパーティショニングの仕組みは同じです。従って、ここではサンプリングについてのみ説明します。
2.よく使われる3つのサンプリング方法
(a) 無作為抽出(ランダムサンプリング)
最もよく使われるサンプリング手法です。その名の通り、母集団から(置換なしで)無作為にサンプルを抽出し、このサンプルを用いてモデルを開発します。レコードの選択は、乱数(正確には擬似乱数)を生成するアルゴリズムによって使用される乱数シードの選択に基づきます。そして、これらの番号を用いて観測値を並べ替え、メインデータ集合から必要なレコードの割合や数を選択します。
今日、ほとんどのプログラミング環境とソフトウェア環境には、優れたランダムサンプリング・ユーティリティがあります。手動でランダムサンプリング・ルーチンをプログラムする必要はほとんどありません。
(b) 層別サンプリング
この方法は、バランスサンプリング(balanced sampling)などの名前でも知られています。この方法では、1つの特定の変数の特定の分布を満たすようにサンプルを選びます。ターゲットグループが母集団の中で小さい場合に特に使用されます。例えば、ダイレクトマーケティングキャンペーンの回答率が0.5%だとします。そして、100万人の顧客を対象とします。妥当な大きさのサンプルである50,000人の顧客をサンプルとした場合、250人しか回答者がいないことになります。この少数の回答者では、意味のある回答パターンを高い信頼性で抽出することはできません。そこで、50,000レコードから選択的にサンプルを抽出し、その半分を回答者とします。
しかし、層化サンプリングにおけるサンプルは、母集団における回答の真の割合を表しているわけではありません。したがって、我々はデータに重み変数を導入し、サンプリングの効果を校正するためにモデリングアルゴリズムでそれを使用します。
(c) クラスターサンプリング
クラスターサンプリングは「層化サンプリング」とも呼ばれます。この方法は、母集団の特定のサブグループからサンプルを選択することで機能します。例えば、ダイレクトマーケティングを例にとると、特定の地域に住んでいる顧客や、持ち家がある、大学生など特定の属性を持つ顧客をサンプルとして選ぶことができます。
この方法を「層別」と呼んでバランスサンプリングと混同する可能性は、文脈が常に明確であるため、現実的な問題ではありません。
3.サンプルサイズ
ここで、最小サンプルサイズについての一般的な質問に移ります。残念なことに、データに多くの数値変数やカテゴリー変数がある一般的なケースでのサンプルサイズの計算には、科学的根拠がありません。
制限されたケースでの最小サンプルサイズの公式がいくつかあります。たとえば,母集団から1つの連続変数の平均値を計算するためにサンプルを抽出し,サンプルから推定された平均値が母集団の実際の平均値と小さな分数eで異ならないことを確認したい場合を考えてみましょう。最後に、信頼性係数(正規分布のzスコア)を指定する必要があります。例えば、z=3は99%以上の信頼度を与えます。これらの値がすべて揃っていれば、N個のレコードを持つ母集団から抽出された平均値の信頼できる推定値を得るための最小サンプルサイズは、次の式で与えられます[1]:

この式を、100万人のクレジットカード顧客の平均月間残高を含むサンプルに適用してみましょう。これまでの研究から、平均残高を1,500ドル、標準偏差を3,500ドルと推定すると、相対分散Vは次のように計算されます:

信頼水準を99%にするにはz=3とします。そして、推定値の誤差が5%を超えないようにしたい場合は、e=0.05とします。そうすると、最小サンプルサイズは

Nは通常大きいので、nの式の分母の第2項は第1項よりはるかに大きいので、最小サンプル数の公式は次のように近似できます。

この近似式を用いると、最小サンプル数の見積もりは19,544となり、正確な計算式を用いて算出した値よりわずか2%多いだけになります。
上のような公式にはいくつかの問題があります。第一に、我々は相対分散Vを推定する必要があり、これは母平均の関数です。第二に、データサイエンティストが1つの変数からなるデータセットに興味を持つことは稀です。ほとんどの実際のデータセットには多くの変数があります。実際、重要な変数にフォーカスするために、データ削減のテクニックを用いることが少なくありません。したがって、これらの公式の使用は、予測モデルで使用される重要な変数が妥当な信頼度でサンプリングされていることを検証することに限定されます。
私自身の手法は、モデリング環境が妥当なパフォーマンスで処理できる、利用可能な限り多くのデータを使用することです。最新のコンピューターであれば、ラップトップであっても、Python、SAS、RapidMiner、Knowledge Studioなどのほとんどのモデリング環境は、数百万の行と数百の変数を簡単に扱うことができます。したがって、このサイズのデータセットではサンプリングは必要ありません。しかし、より大きなデータセットを扱う必要がある場合は、強力なサーバーを使用するか、Sparkのようなビッグデータプラットフォームの使用を検討する必要があります。
つまり、実際には、最小サンプルサイズを支配するのは、データの統計的特性ではなく、計算プラットフォームの性能なのです。
4.少量サンプル
利用可能なサンプルが少ないと判断される場合、最良の選択肢はリサンプリング法を使うことです。再サンプル化の最も一般的な方法は、ブートストラップとジャックナイフ再サンプリングです。
ジャックナイフ再サンプリングは非常に簡単です。サイズNのサンプルがある場合、それぞれN-1レコードのN個の部分サンプルを作成します。これは、1度に1つのレコードを残して、これらのサンプルを作成することを意味します。そして、私たちが考えているモデルを開発するか、これらのサンプルそれぞれについて関心のある統計量を計算し、N個のサンプルすべてについて平均します。構築するモデルが複雑で時間がかかる場合、ジャックナイフ法も時間がかかります。
ブートストラップ法は、ジャックナイフ再サンプリングを修正したもので、元のサンプルから一定の大きさ(N-1より小さい)のサンプル(例えばk個)を取って、置換を行います。この場合も、結果はk個のサンプルで平均されます。ブートストラップ法は、ジャックナイフ法よりも簡単です。
結局のところ、ブートストラップ(k)の数が増えると、どちらの方法も似たような結果になります。したがって、時間と計算資源の利用可能性に基づいた選択の問題です。
5.なぜサンプリングを使うのか?
ビッグデータソフトウェア、クラウドコンピューティング、ビッグデータプラットフォーム上のデータサイエンスツールの最近の進歩は、サンプリングを全く使わないという選択肢を与えてくれます。しかし、サンプリングは多くの理由で常に使用されます。
- サンプリングは機能する!サンプリングは長い間使われてきており、データを扱う作業をスピードアップさせながら、それが機能することを証明してきました。
- ビッグデータプラットフォームに無制限にアクセスできる場合でも、正しいステップを実行しているかどうかを確認するために、常に比較的小さなサンプルから始めるべきです。ほとんどのビッグデータプラットフォームは、その場で計算を行い、データを修正します。小さなデータセットを扱うときは、元のデータのコピーを作って実験し、結果が気に入らなければ、またゼロから始めてコピーを削除します。ビッグデータプラットフォームはそうはいきません。データの複製は通常実現不可能であり、許可されていません。したがって、完全なデータセットで実行する前に、プロセスをテストする必要があります。
- ビッグデータプラットフォームは通常、IT部門によって厳重に管理された業務データをホストしています。IT部門は実験やミスを歓迎しません。一方、データサイエンスはその性質上、試行錯誤に基づいています。いくつもの間違った答えに出会うことなく、正しい答えにたどり着くではありません。従って、サンドボックスでサンプルを使って実験し、必要な分析を実行するための最終的なプロセスが決まったら、それをビッグデータプラットフォームに持っていく方が良いでしょう。
まとめ
サンプリングはデータサイエンティストやアナリストにとって重要なステップです。サンプリングの科学は、私たちが必要とするすべての質問に答えてくれるわけではありませんが、それでもサンプルのサイズや、サンプルの特性から母集団の特性を推測する方法について、いくつかの指針を与えてくれます。
ビッグデータプラットフォームは、何年も前からデータサイエンティストがアクセスできるようになり、サンプリングを必要とせずに作業できる可能性を提供しています。しかし、サンプリングは、ビッグデータプラットフォーム上で実行する前に、計画されたプロセスが正しいことを保証するためのベストプラクティスの優れたステップであることに変わりはありません。
参考文献
[1] Sampling of populations, methods and applications(母集団のサンプリング, 方法と応用)Paul S. Levy and Stanley Lemeshow, John Wiley and Sons, Inc., 1999.
*本ブログ記事は、アルテアのチーフデータサイエンティストMamdouh Refaatの執筆した「Data Science Basics — (6) Sampling」を翻訳したものです。
データ分析・AIプラットフォームAltair® RapidMiner®
5. 最小二乗法と最尤法の比較 << >> 7. The Weight of Evidence (WOE) Transformation
カテゴリー: Altair Global Blog, データアナリティクス




