我如何获得nls(断棍)类对象的置信区间

问题描述 投票:0回答:1

我试图弄清楚如何获取/绘制R中nls对象的置信范围。

例如,这里是一个nls模型

bstick.lm.mean <- nls(TCTmean ~ cbind("intercept" = 1, 
                                      "l2Flow" = l2Flow, 
                                      "l2FlowBr" = ifelse(l2Flow > Br, 
                                                          l2Flow - Br, 0)),
                      start = list(Br = 6), 
                      algorithm = "plinear", 
                      data = flow.new.sum.dat)

所以bstick.lm.mean是nls类对象。

new.seq4 = seq(min(flow.new.sum.dat$l2Flow), max(flow.new.sum.dat$l2Flow), length = 200)
new.seq4 = data.frame(new.seq4)
names(new.seq4) = 'l2Flow'

pz = predict(bstick.lm.mean, newdata = new.seq4, 
             interval = 'confidence', se.fit = TRUE, level = 0.95)
test.frame2 = data.frame(new.seq4,pz)

ggplot(data = test.frame2)+
  geom_point(mapping = aes(x = l2Flow, y = pz),
             shape = 1, col = 'red') +
  geom_point(data = test.frame,
             aes(x = l2Flow, y = TCTmean),
             shape = 0) +
  theme(panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.line = element_line(colour = "black")) +
  xlab("Log2 Flow (KL)") +
  ylab("Mean Transformed Ct")

产生以下情节:

enter image description here

我的问题是,如何获得此非线性图的置信带?我正在回归回归线附近。

r ggplot2 regression nls
1个回答
0
投票

我从散点图中提取了数据进行分析,并进行了方程搜索。我发现几个不同的S形方程最适合数据,对于单个S形方程,使用标准统计软件确定置信区间应该更简单。例如,这是我的双曲线Logistic S形方程的结果,“ y =(a * pow(x,b))/(c + pow(x,b))”,且拟合参数a = 1.6177820755100655E + 01 ,b = -1.5270446610701983E + 01,和c = 4.2601082365916449E-12,得出RMSE = 2.58和R平方= 0.85。同样,有几个同样“好”的S形方程可供选择。

plot1

plot2

© www.soinside.com 2019 - 2024. All rights reserved.