データの分析方法を学ぶ会：生成関数

# **生成関数とは**

確率分布を平均や分散、形状パラメータなどのモーメントだけで完全に表現することは不十分です。生成関数(Generating Function)は、確率変数の分布特性を関数の形で表現する数学的手法です。


## 生成関数から分かること

1. **全てのモーメントの生成**
   - 生成関数（確率生成関数や積率母関数）を用いることで、確率変数の期待値、分散、第三モーメントなど、全てのモーメントを計算できます。
   - 例えば、積率母関数 $ M_X(t) $ の $ r $ 階導関数を $ t = 0 $ で評価することで、$ r $ 次モーメント $ E[X^r] $ を得ることができます。

2. **確率質量関数（PMF）の抽出**
   - 確率生成関数（PGF）では、生成関数の $ k $ 階導関数を $ s = 0 $ で評価し、$ k! $ で割ることで、確率 $ P(X = k) $ を直接抽出できます。
   - 具体的には、
     $$
     P(X = k) = \frac{G_X^{(k)}(0)}{k!}
     $$
     という関係があります。

3. **独立な確率変数の和の分布の計算**
   - 独立な確率変数の生成関数は積算可能です。つまり、独立な確率変数 $ X $ と $ Y $ の和 $ Z = X + Y $ の生成関数 $ G_Z(s) $ は、
     $$
     G_Z(s) = G_X(s) \cdot G_Y(s)
     $$
     と表されます。これにより、和の分布を容易に求めることができます。

4. **分布の特性解析**
   - 生成関数を解析することで、分布の対称性、偏り（スキュー）、尖度（カートシス）などの形状特性を調べることができます。
   - 例えば、生成関数の導関数を用いてモーメントを計算し、それを基に分布の形状を評価します。

5. **分布の一意性の確認**
   - 生成関数は確率分布を一意に決定します。つまり、異なる分布は異なる生成関数を持つため、生成関数を知ることで元の分布を完全に特定することが可能です。

6. **確率分布の合成や変換の簡便化**
   - 生成関数を用いることで、複数の分布の合成（例えば、複数の試行の結果としての分布）や特定の変換（例えば、スケーリングやシフト）を簡単に行うことができます。

7. **級数展開や解析的な操作の容易化**
   - 生成関数は級数として表現されるため、微分や積分などの解析的操作が容易になります。これにより、確率分布に関する複雑な計算や証明が簡便になります。



## 具体例

確率母関数（確率生成関数、Probability Generating Function: PGF）を用いて期待値や分散を微分によって求められる理由とその原理について、具体的に説明します。

 **1. 確率母関数（PGF）の定義**

まず、離散型確率変数 $ X $ の確率母関数 $ G_X(s) $ は次のように定義されます：

$$
G_X(s) = E[s^X] = \sum_{k=0}^{\infty} s^k P(X = k)
$$

ここで、
- $ E $ は期待値演算子、
- $ s $ は変数（通常 $ |s| \leq 1 $ の範囲）、
- $ P(X = k) $ は確率変数 $ X $ が値 $ k $ を取る確率です。

---

 **2. 微分によってモーメントを抽出する原理**

### **2.1. 期待値の計算**

確率母関数から期待値 $ E[X] $ を求めるには、PGFを一階微分し、$ s = 1 $ で評価します。以下、その原理を示します。

#### **ステップ1: PGFの一階微分**

PGFを $ s $ で一階微分します：

$$
G_X'(s) = \frac{d}{ds} G_X(s) = \frac{d}{ds} \left( \sum_{k=0}^{\infty} s^k P(X = k) \right) = \sum_{k=0}^{\infty} k s^{k-1} P(X = k)
$$

#### **ステップ2: s = 1 で評価**

微分したPGFを $ s = 1 $ で評価します：

$$
G_X'(1) = \sum_{k=0}^{\infty} k \cdot 1^{k-1} P(X = k) = \sum_{k=0}^{\infty} k P(X = k) = E[X]
$$

これにより、

$$
E[X] = G_X'(1)
$$

が得られます。

#### **原理の解説**

