Как я могу получить доверительные интервалы для объекта класса NLS (сломанной палкой) - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь выяснить, как получить / построить доверительные границы для объектов nls в R.

Например, вот модель 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

Мой вопрос заключается в том, как получить доверительные интервалы дляэто нелинейный сюжет? Я ссылаюсь на полосы вокруг линии регрессии.

1 Ответ

0 голосов
/ 26 октября 2019

Я извлек данные из диаграммы рассеяния для анализа и выполнил поиск по уравнению. Я обнаружил, что несколько различных сигмоидальных уравнений лучше всего подходят для данных, и для отдельных сигмоидальных уравнений проще определить доверительные интервалы с помощью стандартного статистического программного обеспечения. В качестве примера, вот мои результаты для сигмоидального уравнения гиперболической логистики "y = (a * pow (x, b)) / (c + pow (x, b))", с подобранными параметрами a = 1.6177820755100655E + 01, b = -1,5270446610701983E + 01 и с = 4,2601082365916449E-12, получая RMSE = 2,58 и R-квадрат = 0,85. Опять же, было несколько одинаково «хороших» сигмоидальных уравнений на выбор.

plot1

plot2

...