このトピックでは Infragistics Math Calculators ライブラリの一部である StandardDeviationCalculator を紹介し、コード例と共に数の集合に対する 母標準偏差の計算方法を説明します。
標準偏差は平均の周囲のデータセットの分散を測定します。標準偏差の計算は値の平均からどの程度の差異があるかを示すために使われます。標準偏差の高い値はデータ セットの多くが幅広い値に散らばっていることを示し、一方小さい標準偏差は数値がデータ セットの平均近くに多くあることを示します。
標準偏差は変数と平均の間の平方差の合計 ( Infragistics Mean Calculator トピックを参照) の平方根を集合の総数で割って得られます。また、標準偏差は数値の集合の バリアンス ( インフラジスティックスのバリアンス計算 トピックを参照してください) の平方根と同値です。
図 1 - 標準偏差計算のための式
このセクションでは StandardDeviationCalculator クラスのプロパティのリストを提供します。
StandardDeviationCalculator を使用するためには、次のアセンブリを WPF プロジェクトに追加する必要があります。
StandardDeviationCalculator はデータ バインディングのための ItemsSource プロパティとデータ マッピングのための ValueMemberPath プロパティを使用します。次の要件に合致するオブジェクトはすべてこのプロパティにバインドできます。
データ モデルは IEnumerable インターフェイス (たとえば リスト、 コレクション、 キュー、 スタック) を実装しなければなりません。
データ モデルには標準偏差を計算するために少なくとも 1 つの数値データ列をもつ項目がなければなりません。
上記の条件を満たすオブジェクトの例が次のコード例に示されています。
Visual Basic の場合:
Imports System.Collections.Generic
'...
Public Class DataPointList
Inherits List(Of DataPoint)
Public Sub New(dataValues As IEnumerable(Of Double))
For Each value As Double In dataValues
Me.Add(New DataPoint() With { Key .Value = value })
Next
End Sub
End Class
Public Class DataPoint
Public Property Value() As Double
Get
Return _value
End Get
Set
_value = Value
End Set
End Property
Private _value As Double
End Class
C# の場合:
using System.Collections.Generic;
//...
public class DataPointList : List<DataPoint>
{
public DataPointList(IEnumerable<double> dataValues)
{
foreach (double value in dataValues)
{
this.Add(new DataPoint { Value = value});
}
}
}
public class DataPoint
{
public double Value { get; set; }
}
この例は StandardDeviationCalculator を用いて数値の集合の標準偏差を計算する方法を説明しています。StandardDeviationCalculator は視覚的な要素で、データソースまたは変数を定義するのと同じようにアプリケーション、ページ、コントロール、またはコードビハインドに関してリソース セクションに定義する必要があります。さらに、Series オブジェクトの誤差範囲を計算するために、StandardDeviationCalculator を xamDataChart™ コントロールに統合する方法を例示する シリーズ誤差範囲トピックを参照してください。
Visual Basic の場合:
Imports Infragistics.Math.Calculators
'...
Dim data As New DataPointList(New List(Of Double)() From { 5.0, 1.0, 2.0, 3.0, 4.0 })
Dim calculator As New StandardDeviationCalculator()
calculator.ValueMemberPath = "Value"
calculator.ItemsSource = data
Dim standardDeviation As Double = calculator.Value
C# の場合:
using Infragistics.Math.Calculators;
//...
DataPointList data = new DataPointList(new List<double> { 5.0, 1.0, 2.0, 3.0, 4.0 });
StandardDeviationCalculator calculator = new StandardDeviationCalculator();
calculator.ValueMemberPath = "Value";
calculator.ItemsSource = data;
double standardDeviation = calculator.Value;