Расчет стандартной ошибки после лог-преобразования


19

Рассмотрим случайный набор чисел, которые обычно распределяются:

x <- rnorm(n=1000, mean=10)

Нам бы хотелось знать среднее и стандартную ошибку на среднем, поэтому мы делаем следующее:

se <- function(x) { sd(x)/sqrt(length(x)) }
mean(x) # something near 10.0 units
se(x)   # something near 0.03 units

Большой!

Однако, давайте предположим, что мы не обязательно знаем, что наш оригинальный дистрибутив следует нормальному. Мы лог-трансформируем данные и выполняем те же стандартные вычисления ошибок.

z <- log(x, base=10)
mean(z) # something near 1 log units
se(z)   # something near 0.001 log units

Круто, но теперь нам нужно обратное преобразование, чтобы получить ответ в единицах, а не в логах.

10^mean(z) # something near 10.0 units
10^se(z)   # something near 1.00 units

Мой вопрос: почему для нормального распределения стандартная ошибка отличается в зависимости от того, была ли она рассчитана из самого распределения или была ли она преобразована, рассчитана и обратно преобразована? Примечание: средства вышли одинаковыми независимо от трансформации.

РЕДАКТИРОВАТЬ # 1: В конечном счете, я заинтересован в вычислении среднего и доверительных интервалов для не нормально распределенных данных, так что, если вы можете дать некоторые рекомендации о том, как рассчитать 95% CI для преобразованных данных, включая способы обратного преобразования в их собственные единицы , Буду премного благодарен!
КОНЕЦ РЕДАКТИРОВАНИЯ № 1

РЕДАКТИРОВАТЬ # 2: я попытался использовать функцию квантиля, чтобы получить 95% доверительные интервалы:

quantile(x, probs = c(0.05, 0.95))     # around [8.3, 11.6]
10^quantile(z, probs = c(0.05, 0.95))  # around [8.3, 11.6]

Итак, это сходится на том же ответе, что хорошо. Однако использование этого метода не дает точно такой же интервал, используя ненормальные данные с «маленькими» размерами выборки:

t <- rlnorm(10)
mean(t)                            # around 1.46 units
10^mean(log(t, base=10))           # around 0.92 units
quantile(t, probs = c(0.05, 0.95))                     # around [0.211, 4.79]
10^(quantile(log(t, base=10), probs = c(0.05, 0.95)))  # around [0.209, 4.28]

Какой метод будет считаться «более правильным». Я полагаю, можно было бы выбрать наиболее консервативную оценку?

В качестве примера, могли бы вы сообщить, что этот результат для ненормальных данных (t) имеет среднее значение 0,92 единиц с 95% доверительным интервалом [0,211, 4,79]?
КОНЕЦ РЕДАКТИРОВАНИЯ № 2

Спасибо за ваше время!


1
SE - это SD, деленное на квадратный корень из N. Не только N.
Penguin_Knight

3
Благодарность! Я исправил эту проблему. Проблема у меня остается, хотя.
сбит с толку

Ответы:


12

Ваша главная проблема с первоначальным вычислением - нет веской причины, по которой должен быть похож на . Это вообще совсем другое.esd(log(Y))sd(Y)

В некоторых ситуациях вы можете вычислить грубое приближение из помощью расширения Тейлора .sd(Y)sd(log(Y))

Var(g(X))(g(μX))2σX2.

Если мы считаем случайной величиной в логарифмическом масштабе, то здесьXg(X)=exp(X)

ЕслиVar(exp(X))exp(μX)2σX2

затемsd(exp(X))exp(μX)σX

Эти понятия распространяются на выборочные распределения.

Это имеет тенденцию работать достаточно хорошо, если стандартное отклонение действительно мало по сравнению со средним, как в вашем примере.

> mean(y)
[1] 10
> sd(y)
[1] 0.03
> lm=mean(log(y))
> ls=sd(log(y))
> exp(lm)*ls
[1] 0.0300104 

Если вы хотите преобразовать CI для параметра , он работает путем преобразования конечных точек.

Если вы пытаетесь преобразовать обратно, чтобы получить точечную оценку и интервал для среднего значения по исходной (непогашенной) шкале, вы также захотите отменить оценку среднего (см. Ссылку выше): , поэтому ( очень ) грубый большой интервал выборки для среднего значения может быть , где - верхний и нижний пределы интервала логарифмического масштаба, а - некоторая непротиворечивая оценка .E(exp(X))exp(μX)(1+σX2/2)(c.exp(L),c.exp(U))L,Uc1+σX2/2

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


1
Спасибо Glen_b. Я никогда не узнал этого в классе статистики.
сбит с толку

2
У меня нет репутации, чтобы комментировать, но на случай, если в этом посте случится еще одна любопытная душа, после просмотра ссылки на расширение Тейлора в Википедии, правильная оценка среднего значения должна быть В противном случае, если , вы можете недооценитьexp(μx)σ2XE[exp(X)]
E[f(X)]f(μX)+f(μX)2σX2=exp(μX)(1+σX22)
exp(μx)σX2E[exp(X)]
deasmhumnha

Спасибо @ Дезмонд. Да, это правильно. Я добавлю исправление к своему ответу, что его часть ближе к концу довольно искажена.
Glen_b

0

Похоже, вы действительно хотите геометрическую стандартную ошибку, сродни геометрической средней exp(mean(log(x))).

Хотя может показаться разумным вычислить это как:

exp(sd(log(x)/sqrt(n-1)))

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

exp(mean(log(x))) * (sd(log(x))/sqrt(n-1))

Это среднее геометрическое значение, умноженное на стандартную ошибку логарифма. Это должно очень хорошо аппроксимировать «естественную» стандартную ошибку.

Источник: https://www.jstor.org/stable/pdf/2235723.pdf

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.