多重回帰

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;
}

結果を出力

計算が完了したら、スクリプトウィンドウ、結果ログ、ワークシートなどに結果を出力できます。

詳細は、結果ウィンドウに出力ワークシートに出力 のセクションを確認してください( 分析とアプリケーション:カーブフィッティング:線形フィット