C#で平均・分散・標準偏差を計算する(Math.NET Numericsによる方法)

Math.NET Numericsのインストール

.NET向けの数値計算ライブラリであるMath.NET Numericsを使う.Nugetからインストール可能である.プロジェクトの右クリックメニューから「Nugetパッケージの管理」をクリックし,出てきたダイアログで「Math.NET Numerics」検索しインストールする.

f:id:whoopsidaisies:20131130173811p:plain

ソースコード

以下が確認用プログラムのソースコード.

using System;
using System.Collections.Generic;

using MathNet.Numerics.Statistics;

namespace MathNetTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var data = new double[] { 3, 4, 5, 6, 10 };
            // Listとかでも大丈夫
            // var data = new List<double>() { 3, 4, 5, 6, 10 };

            // 拡張メソッドで簡単に使える
            Console.WriteLine("平均   :{0}", data.Mean());
            Console.WriteLine("中央値  :{0}", data.Median());
            Console.WriteLine("分散   :{0}", data.PopulationVariance());
            Console.WriteLine("母分散  :{0}", data.Variance());
            Console.WriteLine("標準偏差 :{0}", data.PopulationStandardDeviation());
            Console.WriteLine("母標準偏差:{0}", data.StandardDeviation());
        }
    }
}

拡張メソッドによってdouble型の配列(正確にはIEnumerable)のメソッドとして簡単に使える.

実行すると↓みたいな感じになる.

平均   :5.6
中央値  :5
分散   :5.84
母分散  :7.3
標準偏差 :2.41660919471891
母標準偏差:2.70185121722126