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

机器算法验证 置信区间 非线性回归 配件
2022-03-08 20:14:49

我正在将曲线拟合到我的数据中以提取一个参数。但是,我不确定该参数的确定性是什么以及我将如何计算/表达它95% 置信区间。

假设对于包含呈指数衰减的数据的数据集,我为每个数据集拟合一条曲线。那么我要提取的信息就是指数b. 我知道t和价值a我不感兴趣(这是一个来自人口的变量,而不是我试图建模的过程)。

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

f=aebt
示例数据和拟合

一旦我有我的价值b,我如何计算它95% 置信区间?提前致谢!

2个回答

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

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

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

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 是自由度。

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

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

f=aebt

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

f=abt

f=ln(f)a=ln(a). 可以使用简单的线性回归和对截距和斜率的估计以及获得的标准误差来拟合转换后的数据。如果将临界 t 值和标准误差应用于参数估计,则可以形成该参数估计的置信区间。在 R 中:

# 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(0,σ2).