拟合曲线时,如何计算拟合参数的95%置信区间?


12

我正在为数据拟合曲线以提取一个参数。但是,我不确定该参数的确定性以及如何计算/表示其%置信区间。95

假设数据集包含指数衰减的数据,我将曲线拟合到每个数据集。那么我要提取的信息就是指数。我知道的值ŧ和价值,我没有兴趣的(那是来自人口变量,而不是过程我试着去模型)。bta

我使用非线性回归来拟合这些参数。但是,我不知道如何为任何方法计算%置信区间,因此也欢迎使用更广泛的答案。95

f=aebt
示例数据和拟合

获得值后,如何计算其95%的置信区间?提前致谢!b95


您如何拟合数据?是否已对功能进行了转换以适合OLS?
约翰尼,

从您对答案的评论中可以看出,您实际上正在做非线性最小二乘。如果您开始使用这些信息,将会更快地得到好的答案。我至少添加了一个相关标签。
Glen_b-恢复莫妮卡

@Glen_b以后,我会更加完善,并将其添加到问题中。我确实考虑过。对于某些数据集,我使用绝对L1距离,而其他时候我仍使用线性回归。所以我希望得到一个广泛的答案。
狮子座

如果您想要最小二乘,L1回归和非线性最小二乘的答案,则最好对此进行明确说明。
Glen_b-恢复莫妮卡

Answers:


10

线性化然后使用线性回归的问题在于,残差的高斯分布假设对于转换后的数据而言不太可能是正确的。

通常最好使用非线性回归。大多数非线性回归程序会报告最佳拟合参数的标准误差和置信区间。如果您的答案不正确,这些方程式可能会有所帮助。

使用以下公式计算每个标准误差:

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

  • Pi:第i个可调(非恒定)参数
  • SS:残差平方和
  • 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是自由度。

    以Excel为例,具有95%的置信度(因此alpha = 0.05)和23个自由度:= TINV(0.05,23)DF等于自由度(数据点数减去通过回归拟合得到的参数数)


这正是我所需要的,谢谢!我在Matlab中使用了lsqcurvefit ,它不输出置信区间或标准误差。它给出了拉格朗日乘数(?),残差和残差的平方2范数。现在,有了您的答案,我就可以计算出我需要的!
狮子座

3

如果认为适合您的数据的模型是:

F=一种Ë-bŤ

然后,您可以进行日志转换响应数据,以使合适的模型为:

F=一种-bŤ

F=ñF一种=ñ一种

# 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

 ñ0σ2


啊,谢谢!一个非常好的和完整的答案!如果我进行线性拟合,可以使用此方法,有时也可以这样做。我希望您不要介意我接受Harveys的回答,因为在这种情况下,我的问题不是线性拟合。仍然是一个有用的答案!
狮子座
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.