- **冪関数の微分**: $ s^k $ を微分すると $ k s^{k-1} $ になります。これにより、各項の指数 $ k $ が係数として「取り出され」ます。
- **期待値の表現**: 微分後の式 $ G_X'(s) $ は、各 $ k $ に対して $ k P(X = k) s^{k-1} $ となり、$ s = 1 $ で評価することで、各 $ k $ に対する重み付き確率 $ k P(X = k) $ の総和、すなわち期待値 $ E[X] $ を得ることができます。

### **2.2. 分散の計算**

分散 $ \text{Var}(X) $ を求めるには、PGFを二階微分し、適切に組み合わせます。

#### **ステップ1: PGFの二階微分**

PGFを $ s $ で二階微分します：

$$
G_X''(s) = \frac{d^2}{ds^2} G_X(s) = \frac{d}{ds} \left( \sum_{k=0}^{\infty} k s^{k-1} P(X = k) \right) = \sum_{k=0}^{\infty} k(k-1) s^{k-2} P(X = k)
$$

#### **ステップ2:  s = 1  で評価**

微分したPGFを $ s = 1 $ で評価します：

$$
G_X''(1) = \sum_{k=0}^{\infty} k(k-1) \cdot 1^{k-2} P(X = k) = \sum_{k=0}^{\infty} k(k-1) P(X = k) = E[X(X-1)]
$$

#### **分散の公式**

分散は以下のように表されます：

$$
\text{Var}(X) = E[X^2] - (E[X])^2
$$

ここで、

$$
E[X^2] = E[X(X-1)] + E[X] = G_X''(1) + G_X'(1)
$$

したがって、

$$
\text{Var}(X) = G_X''(1) + G_X'(1) - \left( G_X'(1) \right)^2
$$

#### **原理の解説**

- **二階微分によるモーメントの抽出**: 一階微分で期待値 $ E[X] $ を抽出できるように、二階微分では $ E[X(X-1)] $ を抽出します。これを基にして、二次モーメント $ E[X^2] $ を計算します。
- **分散の組み立て**: 二次モーメント $ E[X^2] $ と期待値 $ E[X] $ を組み合わせることで、分散 $ \text{Var}(X) $ を求めることができます。


 **3. 項を $ s^k $ の形にする理由**

### **3.1. 確率分布の情報を符号化する**

確率母関数（Probability Generating Function: PGF）は、確率変数 $ X $ の分布を関数の形で表現する方法です。具体的には、確率変数 $ X $ が取り得る各値 $ k $ に対して、その確率 $ P(X = k) $ を係数として組み込みます。このために、項を $ s^k $ の形にします。

$$
G_X(s) = E[s^X] = \sum_{k=0}^{\infty} s^k P(X = k)
$$

### **3.2. 基底関数としての冪関数**

$ s^k $ は冪関数と呼ばれ、生成関数では基底関数として使用されます。冪関数は次の理由で適しています：

- **線形性**: 各 $ s^k $ は独立した基底関数として扱われ、重ね合わせ（線形結合）により複雑な確率分布を表現できます。
  
- **識別性**: 各 $ k $ に対して異なる冪関数 $ s^k $ を使用することで、確率 $ P(X = k) $ を一意に識別し、抽出することが可能になります。

### **3.3. 確率の抽出**

生成関数の各項 $ s^k P(X = k) $ は、確率 $ P(X = k) $ を $ s^k $ に重み付けして組み込んでいます。これにより、生成関数から特定の確率を容易に取り出すことができます。

例えば、生成関数を $ k $ 階微分し、$ s = 0 $ で評価することで $ P(X = k) $ を得ることができます。

$$
P(X = k) = \frac{G_X^{(k)}(0)}{k!}
$$

ここで、$ G_X^{(k)}(s) $ は生成関数の $ k $ 階導関数です。

---

 **4. $ |s| \leq 1 $ の制約理由**

### **4.1. 冪級数の収束**

確率母関数は無限級数として表現されます：

$$
G_X(s) = \sum_{k=0}^{\infty} s^k P(X = k)
$$

この級数が収束するためには、冪級数の収束半径を考慮する必要があります。確率変数 $ X $ が非負整数値を取る場合、各確率 $ P(X = k) $ は $ 0 \leq P(X = k) \leq 1 $ であり、かつ

