曲線をフィッティングする場合、フィッティングしたパラメーターの95%信頼区間をどのように計算しますか?


12

1つのパラメーターを抽出するために、データに曲線を適合させています。ただし、そのパラメーターの確実性が何であるか、および%の信頼区間をどのように計算/表現するかはわかりません。95

指数関数的に減衰するデータを含むデータセットについて、各データセットに曲線を当てはめます。次に、抽出したい情報は指数bです。私はtの値と私が興味のないaの値を知っていますa(これは、母集団からの変数であり、Imがモデル化しようとしているプロセスではありません)。

これらのパラメーターを近似するために、非線形回帰を使用します。ただし、どの方法でも95%信頼区間を計算する方法がわからないので、より幅広い回答も歓迎します。

f=aebt
データの例と適合

bの値を取得したらb、その95%信頼区間をどのように計算しますか?前もって感謝します!


どのようにデータを適合させますか?OLSに適合するように関数が変換されていますか?
ジョニー2013年

回答に対するコメントから、実際には非線形最小二乗を行っていることがわかります。その情報から始めれば、より迅速に良い答えが得られたでしょう。少なくとも関連するタグを追加しました。
Glen_b-2013

@Glen_b Ah将来的にはより完全になるでしょう。それを質問に追加してください。しかし、私は考えました。一部のデータセットでは絶対L1距離を使用しますが、それ以外の場合は線形回帰を使用します。だから私は幅広い答えを得ることを望んでいた。
2013年

最小二乗、L1回帰、非線形最小二乗の回答が必要な場合は、それについて明示することが最善です。
Glen_b-2013

回答:


10

線形化してから線形回帰を使用する場合の問題は、残差のガウス分布の仮定が、変換されたデータに対して当てはまらない可能性があることです。

通常は、非線形回帰を使用することをお勧めします。ほとんどの非線形回帰プログラムは、最適なパラメーターの標準誤差と信頼区間を報告します。そうでない場合は、これらの方程式が役立つ場合があります。

各標準誤差は、次の方程式を使用して計算されます。

SE(Pi) = sqrt[ (SS/DF) * Cov(i,i) ]

  • Pi:i番目の調整可能な(非定数)パラメーター
  • SS:残差の2乗の合計
  • DF:自由度(データポイントの数から回帰により当てはまるパラメーターの数を引いたもの)
  • Cov(i、i):共分散行列のi番目の対角要素
  • sqrt():平方根

そして、これは、最適な値、その標準誤差、および自由度の数から各パラメーターの信頼区間を計算する方程式です。

From [BestFit(Pi)- t(95%,DF)*SE(Pi)]  TO  [BestFit(Pi)+
 t(95%,DF)*SE(Pi)] 
  • BestFit(Pi)はi番目のパラメーターの最適値です
  • tは、指定された数のDFの95%信頼度のt分布からの値です。
  • DFは自由度です。

    95%の信頼度(つまりalpha = 0.05)と23の自由度を持つExcelの例:= TINV(0.05,23)DFは自由度に等しい(データポイントの数から回帰によってフィットするパラメーターの数を引いたもの)


これはまさに私が必要としたものです、ありがとう!Matlabでlsqcurvefitを使用しましたが、信頼区間や標準誤差は出力されません。これは、ラグランジュ乗数(?)、残差、および残差の2乗2ノルムを示します。これとあなたの答えで、私は必要なものを計算できます!
レオ

3

あなたのデータに適切なモデルを信じるなら:

f=aebt

次に、適切なモデルが次のようになるように応答データをログ変換できます。

f=abt

と。変換されたデータは、単純な線形回帰と、得られた標準誤差と共に切片と勾配の推定を使用して近似できます。臨界t値と標準誤差がパラメーター推定に適用される場合、そのパラメーター推定の信頼区間を形成できます。R:a = l n a f=ln(f)a=ln(a)

# Rough simulated data set.
set.seed(1)
a <- 50; b <- 0.2; n <- 25
x <- 1:n
y <- a*(exp(-b * x))
y <- y + rnorm(n, sd=0.25)
y <- ifelse(y>0, y, 0.1)
plot(x,y)

# Linearise:
y2 <- log(y)
plot(x,y2)

# Fit model to transformed data
model <- lm(y2 ~ x)
summary(model)
confint(model)

# Or:
param <- summary(model)$coefficients[, 1]; se <- summary(model)$coefficients[, 2]
param + qt(0.975, 23) * se
param - qt(0.975, 23) * se

予測にモデルを使用している場合は、SLRの仮定が満たされていることを必ず確認してください-iid〜N。 N(0,σ2)


ああありがとう!とても素敵で完全な答えです!これは、線形化フィットを行う場合に使用できます。この場合、私の質問は線形化された適合についてではなかったので、私がHarveysの回答を受け入れても構わないと思います。それでも有用な答えです!
レオ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.