【数学溢れ話】【Token】カテゴリー認識問題①ダミー変数と決定木

とりあえずメモがてら。それぞれ似た様なデータ構造を用いながら、ダミー変数操作と機械学習分野における決定木理論は、それぞれ随分と異なった世界観を構築しています。その辺りについての考察…

# ダミー変数におけるカテゴリー認識

概ね以下の様に定義される概念です。
[サイカロン「ダミー変数で重回帰分析を応用しよう！」](https://xica.net/xicaron/about-dummy-variables/#:~:text=%E3%83%80%E3%83%9F%E3%83%BC%E5%A4%89%E6%95%B0%E3%81%A8%E3%81%AF%E3%80%81%E6%95%B0%E5%AD%97,%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82)

> ダミー変数とは、数字ではないデータを数字に変換する手法のことです。具体的には、数字ではないデータを「0」と「1」だけの数列に変換します。
>
> 例えば、消費税増税が景気に与える影響を見るために、増税前の期間を「0」、増税後を「1」とすることで、増税によって引き起こされた変化を考慮することができるようになります。

ダミー変数へのデータ化は大きく2つに大別されます。

### 二者択一のダミー変数を作成する場合

どちらか一方を「1」、もう片方を「0」と変換してデータを作ります。

* YesNoダミー (1)(0): はい→1、いいえ→0
* 包含ダミー (1)(0): 含まれる→1、含まれない→0
* 性別ダミー (1)(0): 男→1、女→0

### 複数から選択するダミー変数を作成する場合
3個以上から選ぶ場合、含まれる要素の数に応じたダミー変数を用意してデータに転換します。

<b>曜日をダミー変数にする場合</b>：

* 月曜日ダミー(1,0,0,0,0,0) : 月曜日を1、その他の曜日を0とした数列
* 火曜日ダミー(0,1,0,0,0,0) : 火曜日を1、その他の曜日を0とした数列
* 水曜日ダミー(0,0,1,0,0,0) : 水曜日を1、その他の曜日を0とした数列
* 木曜日ダミー(0,0,0,1,0,0) : 木曜日を1、その他の曜日を0とした数列
* 金曜日ダミー (0,0,0,0,1,0): 金曜日を1、その他の曜日を0とした数列
* 土曜日ダミー(0,0,0,0,0,1) : 土曜日を1、その他の曜日を0とした数列
* 日曜日ダミー(0,0,0,0,0,0) : それ以外の数列

<b>別々に実施した3種類のキャンペーンA,B,Cの比較評価</b>

* キャンペーンAダミー(1,0,0)：Aを実施しt期間を1、それ以外を0とした数列 
* キャンペーンBダミー(0,1,0)：Bを実施しt期間を1、それ以外を0とした数列 
* キャンペーンCダミー(0,0,1)：Cを実施しt期間を1、それ以外を0とした数列 
* キヤンペーン期間外ダミー(0,0,0)：どの期間にも該当しない全て0の数列

どう見ても決定木理論的に「採択したカテゴリー集合は元データ全体を被覆してなければならない→最終カテゴリー「その他」が無条件に定まるのが避けられない」問題を抱えています。とはいえ一般的な標本調査においては、

* カテゴライズされたデータがそれぞれ十分なサンプルサイズに達している事。
* カテゴリー間の比較分析結果が帰無仮説の棄却に成功する事。
 
この２条件さえ満たされていれば問題を引き起こす事はないのです。
[サンプルサイズとは？サンプル数との違い、標本調査のサンプルサイズの決め方を解説](https://www.sprocket.bz/blog/20221026-sample_size.html)
<b>ChatGPTに質問「2項と多項のダミー変数を用いた調査について、それぞれ３例ずつ挙げてください。」</b>

>2項と多項のダミー変数を用いた調査の例をそれぞれ3つずつ挙げます。
>
>2項ダミー変数を用いた調査の例
>
>2項ダミー変数は、「0」または「1」で表される2つの状態を持つ変数です。通常、2つのカテゴリ（例：有無、はい/いいえ、男性/女性）を表すために使われます。
>
>性別による給与の影響:
>調査内容: 性別が給与に与える影響を調査する。
>ダミー変数: 「男性」を1、「女性」を0とするダミー変数を使用。
>分析方法: 給与を従属変数として、性別ダミー変数を含む回帰分析を行う。
>
>大学卒業の有無と就職率:
>調査内容: 大学卒業が就職率にどのように影響するかを調査する。
>ダミー変数: 「大学卒業」を1、「非卒業」を0とするダミー変数を使用。
>分析方法: 就職率を従属変数として、大学卒業のダミー変数を含むロジスティック回帰分析を行う。
>
>喫煙習慣と健康リスク:
>調査内容: 喫煙習慣が健康リスクに与える影響を調査する。
>ダミー変数: 「喫煙者」を1、「非喫煙者」を0とするダミー変数を使用。
>分析方法: 健康リスク（例：心疾患の有無）を従属変数として、喫煙習慣ダミー変数を含むロジスティック回帰分析を行う。
>
>多項ダミー変数を用いた調査の例
>
>多項ダミー変数は、3つ以上のカテゴリーを持つ変数を表現する際に使用されます。各カテゴリに対して>個別のダミー変数が作成され、複数のダミー変数で表されます。
>
>職業カテゴリーと収入の関係:
>調査内容: 職業カテゴリーが収入にどのように影響するかを調査する。
>ダミー変数: 「管理職」、「技術職」、「サービス職」などの職業カテゴリごとにダミー変数を設定（例：「管理職」を1、「その他」を0としてダミー変数を作成）。
>分析方法: 収入を従属変数として、各職業カテゴリのダミー変数を含む回帰分析を行う。
>
>居住地と消費行動の関係:
>調査内容: 居住地（都市、郊外、地方）が消費行動にどのように影響するかを調査する。
>ダミー変数: 「都市」、「郊外」、「地方」それぞれに対してダミー変数を設定。
>分析方法: 消費行動（例：月間消費額）を従属変数として、居住地のダミー変数を含む回帰分析を行う。
>
>教育レベルと職業満足度の関係:
>調査内容: 教育レベル（高卒、大卒、大学院卒）が職業満足度に与える影響を調査する。
>ダミー変数: 「高卒」、「大卒」、「大学院卒」それぞれに対してダミー変数を設定。
>分析方法: 職業満足度を従属変数として、各教育レベルのダミー変数を含む回帰分析を行う。
>
>まとめ
>
>2項ダミー変数は2つのカテゴリーを持つ変数を扱う場合に、複数のカテゴリが存在する場合は多項ダミー変数を使います。これらの変数を用いることで、カテゴリカルなデータを数量化して回帰分析などの統計手法に組み込むことができます。

カテゴライズに関する考え方自体が「そういうもの」なのですね。
[北村行伸「2001年度比較統計システム論」第３講 ダミー(説明)変数](https://www.ier.hit-u.ac.jp/~kitamura/lecture/Hit/01Statsys3_e.pdf)

> ダミー説明変数は次のような状況で使われる。
> 1. 定数項（切辺）に違いがある。
> 2. 係数 (傾き) に違いがある。
> 3. 連立方程式の係数制約として入る。
> 4. 回帰係数の安定性テストの目的で用いる。
>
> ダミー変数の数はグループの数より常に１つ少ない。これは、ダミー変数が基準になるグループ（ここでは第１グループ）からの切辺(など)の差という形で表されているからである。実証研究において、どのグループを基準にするかということは形式上は関係がないが、解釈上はきわめて重要である。
>
> 実証研究では、ダミーに係る計数をみて、性別、年齢別、学歴別に消費行動に有意な違いがあるかどうか、そしてそれらが基準ケースと比べてどのように違うかを判断することが多い。このようなダミー説明変数としてマクロ時系列でよく用いられるものに季節（四半期）ダミー、月次ダミーなどがある。歴史的にみてマクロ時系列に明らかなシフトが起こった場合（例えば 1973 年第１次石油ショックや 1985 年のプラザ合意）には、その時期を境にダミー変数を加えることもある。
>
> またダミーは解釈可能な範囲内に抑えるべきであるし、ダミー間に相関がある場合にはそれらをまとめたダミー変数を導入すべきである。適切なダミーを導入することで推計量が大きく変化することもある。

「4.回帰係数の安定性テストの目的で用いる」は、外れ値の除去とも関わってくる模様。

# 古典的確率論におけるカテゴリー認識

ここでトランプやサイコロの様な「物理的乱数発生装置」の観察から出発した古典的確率論の考え方に遡って全体像を俯瞰してみましょう。
[Wikipedia「確率の古典的な定義」](https://ja.wikipedia.org/wiki/%E7%A2%BA%E7%8E%87%E3%81%AE%E5%8F%A4%E5%85%B8%E7%9A%84%E3%81%AA%E5%AE%9A%E7%BE%A9)

>確率の古典的な定義は、17世紀から19世紀のヤコブ・ベルヌーイとピエール＝シモン・ラプラスの研究で認識されている。ラプラスの『確率の解析的理論』（仏: Théorie analytique des probabilités）では、次のように述べられている：
>
>「事象の確率は、起こりやすさに差異が認められない全ての場合の数に対する、期待していた事象の場合の数の比率（割合）である」
>
>この定義は、本質的に、等確率の原理による帰結である。根元事象に等しい確率が割り当てられている場合、事象の確率は、その事象内の結果の数の結果の総数に対する割合になる。

とりあえず「４種類のスートと13枚の数札の直積(計52枚)」で構成されるトランプに、ダミー変数に現れた様な「観測上の水平線の向こう側に「その他」カテゴリーが現れる」問題は存在しません。その定義上、全体を被覆する一様分布が自明の場合として一意に定まるからです。
[【Token】連続一様分布の平均と分散と最尤値](https://qiita.com/ochimusha01/items/ca01c8671522ede6bdda)
![スクリーンショット 2024-08-16 20.59.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/8c25b818-37c5-857e-5a6c-500fc7e068bd.png)
もちろん「オイラーの多面体定理に従ってこの世界に存在する事が許される正多面体」に由来する六種類の「サイコロ」それぞれについても同様に「全体を被覆する一様分布が自明の場合として一意に定まる」訳ですが…
[オイラーの多面体定理の意味と証明](https://manabitimes.jp/math/613)

* コイン=正2面体(Dihedron)
* 正六面体(Regular Tetrahedron)
* 正六面体(Cube)
* 正八面体(Regular Octahedron)
* 正12面体(Regular Dodecahedron)
* 正20面体(Regular Icosahedron)

ここで逆に一様分布$U(1,X_{max})$のパラメーター$X_{max}$の最尤推定から振られているサイコロの種類を推定しようとすると…
![スクリーンショット 2024-08-16 22.13.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/b0e7f173-f78c-091c-93b2-546d22d02a40.png)
全体像を決定木っぽく描き直すとこんな感じ。
![スクリーンショット 2024-08-16 23.11.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/35d13df8-6622-570f-60ba-12de4d60bd51.png)
いずれにせよ20以上の出目が出た時点で、振られているサイコロが「オイラーの多面体定理に従ってこの世界に存在する事が許される正多面体」であるという大前提を棄却せざるを得ない展開に。これは例えば上掲の「二項ダミー変数」の概念に適用するとこんな感じになります。
![スクリーンショット 2024-08-16 23.07.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/0ff260e2-309b-a471-408d-17a814c51830.png)

まさに決定木理論の得意分野？

[【決定木とは】機械学習がどう分類しているのか可視化してみた](https://www.kikagaku.co.jp/kikagaku-blog/decision-tree-visualization/)
そういえば機械学習系の文章においては執拗なまでに「過学習対策」の話が繰り返される訳ですが「ダミー変数」については同種の検討を全く見掛けない気がしています。「数理モデルの再利用性」にあまり関心がないから？

# 頻度主義統計学とベイズ統計学と深層学習

人類がなかなか、こうした「物理的乱数発生装置の観察結果」や「この世界のあらゆる事象には、それぞれ創造神があらかじめ定めた適正確率が存在する」なる発想を捨て切れなかったのは、その方が予測精度が下がる様に感じたからでした。例えば(伝統的思考様式から完全に解放された)ベルヌーイ過程Bin(1,p)の最尤推定について考えてみましょう。
[【Token】ベルヌーイ分布の平均と分散と最尤値](https://qiita.com/ochimusha01/items/89aea46a8d10cf37a641)

```math
P(X;n)=(p_i∈(p_1^k,p_2^k,…,p_{n-1}^k))(1-\sum_{i=1}^{n-1}p_i)^{k-1}(k∈(0,1))=1
```

```math
\left\{
\begin{array}{ll}
p^1(1-p)^{1-1}=p^1(1-p)^0=p & (k=1) \\
p^0(1-p)^{1-0}=(1-p)^1=1-p & (k=0)
\end{array}
\right.
```

* 試行回数0回の場合の「ダミー変数」最尤推定

```math
p_1^k=p_2^k=,…,=p_n^k=\frac{1}{n}
```

* 試行回数1回の場合の「ダミー変数」最尤推定

```math
\left\{
\begin{array}{ll}
p_1^1=1 & (k=1) \\
p_2^1=1 & (k=1) \\
… &  \\
p_{n-1}^1 & (k=1) \\
p^n=1=1 & (k=0)
\end{array}
\right.
```

これの試行回数n回バージョンが二項分布(Binomial Distribution)Bin(n,p)となり…
[【Token】二項分布の平均と分散と最尤値](https://qiita.com/ochimusha01/items/eabd8159d2d33f4f2e5a)

以下の条件が満たされる時、対象となる二項分布も正規分布で近似可能となりますが…
[食品総合研究所「サンプル数の理論的決め方」](https://www.naro.affrc.go.jp/org/nfri/yakudachi/sampling/pdf/logical-sample-number.pdf)
> あくまで経験則だが、n=サンプル数、p=サンプル内比率、q=1-pの時、
>①npとnqの小さい方が10(5)より大きい。
>②0.1≦p≦0.9で、かつnpq<5。
>③25<npq。

その一方で「偶然、最初から３回連続で表が出る→最尤推定結果が「表の出る確率100%(裏が出る確率0%)」となる」のを避けられず、かつ「オイルショック以前/以降」の様な「マクロ時系列における明らかなシフト」の検出能力も低かったりする訳です。
[Wikipedia「頻度主義統計学」](https://ja.wikipedia.org/wiki/%E9%A0%BB%E5%BA%A6%E4%B8%BB%E7%BE%A9%E7%B5%B1%E8%A8%88%E5%AD%A6)

>統計学における頻度主義（英:frequentism）とは、確率の定義（解釈）の一つで、試行回数を限りなく増やしたときの事象の頻度の極限値を、その事象の確率と定義する考え方である。この統計的確率は、試行の反復回数を増やすことで近似値として求められ、その値は個人の考え・主観によらない。この解釈は、実験科学や世論調査で起こる様々な統計的条件も考慮することができる。
>
>頻度主義による確率解釈が生まれた背景には、それまで主流であった確率の古典的な定義での問題点がある。確率の古典的な定義は、サイコロ、コインなどの物理的対称性による等確率の原理に基づいて定義されていた。例えば、サイコロの古典的確率は、立方体の全ての面の物理的対称性を仮定することで求まる。この古典的な解釈は、物理的対称性を持たず推論が難しいあらゆる統計問題につまずくこととなった。
>
>しかし、この頻度主義が全ての場合に有用とはいえず、例えば賭博においては通常、プレーヤーが事前確率を知ることを必要としている。

ただし同種の弱点は大量の学習データから深層学習するLLM(Large Language Model=大規模言語モデル)も要していると推定され、この語りにベイズ冬季英学との補完関係が存在してるという訳ですね。
[ベイズ統計学とは？初心者にもわかりやすく解説](https://avilen.co.jp/personal/knowledge-article/bayesian-statistics/)

<b>ChtGPTに質問「頻度主義統計学とベイズ統計学と深層学習の関係について教えてください」</b>

> 頻度主義統計学、ベイズ統計学、深層学習は、データ分析とモデリングにおける異なるアプローチを提供し、それぞれに特有の方法論と哲学が存在します。これらの関係性を理解するために、それぞれの特徴を概説し、その後に相互の関係について説明します。
>
>頻度主義統計学（Frequentist Statistics）
>頻度主義統計学は、確率を長期的な頻度として解釈し、繰り返し実験による結果の割合に基づいて推論を行う手法です。主な特徴は次の通りです。
>
>パラメータ推定: パラメータを固定された未知の値とみなし、データからその値を推定します。最尤推定や信頼区間がこの手法に含まれます。
>
>仮説検定: 帰無仮説が正しいと仮定して、観測されたデータがどの程度その仮説に一致するかを評価します。p値を使って仮説の棄却を判断します。
>
>ベイズ統計学（Bayesian Statistics）
>ベイズ統計学は、確率を信念の度合いとして解釈し、新しいデータが得られるたびにその信念を更新します。ベイズの定理を基礎にしており、事前分布（prior）と事後分布（posterior）の概念が中心となります。
>
>事前分布と事後分布: 事前分布はパラメータに対する事前の信念を表し、観測データを用いて事後分布を計算します。事後分布はパラメータのより確かな推定を提供します。
>
>予測と意思決定: ベイズ統計は、不確実性を考慮した予測や意思決定に役立ち、柔軟に新しい情報を反映できるのが強みです。
>
>深層学習（Deep Learning）
>深層学習は、多層のニューラルネットワークを使ってデータから特徴を自動的に学習する手法です。深層学習は、モデルがデータのパターンや関係を捉える能力を高め、大量のデータから複雑な関係を学習するのに適しています。
>
>非線形性と高次元性: 深層学習は、非線形かつ高次元のデータに対しても強力なモデリング能力を持ち、画像認識や自然言語処理などで多用されています。
>
>大量データと計算資源: 深層学習は大量のデータと高い計算資源を必要とし、モデルのトレーニングにおいて頻繁に勾配降下法のような最適化アルゴリズムを使用します。
>
>頻度主義統計学、ベイズ統計学、深層学習の関係
>
>パラメータ推定とモデル構築:
>頻度主義統計学とベイズ統計学は、どちらもパラメータ推定に関与しますが、アプローチが異なります。頻度主義は固定されたパラメータを推定する一方、ベイズ統計は事前分布を通じてパラメータの不確実性を反映させます。深層学習では、パラメータ（ネットワークの重み）をデータに基づいて最適化するプロセスがあり、これには頻度主義的な最適化手法が使われますが、近年はベイズ的なアプローチも導入されています（例：ベイズニューラルネットワーク）。
>
>不確実性の扱い:
>ベイズ統計学は、モデルの不確実性を事前分布と事後分布で明示的に扱い、深層学習モデルの不確実性推定にも応用されています。頻度主義統計学は主にデータからの推測に基づく不確実性の扱いに焦点を当てますが、深層学習においてはドロップアウトやアンサンブル学習のような手法で不確実性が考慮されます。
>
>応用とスケーリング:
>深層学習は、特に大規模なデータセットに対して強力であり、頻度主義やベイズ統計の理論を基礎としながらも、スケーラブルなアルゴリズムを開発するためのインスピレーションを提供しています。例えば、頻度主義統計の勾配降下法は、深層学習におけるバックプロパゲーションの基礎となっており、ベイズ統計のアイデアは、深層学習モデルの事前知識の導入や不確実性の推定に活用されています。
>
>まとめ
>
>頻度主義統計学、ベイズ統計学、深層学習は、それぞれが異なる方法でデータ分析やモデリングを行いますが、相互に補完し合い、特にデータ駆動型のアプローチにおいて重要な役割を果たしています。頻度主義統計学は固定されたパラメータ推定に強みを持ち、ベイズ統計学は不確実性の扱いや柔軟な推論に優れ、深層学習は複雑で大規模なデータのパターン認識に特化しています。これらのアプローチは、現代の機械学習やデータサイエンスにおいて不可欠なツールとして広く使われています。

[【ニューラルネットワーク】Dropout(ドロップアウト)についてまとめる](https://qiita.com/shu_marubo/items/70b20c3a6c172aaeb8de)

>おおよその目安として、inputを行った直後のDropoutは80%程度のノードが活性化されているのが好ましく、隠れ層は50%前後が活性化しているのが良いらしい。

そんな感じで以下続報…