2017-01-18 17 views
1

У меня есть небольшая проблема с R и статистикой.Доверительный интервал полиномиальной регрессии

я приспособил модель с методом максимального правдоподобия, который дал мне следующие коэффициенты с их стандартными ошибками (среди других оценок параметров):

ParamIndex Estimate  SE   
1   a0 0.2135187 0.02990105 
2   a1 1.1343072 0.26123775 
3   a2 -1.0000000 0.25552696 

Из того, что я могу нарисовать свой кривой:

y= 0.2135187 + 1.1343072 * x - 1 * I(x^2) 

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

По-видимому, я должен использовать распространение или ошибку/неопределенность, но методы, которые я нашел, требуют необработанных данных или больше, чем просто формулы полинома.

Есть ли способ вычисления CI моей кривой, когда SE оценок известны с R?

Благодарим за помощь.


Edit:

Итак, прямо сейчас, у меня есть таблица ковариации (v) получить с помощью функции vcov:

    a0   a1   a2 
    a0 0.000894073 -0.003622614 0.002874075 
    a1 -0.003622614 0.068245163 -0.065114661 
    a2 0.002874075 -0.065114661 0.065294027 

и n = 279.

ответ

1

У вас пока недостаточно информации. Чтобы вычислить доверительный интервал вашей установленной кривой , требуется полная матрица дисперсии-ковариации для ваших трех коэффициентов, но сейчас у вас есть только диагональные элементы этой матрицы.

Если вы установили ортогональный многочлен, то матрица дисперсии-ковариации является диагональной с одинаковыми диагональными элементами. Это, конечно, не ваш случай, так как:

  • стандартные ошибки, которые вы показываете, отличаются друг от друга;
  • вы явно использовали сырой Полином обозначение: x + I(x^2)

, но методы, которые я нашел требую исходных данных

Это не это «сырые данные», используемые для подгонки модели. Это «новые данные», где вы хотите создать доверительный диапазон. Тем не менее, вам нужно знать количество данных, используемых для установки модели, например n, поскольку это необходимо для получения остаточной степени свободы. В вашем случае с 3 коэффициентами эта степень свободы равна n - 3.

После того, как у вас есть:

  • полная матрица ковариационная, скажем V;
  • n, количество данных, используемых для подгонки модели;
  • вектор точек x давая где производить доверительный интервал,

вы можете сначала получить стандартную ошибку предсказания из:

X <- cbind(1, x, x^2) ## prediction matrix 
e <- sqrt(rowSums(X * (X %*% V))) ## prediction standard error 

Вы знаете, как получить прогнозируемые средние, от вашей подогнанной полиномиальной формулы , правильно? Предположим, что среднее значение mu, теперь 95% -ci, используйте

## residual degree of freedom: n - 3 
mu + e * qt(0.025, n - 3) ## lower bound 
mu - e * qt(0.025, n - 3) ## upper bound 

Полная теория находится в How does predict.lm() compute confidence interval and prediction interval?


Update

на основе вашей предоставленной ковариационной матрицы, то теперь можно получить некоторые результаты и цифры.

V <- structure(c(0.000894073, -0.003622614, 0.002874075, -0.003622614, 
0.068245163, -0.065114661, 0.002874075, -0.065114661, 0.065294027 
), .Dim = c(3L, 3L), .Dimnames = list(c("a0", "a1", "a2"), c("a0", 
"a1", "a2"))) 

Предположим, что мы хотим производить CI в x = seq(-5, 5, by = 0.2):

beta <- c(0.2135187, 1.1343072, -1.0000000) 
x <- seq(-5, 5, by = 0.2) 
X <- cbind(1, x, x^2) 
mu <- X %*% beta 
e <- sqrt(rowSums(X * (X %*% V))) 
n <- 279 
lo <- mu + e * qt(0.025, n - 3) 
up <- mu - e * qt(0.025, n - 3) 
matplot(x, cbind(mu, lo, up), type = "l", col = 1, lty = c(1,2,2)) 

enter image description here

+0

Я не знаю, как благодарить вас более, ваша помощь была очень ценится – trantsyx

 Смежные вопросы

  • Нет связанных вопросов^_^