$$
\sum_{k=0}^{\infty} P(X = k) = 1
$$

が成り立ちます。したがって、級数の収束を保証するためには、$ |s| \leq 1 $ の範囲が適切です。

### **4.2. 物理的・確率的な意味**

- **確率の重み付け**: $ |s| \leq 1 $ の範囲では、各項 $ s^k P(X = k) $ が減衰または一定の大きさを保ち、級数全体が収束しやすくなります。これは、確率の総和が1であることと整合します。

- **生成関数の評価**: 通常、生成関数は $ s $ を1に近づけることで確率分布の特性を調べます。例えば、$ s = 1 $ では生成関数の値は1になります。

### **4.3. 数学的な安定性**

$ |s| > 1 $ の場合、特定の分布では級数が発散する可能性があり、生成関数としての有効性が失われます。したがって、$ |s| \leq 1 $ の範囲内で生成関数を定義することが、数学的に安定した解析を行うために重要です。



 **5 確率母関数と変数 $ s $ の値**

 **5.1. 確率母関数における $ s = 1 $ の場合**

確率母関数 $ G_X(s) $ は以下のように定義されます：

$$
G_X(s) = E[s^X] = \sum_{k=0}^{\infty} s^k P(X = k)
$$

ここで、$ X $ は非負整数値を取る離散型確率変数です。このとき、$ s = 1 $ を代入すると：

$$
G_X(1) = \sum_{k=0}^{\infty} 1^k P(X = k) = \sum_{k=0}^{\infty} P(X = k) = 1
$$

これは、確率の総和が常に1であることを反映しています。

 **5.2. 確率母関数における $ s \neq 1 $ の場合**

$ s $ が1でない場合、確率母関数 $ G_X(s) $ は以下のようになります：

$$
G_X(s) = \sum_{k=0}^{\infty} s^k P(X = k)
$$

この場合、$ |s| \leq 1 $ の範囲内であれば、級数は収束し、生成関数は特定の実数値に収束します。ただし、$ s \neq 1 $ の場合、確率母関数の値は1にはなりません。



 **6. 確率母関数（PGF）と積率母関数（MGF）の違い**

### **6.1. 定義と対象**
- **確率母関数（PGF）**
  - **定義**: 離散型確率変数 $ X $ が非負整数値を取る場合、
    $$
    G_X(s) = E[s^X] = \sum_{k=0}^{\infty} s^k P(X = k)
    $$
  - **対象**: 主に非負整数値を取る**離散型確率変数**。

- **積率母関数（MGF）**
  - **定義**:
    $$
    M_X(t) = E[e^{tX}] = \begin{cases}
    \sum_{k=0}^{\infty} e^{t k} P(X = k) & \text{（離散型）} \\
    \int_{-\infty}^{\infty} e^{t x} f_X(x) \, dx & \text{（連続型）}
    \end{cases}
    $$
  - **対象**: **離散型**および**連続型確率変数**の両方。

### **6.2. 性質の相違点**
- **定義域**
  - **PGF**は $ s $ が主に $ |s| \leq 1 $ の範囲で定義される。
  - **MGF**は $ t $ が実数全体で定義されるが、存在する範囲は分布による。

- **適用範囲**
  - **PGF**は非負整数値に特化しており、複雑な分布の合成や確率の抽出に便利。
  - **MGF**は広範な分布に適用可能で、モーメント（期待値、分散など）の生成に用いられる。

- **操作の違い**
  - **PGF**では、確率の抽出や確率変数の合計の分布計算が容易。
  - **MGF**では、モーメントの直接的な生成や確率変数の独立な和の解析に適している。

### **6.3. 共通点**
- 両者とも生成関数として、確率分布の特性を関数の形で表現する点。
- 微分を通じてモーメント（期待値、分散など）を計算できる点。

 **7. 積率母関数では $s=e^t$**


- **確率母関数では $ s < 1 $**:
  - 正確には、確率母関数 $ G_X(s) $ は $ |s| \leq 1 $ の範囲で定義されることが一般的です。これは収束の観点から重要です。
  
