ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

F#でカイの二乗分布

統計的機械学習の数理100問 with Pythonに載っていたΧの二乗分布をF#で書いてみました。

www.kyoritsu-pub.co.jp

f:id:natsutan:20200627201237p:plain

Χの二乗分布はMathNet.Numerics.Distributionsの中に含まれいます。確率分布が欲しいときはPDFで計算できます。ここはPythonのscipi.statと同じです。

open MathNet.Numerics.Distributions
open FSharp.Charting
    
let plot_chi2(path) =
    let mutable chart_list = []
        
    for k in 1 .. 11 do
        let chart = Chart.Line [for x in 0.1 .. 0.01 .. 20.0 -> x, ChiSquared.PDF(float(k), x) ]
        chart_list <- chart :: chart_list
    
    let chart_comb = Chart.Combine chart_list
    
    let output_file = path + @"chi2.png"
    Chart.Save output_file chart_comb
    None

統計的機械学習の数理100問の図1.3はグラフが間違っている気がします。k=1.5くらいから始めると教科書の図になりますね。記載されているPythonコードを実行しても、本と同じグラフになりませんでした。