C# の標準偏差

Muhammad Maisam Abbas 2023年10月12日
  1. C# の自己定義メソッドによる標準偏差
  2. C# の拡張機能による標準偏差
C# の標準偏差

このチュートリアルでは、C# でリストの要素の標準偏差を見つける方法を紹介します。

C# の自己定義メソッドによる標準偏差

標準偏差は、統計の平均からの分散の尺度です。これは、平均値からの各要素の差の 2 乗を取り、すべての 2 乗値を加算し、回答を値の総数で除算し、結果の値の平方根をとることによって計算されます。

標準偏差

残念ながら、C# の標準偏差を計算するための組み込みメソッドはありません。しかし、それを計算するためのロジックを定義することはできます。次のコード例は、C# でリスト内の要素の標準偏差を見つける方法を示しています。

using System;
using System.Collections.Generic;
using System.Linq;

namespace sd_list {
  class Program {
    static double standardDeviation(IEnumerable<double> sequence) {
      double result = 0;

      if (sequence.Any()) {
        double average = sequence.Average();
        double sum = sequence.Sum(d => Math.Pow(d - average, 2));
        result = Math.Sqrt((sum) / sequence.Count());
      }
      return result;
    }
    static void Main(string[] args) {
      List<double> intList = new List<double> { 1, 2, 3, 4, 5 };
      double standard_deviation = standardDeviation(intList);
      Console.WriteLine("Standard Deviation = {0}", standard_deviation);
    }
  }
}

出力:

Standard Deviation = 1.4142135623731

上記のコードでは、C# の double のリストの要素の標準偏差を計算する関数 standardDeviation() を作成しました。まず、sequence.Average() 関数を使用して値の平均を計算しました。次に、平均から個々の値の差の 2 乗の合計を計算し、それを sum 変数に保存しました。最後に、合計を値の総数で割り、その平方根を計算しました。この計算の結果を result 変数内に保存し、result 変数を返しました。

C# の拡張機能による標準偏差

前の例で説明したロジックは、使いやすさのために拡張関数に変換することもできます。次のコード例は、前の例のロジックを C# の拡張メソッドに変更する方法を示しています。

using System;
using System.Collections.Generic;
using System.Linq;

namespace sd_list {
  public static class ExtensionClass {
    public static double standardDeviation(this IEnumerable<double> sequence) {
      double average = sequence.Average();
      double sum = sequence.Sum(d => Math.Pow(d - average, 2));
      return Math.Sqrt((sum) / sequence.Count());
    }
  }
  class Program {
    static void Main(string[] args) {
      List<double> intList = new List<double> { 1, 2, 3, 4, 5 };
      double standard_deviation = intList.standardDeviation();
      Console.WriteLine("Standard Deviation = {0}", standard_deviation);
    }
  }
}

出力:

Standard Deviation = 1.4142135623731

上記のコードでは、以前のコードを C# の拡張メソッドに変換しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp Math