- **積率母関数では $ s = e^t $**:
  - 正確には、MGFでは変数を $ t $ とし、PGFの $ s $ を $ e^t $ に置き換える形で関係付けられます。したがって、「積率母関数では $ s = e $」という理解は誤りです。正しくは「積率母関数では PGF の $ s $ を $ e^t $ に置き換える」となります。

# 出題例

## 2023数理 問3 モーメント母関数：指数分布 

パラメータ $\lambda > 0$ の指数分布に従う確率変数 $X$ とする。確率密度関数は

$$
f(x) = \begin{cases} 
\lambda e^{-\lambda x} & (x > 0) \\
0 & (x \leq 0)
\end{cases}
$$

である。以下の [1] から [3] に答えよ。

[1] $X$ の期待値 $E[X]$ を求めよ。

[2] $X$ のモーメント母関数 $M_X(t) = E[e^{tX}]$ を求めよ。

[3] 確率変数 $X_W$ は、$h > 0$ に対して、確率密度関数

$$
g(x) = \frac{e^{hx}f(x)}{M_X(h)}　 \tag{1}
$$

を持つとする。ただし、$h$ は $M_X(t)$ が存在する $t$ の範囲内に取る。このとき、不等式 $E[X_W] > E[X]$ が成り立つことを示せ。

以降、一般に正値を取る連続型確率変数 $X$ の確率密度関数 $f(x)$ について考える。  
$X$ のモーメント母関数 $M_X(t)$ は区間 $(-\infty, b)$ で存在すると仮定し $(b > 0)$、$-\infty < h < b$ とする。このとき、任意の正の整数 $r$ に対し $M_X(h)$ の $r$ 階微分 $M_X^{(r)}(h)$ は存在する。確率変数 $X_W$ の確率密度関数 $g(x)$ を式(1) と同じ式によって定義する。このとき、以下の [4] および [5] に答えよ。


[4] $ X_W $ の $r$ 次モーメントは

$$
E[X_W^r] = \frac{M_X^{(r)}(h)}{M_X(h)}
$$

と表されることを示せ。

[5] $ h = 0 $ のとき等式 $ E[X_W] = E[X] $, $ h < 0 $ のとき不等式 $ E[X_W] \leq E[X] $, $ h > 0 $ のとき不等式 $ E[X_W] \geq E[X] $ が成り立つことを示せ。

### 解答

**[1]** 

**ステップ1：積分の設定**

同様に期待値の定義から始めます。

$$
E[X] = \int_{0}^{\infty} x \lambda e^{-\lambda x} dx
$$

**ステップ2：部分積分の適用**

部分積分の公式：

$$
\int u dv = uv - \int v du
$$

$ u = x $、$ dv = \lambda e^{-\lambda x} dx $ と置きます。

まず、$ du $ と $ v $ を求めます。

- $ du = dx $
- $ v = -e^{-\lambda x} $ （なぜなら $ dv = \lambda e^{-\lambda x} dx $ なので）

**ステップ3：部分積分の計算**

$$
E[X] = uv - \int_{0}^{\infty}  v du = \left( x \cdot (-e^{-\lambda x}) \right)- \int_{0}^{\infty} (-e^{-\lambda x}) dx
$$

境界での計算：

- $ \lim_{x \to \infty} x \cdot (-e^{-\lambda x}) = 0 $ （指数関数が速く減衰するため）
- $ x = 0 $ のとき $ 0 \cdot (-e^{0}) = 0 $

したがって、

$$
E[X] = 0 - 0 - \left( - \int_{0}^{\infty} e^{-\lambda x} dx \right) = \int_{0}^{\infty} e^{-\lambda x} dx
$$

**ステップ4：積分の評価**

$$
\int_{0}^{\infty} e^{-\lambda x} dx = \frac{1}{\lambda}
$$

したがって、

$$
E[X] = \frac{1}{\lambda}
$$

**[2]**

**モーメント母関数の定義**

モーメント母関数（Moment Generating Function, MGF）は、確率変数のすべてのモーメント（期待値、分散、歪度など）を生成する関数であり、以下のように定義されます：

$$
M_X(t) = E[e^{tX}] = \int_{-\infty}^{\infty} e^{t x} f(x) \, dx
$$

