Main Content

nlparci

非線形回帰パラメーターの信頼区間

    説明

    ci = nlparci(beta,r,"Covar",CovB) は、非線形最小二乗のパラメーター推定 beta に対する 95% の信頼区間 ci を返します。nlparci を呼び出す前に、非線形回帰モデルを当てはめるために、関数 nlinfit を使用して推定係数 beta、残差 r、および推定共分散行列 CovB を取得します。

    nlinfit でロバストなオプションを使用する場合、この構文を nlparci に使用する必要があります。ロバスト近似には共分散行列 CovB が必要です。

    ci = nlparci(beta,r,"Jacobian",J) は、非線形最小二乗のパラメーター推定 beta に対する 95% の信頼区間 ci を返します。nlparci を呼び出す前に、非線形回帰モデルを当てはめるために、関数 nlinfit を使用して推定係数 beta、残差 r、およびヤコビアン J を取得します。

    ci = nlparci(___,"Alpha",alpha) は、前述の構文におけるいずれかの入力引数の組み合わせを使用して 100(1 — alpha)% の信頼区間 を返します。

    すべて折りたたむ

    次の形式の指数関数的減衰モデルを当てはめます。

    yi=β1+β2exp(-β3xi)+ϵi,

    ここで、βj は推定するパラメーター、xi はデータ点、yi は応答、εi はノイズ項です。

    このモデルを表す関数ハンドルを記述します。

    mdl = @(beta,x)(beta(1) + beta(2)*exp(-beta(3)*x));

    真のパラメーター値を beta = [1;3;2]、データ点 x をパラメーター 2 による指数分布、およびノイズを平均 0 と標準偏差 0.1 による正規分布とする合成データを作成します。

    rng(9845,'twister') % For reproducibility
    beta = [1;3;2];
    x = exprnd(2,100,1);
    epsn = normrnd(0,0.1,100,1);
    y = mdl(beta,x) + epsn;

    任意の値 beta0 = [2;2;2] から始まるデータにモデルを当てはめます。

    beta0 = [2;2;2];
    [betahat,r,J,CovB,mse] = nlinfit(x,y,mdl,beta0);
    betahat
    betahat = 3×1
    
        1.0153
        3.0229
        2.1070
    
    

    共分散行列を使用して 95% の信頼区間を確認します。真のパラメーター値 [1;3;2] が 3 つのすべての区間に含まれることに注意してください。

    ci = nlparci(betahat,r,"Covar",CovB)
    ci = 3×2
    
        0.9869    1.0438
        2.9401    3.1058
        1.9963    2.2177
    
    

    ヤコビアンを使用して同じ結果を取得できます。

    ci = nlparci(betahat,r,"Jacobian",J)
    ci = 3×2
    
        0.9869    1.0438
        2.9401    3.1058
        1.9963    2.2177
    
    

    これよりも範囲が狭い 90% の信頼区間に真のパラメーター値 [1;3;2] が含まれるかどうかを調べます。β1β2 はそれらの区間に含まれますが、β3 は含まれないことに注意してください。

    ci = nlparci(betahat,r,"Covar",CovB,"Alpha",0.1)
    ci = 3×2
    
        0.9915    1.0392
        2.9536    3.0923
        2.0144    2.1996
    
    

    90% の信頼区間の推定回帰係数をプロットします。

    lowerBars = betahat - ci(:,1);
    upperBars = ci(:,2) - betahat;
    errorbar(1:3,betahat,lowerBars,upperBars,'*'), grid
    title('Estimated Regression Coefficients with 90% Confidence Intervals')
    ylabel('Coefficient Value')
    xlabel('Estimated Regression Coefficient \beta_j, j = 1,2,3')
    xticks([1 2 3])
    xlim([.8 3.2])

    Figure contains an axes object. The axes object with title Estimated Regression Coefficients with 90% Confidence Intervals, xlabel Estimated Regression Coefficient beta indexOf j baseline , blank j blank = 1,2,3, ylabel Coefficient Value contains an object of type errorbar.

    入力引数

    すべて折りたたむ

    推定回帰係数。関数 nlinfit で返される数値ベクトルとして指定します。

    データ型: single | double

    残差。関数 nlinfit で返される数値ベクトルとして指定します。

    データ型: single | double

    当てはめた係数 beta の推定共分散行列。関数 nlinfit で返される数値行列として指定します。

    データ型: single | double

    推定ヤコビアン。関数 nlinfit で返される数値行列として指定します。

    データ型: single | double

    信頼区間の有意水準。範囲 (0,1) のスカラー値として指定します。信頼水準は 100(1 — alpha)% です。alpha は、真の値が信頼区間に含まれない確率です。

    既定の信頼水準は 95% (alpha = 0.05) です。

    例: "Alpha",0.1

    データ型: single | double

    出力引数

    すべて折りたたむ

    推定回帰係数の信頼区間。N 行 2 列の数値行列として返されます。ここで、N は beta の行数です。ci の 1 列目は信頼区間の下限を表し、2 列目は上限を表します。

    データ型: single | double

    アルゴリズム

    • nlparci は、残差 r またはヤコビアン JNaN 値を欠損値として扱い、対応する観測値を無視します。

    • 信頼区間の計算は、残差 r の長さが係数 beta の長さを超え、ヤコビアン J の列がフル ランクであるシステムに対して有効です。J が悪条件の場合、信頼区間は不正確になることがあります。

    代替機能

    信頼区間は、nlinfit の代わりに関数 fitnlmnlparci の代わりに関数 coefCI を使用して取得することもできます。

    バージョン履歴

    R2006a より前に導入