多重回帰Origin は、ocmath_multiple_linear_regression関数を使用して多重回帰を行います。この関数は、データの重みと線形回帰オプションを提供しています。この関数を実行した後、フィットパラメータやANOVA統計、推定の共分散と相関の行列といった詳細な出力が可能です。
次のセクションでは、この関数を使用して多重線形回帰を実行する方法を示します。
線形多重回帰を実行
多重線形回帰を実行する前に、データをインポートします。ここでは、3つの独立変数と1つの従属変数が必要です。
1.多重線形回帰のためのデータをロードします。独立データyは、matrixに、従属データはvectorに格納する必要があります。
// 1. 多重線形回帰のデータを取得
Worksheet wks = Project.ActiveLayer();
if( !wks )
return; // データのワークシートがアクティブであることを確認
DataRange dr;
dr.Add("X", wks, 0, 0, -1, 2); // 最初の3列
dr.Add("Y", wks, 0, 3, -1, 3); // 4列目
matrix mX;
dr.GetData(mX, 0, 0); // 最初の3列のデータをmatrixへ取得
vector vY;
dr.GetData(&vY, 1); // 4列目のデータを取得
2.パラメータ初期値を宣言して関数に渡します。
// 2. 入力と出力変数を用意
UINT nOSizeN = mX.GetNumRows(); // 観測数
UINT nVSizeM = mX.GetNumCols(); // 独立変数の合計数
LROptions stLROptions; // 線形回帰オプションの設定のために使用
stLROptions.UseReducedChiSq = 1;
FitParameter stFitParameters[4]; // nVSizeM+1にする
UINT nFitSize = nVSizeM+1; // FitParameterのサイズ
RegStats stRegStats; // フィットの統計取得のために使用
RegANOVA stRegANOV; // anova統計取得のために使用
3.用意したパラメータを関数に渡し、多重線形回帰を実行します。
// 3. 多重線形回帰を実行
// ここでは推定の共分散と相関の行列は取得せず、重みも使用しない
int nRet = ocmath_multiple_linear_regression(mX, nOSizeN, nVSizeM, vY, NULL,
0, &stLROptions, stFitParameters, nFitSize, &stRegStats, &stRegANOV);
if( nRet != STATS_NO_ERROR )
{
out_str("Error");
return;
}
結果を出力
計算が完了したら、スクリプトウィンドウ、結果ログ、ワークシートなどに結果を出力できます。
詳細は、結果ウィンドウに出力、ワークシートに出力 のセクションを確認してください( 分析とアプリケーション:カーブフィッティング:線形フィット )
|