**指数分布における $M_X(t)$ の計算**

指数分布の場合、$f(x) = 0$ となる $x \leq 0$ を考慮して、積分範囲を $x > 0$ に限定します。したがって、

$$
M_X(t) = \int_{0}^{\infty} e^{t x} \lambda e^{-\lambda x} \, dx = \lambda \int_{0}^{\infty} e^{(t - \lambda) x} \, dx
$$

**積分の計算**

積分を解くために、指数関数の基本的な積分公式を用います。一般に、

$$
\int_{0}^{\infty} e^{a x} \, dx = 
\begin{cases}
\frac{1}{-a} & \text{if } a < 0 \\
\infty & \text{if } a \geq 0
\end{cases}
$$

ここで、$a = t - \lambda$ と置くと、

$$
\int_{0}^{\infty} e^{(t - \lambda) x} \, dx = 
\begin{cases}
\frac{1}{\lambda - t} & \text{if } \lambda - t > 0 \quad (\text{つまり } t < \lambda) \\
\infty & \text{if } t \geq \lambda
\end{cases}
$$

したがって、$t < \lambda$ の範囲でのみ積分が収束します。

**モーメント母関数の最終形**

積分結果を用いて、$M_X(t)$ を求めます：

$$
M_X(t) = \lambda \times \frac{1}{\lambda - t} = \frac{\lambda}{\lambda - t} \quad \text{for } t < \lambda
$$

**[3]**

**1. 新しい確率変数 $X_W$ の期待値の計算**

確率変数 $X_W$ の期待値 $E[X_W]$ を求めます。

**確率密度関数 $g(x)$ の定義**

$$
g(x) = \frac{e^{h x} f(x)}{M_X(h)} = \frac{e^{h x} \lambda e^{-\lambda x}}{M_X(h)} = \frac{\lambda e^{-(\lambda - h)x}}{M_X(h)} \quad (x > 0)
$$

**期待値の計算**

$$
E[X_W] = \int_{0}^{\infty} x g(x) \, dx = \int_{0}^{\infty} x \frac{\lambda e^{-(\lambda - h)x}}{M_X(h)} \, dx = \frac{\lambda}{M_X(h)} \int_{0}^{\infty} x e^{-(\lambda - h)x} \, dx
$$

この積分を評価します。基本的な指数関数の積分を利用します。

**積分の計算**

$$
\int_{0}^{\infty} x e^{-a x} \, dx = \frac{1}{a^2} \quad \text{（ただし、} a > 0 \text{）}
$$

ここで、$a = \lambda - h$ と置くと、

$$
\int_{0}^{\infty} x e^{-(\lambda - h)x} \, dx = \frac{1}{(\lambda - h)^2}
$$

従って、

$$
E[X_W] = \frac{\lambda}{M_X(h)} \times \frac{1}{(\lambda - h)^2}
$$

**モーメント母関数 $M_X(h)$ の利用**

モーメント母関数 $M_X(t)$ を用いると、

$$
M_X(h) = \frac{\lambda}{\lambda - h}
$$

これを代入すると、

$$
E[X_W] = \frac{\lambda}{\frac{\lambda}{\lambda - h}} \times \frac{1}{(\lambda - h)^2} = (\lambda - h) \times \frac{1}{(\lambda - h)^2} = \frac{1}{\lambda - h}
$$

**2. 元の確率変数 $X$ の期待値 $E[X]$ の確認**

指数分布の期待値は既に [1] で求めた通り、

$$
E[X] = \frac{1}{\lambda}
$$

**3. 不等式 $E[X_W] > E[X]$ の証明**

**不等式の設定**

求めたいのは、

$$
E[X_W] > E[X]
$$

これを具体的な値で表すと、

$$
\frac{1}{\lambda - h} > \frac{1}{\lambda}
$$

**不等式の解釈**

この不等式を $h > 0$ の条件下で証明します。

**手順**

1. **両辺の逆数を取る**

   逆数を取ると不等式の向きが変わります。ただし、両辺が正であることを確認します（$\lambda > h$ のため、両辺は正）。

   $$
   \lambda - h < \lambda
   $$

