2

これは、Y データに使用しているデータです。

0.577032413537833
0.288198874369377
0.192282280031568
0.143824619265244
0.114952782524097
0.0960518606520442
0.0824041879978560
0.0719078360110914
0.0640919744028295
0.0572120310249072
0.0519630635470660
0.0479380073164273
0.0443712721513307

X は単に 1 から 13 までの整数値であり、これはかなり高い R 2 乗値 (1) を使用して MATLAB で GUI cftool を実行することにより、形式 a*x^b+c の累乗関数であることを知っています (1)

コマンドラインでフィットを実行するには、次を使用しました。

>> g = fittype('a*x^b+c','coeff',{'a','b','c'})
>> x=1:13;
>> [c3,gof3] = fit(x',B3(:,1),g)

これにより、

c3 =

 General model:
   c3(x) = a*x^b+c
 Coefficients (with 95% confidence bounds):
   a =        -179  (-1.151e+005, 1.148e+005)
   b =    0.001066  (-0.6825, 0.6847)
   c =       179.5  (-1.148e+005, 1.151e+005)

gof3 =

       sse: 0.0354
   rsquare: 0.8660
       dfe: 10
adjrsquare: 0.8392
      rmse: 0.0595

と同じではありません

General model Power2:
       f(x) = a*x^b+c
Coefficients (with 95% confidence bounds):
   a =      0.5771  (0.5765, 0.5777)
   b =      -1.001  (-1.004, -0.9983)
   c = -8.972e-005  (-0.0005845, 0.000405)

Goodness of fit:
  SSE: 4.089e-007
  R-square: 1
  Adjusted R-square: 1
  RMSE: 0.0002022

cftool GUI インターフェイスで回帰を実行すると得られるものです。一見モデルとはかなり異なる結果をもたらす、ここで欠けているオプションは何ですか? そのa = -179は非常に怪しいです....

ご意見をお寄せいただきありがとうございます。

また、それらを整理したら、適合モデルから特定の値のみを取得する方法はありますか? たとえば、A の値だけに関心があるとします。

gof の場合は gof.rsquare... などを使用して抽出できることはわかっていますが、cfit の場合はどうでしょうか。

4

1 に答える 1

4

やってみたところ

>> g = fittype('a*x^b+c','coeff',{'a','b','c'})
>> x=1:13;
>> [c3,gof3] = fit(x',B3(:,1),g)

私は得た

Warning: Start point not provided, choosing random start point. 
> In Warning>Warning.throw at 31
  In fit>iFit at 320
  In fit at 109 

だから私はそれを

>> [c3,gof3] = fit(x', B3(:,1),g, 'Startpoint', [0 0 0])

それは私に与えます

c3 = 

     General model:
     c3(x) = a*x^b+c
     Coefficients (with 95% confidence bounds):
       a =      0.5771  (0.5765, 0.5777)
       b =      -1.001  (-1.004, -0.9983)
       c =  -8.972e-05  (-0.0005844, 0.000405)

cftoolこれは実際、 GUIから取得したものに非常に近いものです。

おそらく、「ランダムな開始点」は、CLI の適合性よりも GUI の方がはるかに優れていたため、幸運でした。

これらの結果を一貫して生成できる場合は、使用可能な場合はグローバル最適化ツールボックスまたは同様のスキームも使用するように GUI をプログラムする必要があります。しかし、それはただの勝手な憶測です。

于 2012-11-27T06:34:16.333 に答える