LoginSignup
1
2

More than 1 year has passed since last update.

「ちょっと午後までに標準偏差表示しといて」~C# での最速標準偏差~

Last updated at Posted at 2022-10-01

残念ながら .NET の標準ライブラリーで標準偏差を算出することはできません。
もちろんあります。NuGet に。Math.NET Numerics を使って最速で標準偏差を出しましょう。

環境

  • Visual Studio 2022
  • .NET 6
  • コンソールアプリ

手順

1. NuGet パッケージをインストール

  1. プロジェクトファイルを右クリック
  2. NuGet パッケージの管理(N)... をクリック
  3. 参照 タブで mathnet と検索
  4. MathNet.Numerics をインストール!

image.png
※2022/10/01 現在の最新安定版は 5.0.0

2. 使う

  1. using MathNet.Numerics.Statistics 追加
  2. IEnumerable<double> の拡張メソッド StandardDeviation() or PopulationStandardDeviation() を呼ぶ!
Program.cs
using MathNet.Numerics.Statistics;

Console.WriteLine("Hello, World!");

double[] doubles = { 1.0, 2.0, 3.0, 5.0, 8.0, 13.0 };

// データを標本だとみなす場合
double stdev = doubles.StandardDeviation();
Console.WriteLine(stdev);

// データを母集団全体だとみなす場合
double pstdev = doubles.PopulationStandardDeviation();
Console.WriteLine(pstdev);
出力
Hello, World!
4.501851470969102
4.109609335312651

はやい!

3. 確認してみる

よし、じゃあ Excel 様と比較しましょう。

image.png

Excel 様の有効桁数は15桁なので、下一桁が異なっていますね。実用十分。

まとめ

C# で標準偏差を出したくなったら、Math.NET Numerics を使ってみよう。
Math.NET Numerics には他にも多くの機能があります。これから何度もお世話になりそう。
.NET の標準ライブラリーにあってもいいと思うんだけどなぁ。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2