83005


平均パラメータを`m=0`とし、分散`s1=5`が80%、分散`s2=1`が20%の混合分布をプロットしたいです。イメージとしては標準正規分布よりも裾がやや重い分布がプロットされるはずです。  
色々調べてみたのですが、例やライブラリなどを見つけることができなかったので質問させていただきました。  
どなたかやり方がわかる方いらっしゃいましたら回答よろしくお願いします。


CC BY-SA 4.0
2021-10-11T06:34:37.880
83003
2021-10-11T08:18:50.020
36750
question
python python3 matplotlib
混合分布をプロットする方法


特に説明はしませんが、以下の様になります。

[code]

    import numpy as np
    import math
    import matplotlib.pyplot as plt
    
    # generate two normal distributions
    n_sample = 1000000
    data = np.stack((
      np.random.normal(size=n_sample, loc=0, scale=math.sqrt(5)),
      np.random.normal(size=n_sample, loc=0, scale=1)
    ), axis=-1)
    
    # random choice by probabilities
    idx = np.random.choice(np.arange(2), size=(n_sample,), p=(0.8, 0.2))
    sample = data[np.arange(n_sample), idx]
    
    # plot
    plt.hist(sample, bins=250, density=True)
    plt.show()
    
[/code]

[![plot](https://i.stack.imgur.com/fejl3.png)](https://i.stack.imgur.com/fejl3.png)


CC BY-SA 4.0
2021-10-11T08:18:50.020
83005
2021-10-11T08:18:50.020
47127
83003
answer