K_DM Book
用語集
対象者 中学生
対象者別の入口 →

対象者の設定はこのブラウザの中にだけ保存されます。

言語 JA

層化抽出(中学生向け)

入門中学生

01.8.2 中学生向け

層化抽出(中学生向け)

最終更新 2026-11-01 読了時間 1 分
まとめ
層化抽出(そうかちゅうしゅつ)は、全体をグループ(層)に分けてから、グループごとに元の人数の比に合わせて選ぶ方法です。ふつうのくじ引きだと、たまたま人数の少ないグループが 1 人も選ばれないことがありますが、層化抽出なら、どのグループも元の比のとおりに入ります。選ばれた人たちが全体の小さな縮図になるので、600 人を 60 人で代表させるような場面でも結果が安定します。機械学習では、覚えさせるデータとテスト用のデータを「答えの比をそろえて」分けるときに使います。

クイズ:600 人の学校で、60 人に聞けば分かる? #

全校生徒 600 人の「好きな給食メニュー」を調べたいけれど、全員に聞く時間はありません。そこで 60 人だけに聞くことにしました。

学年人数全体に占める割合
1 年300 人2 分の 1
2 年200 人3 分の 1
3 年100 人6 分の 1

全校の名簿から 60 人をくじ引きで選ぶと、どうなるでしょう。運が悪いと、3 年生が 3 人しか入らない、あるいは 20 人も入る、ということが起こります。学年によって好きなメニューがちがうなら、結果は選ばれ方しだいでぶれてしまいます。

そこで「学年ごとに人数を先に決める」ことにします。1 年から 30 人、2 年から 20 人、3 年から 10 人。元の比とまったく同じです。あとは学年ごとにくじ引きをするだけ。選ばれた 60 人は、学校全体の小さな縮図になります。これが層化抽出です。

仕組み:縮図はこうやって作る #

flowchart LR A["全体 600 人"] --> B["1 年 300 人"] A --> C["2 年 200 人"] A --> D["3 年 100 人"] B -->|くじ引き| E["30 人"] C -->|くじ引き| F["20 人"] D -->|くじ引き| G["10 人"] E --> H["合わせて 60 人の縮図"] F --> H G --> H

まず、分け方(層)を決めます。学年・男女・部活など、「このちがいで答えが変わりそう」というものを選び、流れ図の 2 列目がこの層です。次に、層ごとの割合を調べます。1 年は全体の 2 分の 1、2 年は 3 分の 1、3 年は 6 分の 1 で、この割合があとで人数を決めるものさしになります。続けて、選ぶ人数を層に割り振ります。60 人に同じ割合をかけて 30・20・10 人となり、流れ図の 3 列目の数がここで決まります。最後に、層の中でくじ引きをします。1 年生 300 人の中から 30 人を無作為に選ぶ、を 3 回くり返し、合わせれば全体と同じ比の 60 人がそろいます。

動かして見てみよう #

下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。

気をつけたいこと #

最初の注意は、分け方(層)をまちがえると意味がないことです。答えと関係のない分け方、たとえば「名字の五十音順」で層を作っても、縮図としてはよくなりません。「このちがいで答えが変わるはず」というものを選びます。二つ目は、層の中はちゃんと「くじ引き」で選ぶことです。「1 年生は仲のよい 30 人に聞いた」では、層の中でかたよってしまいます。層ごとの無作為抽出が守られてこそ、60 人が縮図になります。三つ目は、層が多すぎると 60 人では足りないことです。学年×男女×部活で 60 通りの層を作ると、1 人も入らない層が出てきます。層の数は、選ぶ人数に見合うようにします。

やってみよう #

最初の課題は、自分の学校(またはクラス)を学年や班で層に分け、「全体の 10 分の 1」を選ぶとき、各層から何人になるか計算することです。二つ目は、くじ引きのかたよりをビー玉で体験することです。赤 5 個・白 1 個のビー玉から 3 個をくじで取り出す、を 10 回くり返して、白が 1 個も出なかった回数を数えてみましょう。三つ目は、「ひとまとめのくじ引きだと、少ないグループが消えてしまう場面」を身の回りから 1 つ考えることです(ヒント:左利きの人、転校してきた人)。

つぎに読む #

Python のプログラムまで含めた本編は 層化抽出(標準版) です。「答えの比がかたよっている」とコンピュータの点数がどうおかしくなるかは 中学生向けの正解率 で紹介しています。ほかの選び方(サンプリング)の話題は サンプリング の一覧からたどれます。