2

ヘルプ (predict.nls) で述べたように、se.fit=TRUE の場合、予測の標準誤差を計算する必要があります。ただし、次のコードはそれを表示せず、予測のみを表示します。

alloy <- data.frame(x=c(10,30,51,101,203,405,608,810,1013,2026,4052,6078,
                        8104,10130),
                    y=c(0.3561333,0.3453,0.3355,0.327453,0.3065299,0.2839316,
                        0.2675214,0.2552821,0.2455726,0.2264957,0.2049573,
                        0.1886496,0.1755897,0.1651624))
model <- nls(y ~ a * x^(-b), data=alloy, start=list(a=.5, b=.1))
predict(model, se=TRUE)

コードの何が問題になっていますか? ありがとうございました!

4

1 に答える 1

5

何もない。Descriptionのセクションの最後の行は次のように?predict.nls述べています。

At present ‘se.fit’ and ‘interval’ are ignored.

おそらく、パッケージdeltaMethod内の関数が役立つでしょう。car(結果library("sos"); findFn("{delta method} nls")...)

更新car::deltaMethod:最初の試行では機能しませんでした。パッケージのdeltavar関数を使用してみます。emdbookこれattach()/detach()は恐ろしいハックですが、すぐに機能するようになりました(with非標準の評価のため、ベースのソリューションは機能しませんでした)。改善を歓迎します。)

 attach(alloy)
> deltavar(a*x^(-b),meanval=coef(model),Sigma=vcov(model))
 [1] 1.445018e-04 6.956934e-05 4.897363e-05 3.287949e-05 2.527709e-05
 [6] 2.379668e-05 2.487129e-05 2.626029e-05 2.762930e-05 3.300235e-05
[11] 3.933191e-05 4.317493e-05 4.588509e-05 4.795406e-05
> detach(alloy)

警告:

  • これらは差異であり、標準誤差ではありません。
  • これはデルタ法の近似であり、強い非線形性または強い非ガウス誤差の場合は不正確になる可能性があります(Brian Ripleyは過去に、デルタ法の近似は一般的な使用に十分な信頼性があるとは考えていないと述べたと思いますが、彼は純粋主義者です)
  • 私はこれが賢明な答えであることを確認していません
于 2012-09-14T13:53:48.770 に答える