При подборе кривой, как рассчитать 95% доверительный интервал для моих подогнанных параметров?


12

Я подгоняю кривые к своим данным, чтобы извлечь один параметр. Однако я не уверен, какова достоверность этого параметра и как я рассчитал бы / выразил его % доверительный интервал.95

Скажем, для набора данных, содержащего данные, которые экспоненциально распадаются, я подгоняю кривую к каждому набору данных. Тогда информация, которую я хочу извлечь, является показателем степени . Я знаю значения и значение меня не интересует (это переменная, которая исходит от населения, а не от процесса, который я пытаюсь смоделировать).bta

Я использую нелинейную регрессию, чтобы соответствовать этим параметрам. Однако я не знаю, как рассчитать % доверительный интервал для любого метода, поэтому приветствуются и более широкие ответы.95

f=aebt
пример данных и подгонка

Как только я получу значение , как рассчитать % доверительный интервал? Заранее спасибо!b95


Как вы подходите данные? Ваша функция преобразована так, чтобы соответствовать OLS?
Джонни

Из ваших комментариев по ответам я вижу, что вы на самом деле делаете нелинейные наименьшие квадраты. У вас были бы хорошие ответы быстрее, если бы вы начали с этой информации. Я, по крайней мере, добавил соответствующий тег.
Glen_b

@Glen_b Ах, я буду более полон в будущем и добавлю это к вопросу. Я думал о том, однако. В некоторых наборах данных я использую абсолютное расстояние L1, а в других случаях все еще использую линейную регрессию. Поэтому я надеялся получить широкий ответ.
Лев

Если вы хотите получить ответы для наименьших квадратов, регрессии L1 и нелинейных наименьших квадратов, лучше всего об этом прямо заявить.
Glen_b

Ответы:


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 - это значение из распределения t для 95% достоверности для указанного количества DF.
  • DF - это степени свободы.

    Пример с Excel для 95% достоверности (т. Е. Альфа = 0,05) и 23 степеней свободы: = TINV (0,05,23) DF равняется степеням свободы (количество точек данных минус число параметров, подходящих по регрессии)


Это именно то, что мне было нужно, спасибо! Я использовал lsqcurvefit в Matlab , он не выводит доверительный интервал или стандартную ошибку. Он дает множители Лагранжа (?), Невязки и возведенную в квадрат 2-норму невязок. Теперь с этим и вашим ответом я могу рассчитать, что мне нужно!
Лев

3

Если вы считаете, что подходящей моделью для ваших данных является:

f=aebt

Затем вы можете взять журнал преобразовать ваши данные ответа так, чтобы подходящая модель была:

f=abt

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

 N(0,σ2)


Ах, спасибо! Очень хороший и полный ответ! Это я могу использовать, если я делаю линеаризованную подгонку, что я иногда делаю. Я надеюсь, что вы не возражаете, что я принимаю ответ Харвиса, так как в этом случае мой вопрос был не о линеаризованном подходе. Тем не менее, полезный ответ!
Лев
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.