主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

重み付き非線形回帰

この例では,非定数誤差分散があるデータの非線形回帰モデルを近似する方法を示します。

測定誤差の分散がすべて同じである場合,通常の非線形最小二乗アルゴリズムが適しています。この前提条件が当てはまらない場合は,重み付き近似が適しています。この例では,関数fitnlmで重み付けを使用する方法を示します。

近似のためのデータとモデル

収集したデータを使用して,産業廃棄物と家庭廃棄物に起因する水質汚染について研究します。これらのデータは,盒子,G.P。W.G.猎人,猎人和J.S.二人主持,统计实验(威利,1978年,页。483 - 487年)で詳しく説明されています。応答変数は,生化学的酸素要求量(毫克/升)で,予想変数は培養時間(日数)です。

X = [1 2 3 5 7 10]';Y = [109 149 149 191 213 224]';情节(x, y,“柯”);包含(“孵化(天),x ');ylabel ('生化需氧量(mg/l), y');

最初2回の観測は,残りの観測よりも低い精度で行われたことがわかっていると仮定します。たとえば,異なる器具を使用して行った場合などです。データに重みを付けるもう1つの理由は,記録された各観測値が実際には同じ値xを使用して行った複数の測定の平均であるためです。ここで使用するデータでは,最初の2つの値が1回の生の測定値を表し,残りの4つの値がそれぞれ5回の生の測定値の平均であるとします。すると,各観測で使用した測定回数によって重みを付けることが適切です。

W = [1 1 5 5 5 5]';

これらのデータにあてはめるモデルは,xが大きくなると共に平坦になるスケーリングされた指数曲線です。

modelFun = @(b,x) b(1).*(1-exp(-b(2).*x));

おおよその視覚的な近似に基づくと,点を経由して描画された曲線は240付近の値(x = 15付近)で横ばい状態になります。240年したがってをb1の開始値として使用し,e ^(闲置* 15)は1に比べて小さいので,。5をb2の開始値として使用します。

开始= [240;5);

重みを使用しないモデルの近似

測定誤差を無視すると,近似が不正確な測定の影響を過度に受けてしまう危険性があり,さらにこれが原因で既知の正確な測定への近似ができなくなる可能性があります。重みを使用せずにデータを近似し,各点と比較してみましょう。

nlm = fitnlm (x, y, modelFun,开始);xx = linspace (0, 12) ';线(xx,预测(nlm, xx),“线型”“——”“颜色”“k”

重みを使用したモデルの近似

近似曲線は最初の2点には引き寄せられていますが,他の点のトレンドには従っていないようです。重みを使用した近似を繰り返してみましょう。

modelFun wnlm = fitnlm (x, y,开始,“重量”w)线(xx,预测(wnlm, xx),“颜色”“b”
wnlm =非线性回归模型:y ~ b1*(1 - exp(- b2*x)) Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ __________ b1 225.17 10.7 21.045 3.0134e-05 b2 0.40078 0.064296 6.2333 0.0033745观测数:6,误差自由度:4均方根误差:24 R-Squared:0.885 F-statistic vs. zero model: 696, p-value = 8.2e-06

この場合,推定母標準偏差は,重みまたは測定精度1の”標準“観測値の平均誤差を示します。

wnlm。RMSE
ans = 24.0096

どのような分析でも,モデル近似の精度の推定は重要な部分です。係数表示にはパラメーターの標準誤差が表示されますが,信頼区間を計算することもできます。

coefCI (wnlm)
Ans = 195.4650 254.8788 0.2223 0.5793

応答曲線の推定

次に,近似した応答値と,それに対する信頼区間を計算します。既定では,この幅は予測値の点単位の信頼限界に対するものですが,ここでは曲線全体の同時区間を計算します。

[ypred, ypredci] =预测(wnlm, xx,“同时”,真正的);情节(x, y,“柯”xx ypred,“b -”xx ypredci,”乙:“);包含(“x”);ylabel (“y”);传奇({“数据”“加权匹配”95%置信区间的},“位置”“东南”);

曲部では,重みを減らした2つの点は,残りの点ほど正確に近似されないことに注意してください。つまり,重み付き近似には期待されるほどの効果がないということです。

指定値xで将来の観測の予測区間を推定することもできます。これらの区間では,重み(測定精度)が1と実際に仮定されます。

[ypred, ypredci] =预测(wnlm, xx,“同时”,真的,“预测”“观察”);情节(x, y,“柯”xx ypred,“b -”xx ypredci,”乙:“);包含(“x”);ylabel (“y”);传奇({“数据”“加权匹配”“95%预测限制”},“位置”“东南”);

重みの絶対スケールは,パラメーターの推定には影響しません。重みをどの定数で再スケーリングしても,推定結果は同じです。ただし,信頼限界には影響を与えます。これは,重み1の観測値を信頼限界が表しているためです。ここでは,信頼限界と比較すると重みが大きい点は,近似直線に近すぎることがわかります。

预测メソッドで重みを変更することはできませんが,後処理を行って,より正確な推定のために曲線の形状を調査することはできます。ここでは,このプロットの最後の4点と同様に,5つの測定値の平均に基づく新しい観測を行います。区間の幅は1 /√(5)倍に縮小できます。

半宽度= ypredci (:, 2) -ypred;newwidth =半宽度/√(5);Newci = [ypred-newwidth, ypred+newwidth];情节(x, y,“柯”xx ypred,“b -”xx newci,“:”);包含(“x”);ylabel (“y”);传奇({“数据”“加权匹配”“限制重量= 5”},“位置”“东南”);

残差分析

データと近似のプロットに加え,予測子に対する近似からの残差もプロットし,モデルの問題を診断します。残差は独立同一分布で表示されますが,重みの逆数に比例する分散があります。この分散を標準化することにより,プロットの解釈が簡単になります。

r = wnlm.Residuals.Raw;情节(x, r。* sqrt (w),“b ^”);包含(“x”);ylabel ('残差,yFit - y');

この残差プロットには,系統的なパターンが見られます。最後の4つの残差に線形の傾向があることに注意してください。この線形の傾向とは,モデルがxの増大するスピードほど速く増大しないことを示しています。さらにxが増加すると残差の大きさが減少することは,測定誤差がxに依存する可能性を示しています。これを調査する価値はありますが,データ点が少なすぎるため,この明らかなパターンに意味を持たせることは困難です。