2. **不等式の簡略化**

   $$
   \lambda - h < \lambda \quad \Rightarrow \quad -h < 0 \quad \Rightarrow \quad h > 0
   $$

   これは、$h > 0$ の条件に一致します。

**結論**

従って、$h > 0$ のとき、

$$
\frac{1}{\lambda - h} > \frac{1}{\lambda}
$$

すなわち、

$$
E[X_W] > E[X]
$$

が成り立ちます。

**4. モーメント母関数の性質を利用した一般的なアプローチ**

上記の具体的な計算に加えて、モーメント母関数の性質を用いて一般的に $E[X_W] > E[X]$ を示すこともできます。

**モーメント母関数の定義と性質**

- **定義**:

  $$
  M_X(t) = E[e^{tX}]
  $$

- **対数モーメント母関数**（ロガー・モーメント母関数）:

  $$
  \psi(t) = \log M_X(t)
  $$

  この関数 $\psi(t)$ は、凸関数です。

- **期待値の関係**:

  $$
  \frac{d}{dt} \psi(t) = \frac{M'_X(t)}{M_X(t)} = E[X e^{tX}] / E[e^{tX}] = E[X]_t
  $$

  ここで、$E[X]_t$ は $t$ によるパラメータ変換後の期待値です。

**凸性による単調性**

$\psi(t)$ が凸関数であるため、その一階導関数 $\psi'(t)$ は単調に増加します。すなわち、

$$
t_1 < t_2 \quad \Rightarrow \quad \psi'(t_1) \leq \psi'(t_2)
$$

特に、$t_1 = 0$ と $t_2 = h > 0$ とすると、

$$
\psi'(0) \leq \psi'(h)
$$

これは、

$$
E[X] \leq E[X_W]
$$

となります。ここで、等号が成立するのは $h = 0$ の場合のみであり、$h > 0$ の場合には厳密に不等式が成立します。

**まとめ**

- **$M_X(t)$ の凸性**により、$\psi'(t)$ が単調に増加することから、$h > 0$ のとき $E[X_W] > E[X]$ が成り立つ。
  
- **具体的な計算**でも、$h > 0$ のとき $\frac{1}{\lambda - h} > \frac{1}{\lambda}$ が確認できた。


**指数関数的変換の効果**

確率密度関数を $g(x) = \frac{e^{h x} f(x)}{M_X(h)}$ の形に変換することは、**指数関数的変換（Exponential Tilting）** と呼ばれます。この変換は、元の分布を「傾ける」ことで、新しい期待値やその他の統計量を変化させます。

**期待値の増加の直感的理解**

指数関数的変換により、確率密度関数が右にシフトするため、期待値が増加することは直感的に理解できます。具体的には、変換後の確率密度関数 $g(x)$ は、元の分布よりも高い $x$ の値に対して重みが増すため、全体の期待値が上昇します。

**[4]**

確率変数 $X_W$ の $r$ 次モーメント $E[X_W^r]$ を求めます。以下に、その証明過程を詳細に示します。

#### 1. **期待値の定義**

確率変数 $X_W$ の $r$ 次モーメントは、確率密度関数 $g(x)$ を用いて以下のように定義されます：

$$
E[X_W^r] = \int_{0}^{\infty} x^r g(x) \, dx
$$

#### 2. **$g(x)$ の定義の代入**

問題で与えられた $g(x)$ の定義を代入します：

$$
E[X_W^r] = \int_{0}^{\infty} x^r \cdot \frac{e^{h x} f(x)}{M_X(h)} \, dx = \frac{1}{M_X(h)} \int_{0}^{\infty} x^r e^{h x} f(x) \, dx
$$

#### 3. **モーメント母関数の $r$ 階微分との関係**

モーメント母関数 $M_X(t)$ の $r$ 階微分 $M_X^{(r)}(t)$ は、以下のように定義されます：

$$
M_X^{(r)}(t) = \frac{d^r}{dt^r} M_X(t) = \frac{d^r}{dt^r} E[e^{tX}] = E[X^r e^{tX}]
$$

特に、$t = h$ のとき、

$$
M_X^{(r)}(h) = E[X^r e^{hX}] = \int_{0}^{\infty} x^r e^{h x} f(x) \, dx
$$

#### 4. **期待値 $E[X_W^r]$ の表現**

先ほどの2.と3.を組み合わせると、

$$
E[X_W^r] = \frac{1}{M_X(h)} \int_{0}^{\infty} x^r e^{h x} f(x) \, dx = \frac{M_X^{(r)}(h)}{M_X(h)}
$$

#### 5. **結論**

従って、確率変数 $X_W$ の $r$ 次モーメントは、

$$
E[X_W^r] = \frac{M_X^{(r)}(h)}{M_X(h)}
$$

と表されることが示されました。

**[5]**

**1. $ h = 0 $ のとき $ E[X_W] = E[X] $ が成り立つことの証明**

**証明手順**

1. **確率密度関数の確認**:

   $ h = 0 $ のとき、確率密度関数 $ g(x) $ は以下のようになります：

   $$
   g(x) = \frac{e^{0 \cdot x} f(x)}{M_X(0)} = \frac{1 \cdot f(x)}{M_X(0)}
   $$

2. **モーメント母関数の値**:

   モーメント母関数の定義より、

   $$
   M_X(0) = E[e^{0 \cdot X}] = E[1] = 1
   $$

3. **確率密度関数の簡略化**:

   したがって、

   $$
   g(x) = f(x)
   $$

   つまり、$ h = 0 $ のとき $ X_W $ は元の確率変数 $ X $ と同じ分布を持ちます。

4. **期待値の計算**:

   $$
   E[X_W] = \int_{0}^{\infty} x \cdot g(x) \, dx = \int_{0}^{\infty} x \cdot f(x) \, dx = E[X]
   $$

**結論**

よって、$ h = 0 $ のとき、

$$
E[X_W] = E[X]
$$

が成り立ちます。

**2. $ h < 0 $ のとき $ E[X_W] \leq E[X] $ が成り立つことの証明**

**証明手順**

1. **期待値の表現**:

   $ X_W $ の期待値は以下のように表されます：

   $$
   E[X_W] = \frac{M_X^{(1)}(h)}{M_X(h)}
   $$

   ここで、$ M_X^{(1)}(h) $ はモーメント母関数の1階微分です。

2. **Jensenの不等式の適用**:

   モーメント母関数の対数を取ると、凸関数となります。具体的に、

   $$
   \psi(t) = \log M_X(t)
   $$

   $\psi(t)$ は凸関数であり、その一階導関数は

   $$
   \psi'(t) = \frac{M_X^{(1)}(t)}{M_X(t)} = E[X e^{tX}]/E[e^{tX}] = E[X]_t
   $$

   ここで、$ E[X]_t $ は変換後の期待値 $ E[X_W] $ を表します。

3. **凸関数の性質**:

   凸関数の導関数は単調増加します。すなわち、もし $ h < 0 $ ならば、

   $$
   \psi'(h) \leq \psi'(0)
   $$

   つまり、

   $$
   E[X_W] \leq E[X]
   $$

   となります。

**結論**

よって、$ h < 0 $ のとき、

$$
E[X_W] \leq E[X]
$$

が成り立ちます。

**3. $ h > 0 $ のとき $ E[X_W] \geq E[X] $ が成り立つことの証明**

**証明手順**

1. **期待値の表現**:

   $ X_W $ の期待値は以下のように表されます：

   $$
   E[X_W] = \frac{M_X^{(1)}(h)}{M_X(h)}
   $$

2. **Jensenの不等式の適用**:

   先述のように、モーメント母関数の対数 $\psi(t) = \log M_X(t)$ は凸関数です。このため、

   $$
   \psi'(h) \geq \psi'(0)
   $$

   すなわち、

   $$
   E[X_W] \geq E[X]
   $$

   となります。

3. **具体例による確認**:

   前問 [4] で $E[X_W] = \frac{M_X^{(1)}(h)}{M_X(h)}$ を示しました。具体的な分布に対しても、この不等式は成り立ちます。

   例えば、指数分布の場合、

   $$
   M_X(t) = \frac{\lambda}{\lambda - t} \quad (t < \lambda)
   $$

   $$
   M_X^{(1)}(t) = \frac{\lambda}{(\lambda - t)^2}
   $$

   したがって、

   $$
   E[X_W] = \frac{M_X^{(1)}(h)}{M_X(h)} = \frac{\frac{\lambda}{(\lambda - h)^2}}{\frac{\lambda}{\lambda - h}} = \frac{1}{\lambda - h}
   $$

   一方、

   $$
   E[X] = \frac{1}{\lambda}
   $$

   ここで、$ h > 0 $ のとき、

   $$
   \frac{1}{\lambda - h} > \frac{1}{\lambda} \quad \text{（}\lambda - h < \lambda\text{）}
   $$

   となり、

   $$
   E[X_W] > E[X]
   $$

   が確認できます。

**結論**

よって、$ h > 0 $ のとき、

$$
E[X_W] \geq E[X]
$$

が成り立ちます。

**4. 総括**

以上より、一般に正値を取る連続型確率変数 $X$ の確率密度関数 $f(x)$ について、

- **$ h = 0 $** のとき、$ E[X_W] = E[X] $
- **$ h < 0 $** のとき、$ E[X_W] \leq E[X] $
- **$ h > 0 $** のとき、$ E[X_W] \geq E[X] $

が成り立つことが示されました

```Python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import expon
import matplotlib as mpl


# 日本語フォントの設定（フォント名はシステムにインストールされているものを使用）
mpl.rcParams['font.family'] = 'Yu Gothic'  # Windowsの場合
# mpl.rcParams['font.family'] = 'IPAexGothic'  # Linuxの場合
# mpl.rcParams['font.family'] = 'Hiragino Kaku Gothic Pro'  # Macの場合

# 負の符号を正しく表示するための設定
mpl.rcParams['axes.unicode_minus'] = False
# パラメータの設定
lambda_param = 1.0  # λ > 0
h = 0.5             # h > 0 かつ h < λ

# 確認
if h >= lambda_param:
    raise ValueError("h は λ より小さい必要があります。")

# サンプル数の設定
N = 100000

# 元の指数分布 X ~ Exponential(λ) から乱数を生成
X = np.random.exponential(scale=1/lambda_param, size=N)

# ティルド後の指数分布 X_W ~ Exponential(λ - h) から乱数を生成
lambda_W = lambda_param - h
X_W = np.random.exponential(scale=1/lambda_W, size=N)

# 期待値の計算
E_X = np.mean(X)
E_XW = np.mean(X_W)

# 理論的な期待値
theoretical_E_X = 1 / lambda_param
theoretical_E_XW = 1 / lambda_W

# ヒストグラムのプロット
plt.figure(figsize=(12, 6))

# 元の指数分布のヒストグラム
plt.hist(X, bins=100, density=True, alpha=0.5, label=f'元の指数分布 X ~ Exponential({lambda_param})')

# ティルド後の指数分布のヒストグラム
plt.hist(X_W, bins=100, density=True, alpha=0.5, label=f'ティルド後の分布 X_W ~ Exponential({lambda_W})')

# 理論的な密度関数のプロット
x_values = np.linspace(0, np.percentile(X_W, 99.9), 1000)
f_X = expon.pdf(x_values, scale=1/lambda_param)
f_XW = expon.pdf(x_values, scale=1/lambda_W)
plt.plot(x_values, f_X, 'k-', linewidth=2, label='理論的な f_X(x)')
plt.plot(x_values, f_XW, 'r-', linewidth=2, label='理論的な g_XW(x)')

# グラフの設定
plt.title('元の指数分布とティルド後の指数分布の比較')
plt.xlabel('x')
plt.ylabel('確率密度')
plt.legend()
plt.grid(True)
plt.show()

# 期待値の表示
print(f"サンプルからの期待値 E[X]      = {E_X:.4f}")
print(f"サンプルからの期待値 E[X_W]    = {E_XW:.4f}")
print(f"理論的な期待値 E[X]          = {theoretical_E_X:.4f}")
print(f"理論的な期待値 E[X_W]        = {theoretical_E_XW:.4f}")
print(f"E[X_W] > E[X]    : {E_XW > E_X}")
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/267055/f982e60c-23db-6f07-a668-86733f226ec2.png)