3

力関係を持つデータセット (以下) があります。(Y =aX^b)

Excel と xmgrace のパワー フィットでは、ほぼ同じフィット値が得られました。(0.993 の R^2) Y = 215.47 X^0.812

ただし、R の nls() 関数を試すと、別の値が得られます。さらに、統計的に健全ではないため、R^2 を計算しません。

ただし、対数を取ると、lm() を実行して R^2 0.993 を取得できます。Excel と xmgrace が生成する値を、R を使用してパワー フィットで再現するにはどうすればよいですか? R の nls() は正しくありませんか??

Drift Time  Mass_Independent CS
2.32    407.3417277
2.32    419.1267553
2.81    503.9859708
2.92    501.0465281
3.78    640.9024985
4.00    688.7906761
4.48    776.3958584
5.67    918.9991003
6.05    949.4448047
6.86    993.9763311
6.86    1064.539603
6.97    1041.422648
7.94    1112.407393
8.42    1183.070416
9.23    1302.622263
9.29    1291.525748
4

1 に答える 1

4

R の見積もりよりも Excel の見積もりを信頼するのはばかげていると思います。回帰の分野での Excel の欠点は、長年にわたり、十分に文書化されています。

 nls(Mass_Ind_CS ~a*Drift_Time^b , dat, start=list(a=100, b=1))
#---------------------
Nonlinear regression model
  model:  Mass_Ind_CS ~ a * Drift_Time^b 
   data:  dat 
       a        b 
227.0176   0.7828 
 residual sum-of-squares: 10224

Number of iterations to convergence: 5 
Achieved convergence tolerance: 3.617e-06 
#---------------------
 plot(dat, xlim=range(dat$Drift_Time), ylim=range(dat$Mass_Ind_CS) )
 par(new=T)
 curve(215.47*x^0.812, from=min(dat$Drift_Time), 
                        to=max(dat$Drift_Time),
                         ylim=range(dat$Mass_Ind_CS) )
 par(new=T)
 curve(227.0176*x^0.7828, from=min(dat$Drift_Time), 
                          to=max(dat$Drift_Time), 
                          ylim=range(dat$Mass_Ind_CS),col="red")

R 推定値は赤でプロットされます。x=値の範囲にわたる予測を見ずにパラメーター推定に焦点を当てるのは間違っていることを示しています。を使用してモデル比較を行うことはできますが、孤立した非線形モデルを推定するための実際の R-sq はありませんanova()。nls の作成者 (Douglas Bates)がそれらを含めなかった理由を調べてみてください。これは実質的に r-help メーリング リストの FAQ です。

ここに画像の説明を入力

于 2012-02-11T02:16:56.740 に答える