このトピックでは Infragistics Math Calculators™ ライブラリの一部である CorrelationCalculator を紹介し、コード例と共にデータセット内の 2 変数間の相関の計算方法を説明します。
統計において、データ相関はピアソンの積率相関係数 (PPMCC、Pearson’s product-moment correlation coefficient) と呼ばれることがあります。相関はデータセット内の 2 変数間の線形関連性を測定します。さらに、それらの変数間の線形関連性の程度についても示します。相関係数は CorrelationCalculator クラスを用いて計算されます。
相関係数は 2 変数の共分散をそれらの標準偏差の積で割って得られます。
where
図 1 - データ相関計算のための式
相関係数は正から負までの値をとります。係数が -1 または 1 に近いほどデータセットの変数間の関係が強いということになります。完全な正の相関 (増加) の場合、係数は +1 になります。完全な負の相関 (減少) の線形関係の場合は -1 で、それ以外の場合は -1 と 1 の間の値になります。係数がゼロに近づくほどデータセットの変数間の関係が少なくなります。
表 1 - データ相関のタイプ
このセクションでは CorrelationCalculator オブジェクトのプロパティのリストを提供します。
CorrelationCalculator を使用するためには、次の NuGet パッケージ参照を WPF プロジェクトに追加する必要があります。
Infragistics.WPF.Math.Calculators
NuGet フィードのセットアップと NuGet パッケージの追加の詳細については、NuGet フィード ドキュメントを参照してください。
CorrelationCalculator はデータ バインディングのための ItemsSource プロパティとデータ マッピングのための XMemberPath と YMemberPath プロパティを使用します。次の要件に合致するオブジェクトはすべてこのプロパティにバインドできます。
データ モデルは IEnumerable インターフェイス (たとえば リスト、 コレクション、 キュー、 スタック) を実装しなければなりません。
データ モデルには相関を計算するために少なくとも 2 つの数値データ列をもつ項目がなければなりません。
上記の基準を満たすオブジェクトの例は CorrelationDataSample で、 相関データの例リソースからダウンロードしてプロジェクトで使用できます。
この例は CorrelationCalculatorを用いてデータの集合の 2 変数間の相関を計算する方法を説明しています。CorrelationCalculator は非視覚的な要素で、データソースを定義するのと同じようにアプリケーション、ページ、またはコントロールのレベルでリソースセクションに定義する必要があります。CorrelationCalculator を xamDataChart コントロールに統合する方法についての例は シリーズ データの相関トピックを参照してください。
XAML の場合:
xmlns:ig="http://schemas.infragistics.com/xaml" xmlns:local="clr-namespace:Infragistics.Samples.Data.Models.Series"
XAML の場合:
<local:CorrelationDataSample x:Key="Data"/> <ig:CorrelationCalculator x:Key="CorrelationCalc" XMemberPath="X" YMemberPath="Y" ItemsSource="{StaticResource Data}"> </ig:CorrelationCalculator>
Visual Basic の場合:
Imports Infragistics.Samples.Data.Models.Series Imports Infragistics.Math.Calculators '... Dim data As New CorrelationDataSample() Dim correlationCalc As New CorrelationCalculator() correlationCalc.ItemsSource = data correlationCalc.XMemberPath = "X" correlationCalc.YMemberPath = "Y" Dim correlation As Double = correlationCalc.Value
C# の場合:
using Infragistics.Samples.Data.Models.Series; using Infragistics.Math.Calculators; //... CorrelationDataSample data = new CorrelationDataSample(); CorrelationCalculator correlationCalc = new CorrelationCalculator(); correlationCalc.ItemsSource = data; correlationCalc.XMemberPath = "X"; correlationCalc.YMemberPath = "Y"; double correlation = correlationCalc.Value;