C#で平均・分散・標準偏差を計算する(Math.NET Numericsによる方法)
Math.NET Numericsのインストール
.NET向けの数値計算ライブラリであるMath.NET Numericsを使う.Nugetからインストール可能である.プロジェクトの右クリックメニューから「Nugetパッケージの管理」をクリックし,出てきたダイアログで「Math.NET Numerics」検索しインストールする.
ソースコード
以下が確認用プログラムのソースコード.
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