Как я могу проверить, существенно ли отличаются оценки двух параметров в одной и той же модели?

12

У меня есть модель

y=xa×zb+e

где - зависимая переменная, и - объясняющие переменные, и - параметры, а - термин ошибки. У меня есть оценки параметров и и ковариационная матрица этих оценок. Как мне проверить , значительно ли отличаются и ?yxzabeabab

К. Рулофс
источник

Ответы:

16

Оценка гипотезы о том, что и различны, эквивалентна проверке нулевой гипотезыabab=0 (против альтернативы ).ab0

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

U=a^b^.
Yy

Дисперсия может быть выражена в терминах ковариационной матрицы из какU(cij)(a^,b^)

Var(U)=Var(a^b^)=Var(a^)+Var(b^)2Cov(a^,b^)=c11+c222c122.

Когда является оценена с методом наименьших квадратов, один , как правило , использует «T тест;» то есть распределение аппроксимируется распределением Стьюдента t с степенями свободы (где - количество данных, а - количество коэффициентов ). Независимо от этого, обычно является основой любого теста. Вы можете выполнить Z-тест (когда большое или при подборе с максимальным правдоподобием) или загрузить его, например.(a^,b^)т = U /

t=U/Var(U)
n-2n2tnn2n2tn

Чтобы быть точным, р-значение t-теста определяется как

p=2tn2(|t|)

где - функция распределения t (накопительная) Стьюдента. Это одно выражение для «хвостовой области»: вероятность того, что переменная Стьюдента t (с степенями свободы) равна или превышает размер статистики теста,tn2n2|t|.


В целом, для чисел и вы можете использовать точно такой же подход, чтобы проверить любую гипотезуc1, c2,μ

H0:c1a+c2b=μ

против двусторонней альтернативы. (Это охватывает особый, но широко распространенный случай «контраста» .) Используйте оценочную матрицу дисперсии-ковариации чтобы оценить дисперсию и сформировать статистику(cij)U=c1a+c2b

t=(c1a^+c2b^μ)/Var(U).

Вышеизложенным является случай и(c1,c2)=(1,1)μ=0.


Чтобы убедиться, что этот совет верен, я запустил следующий Rкод, чтобы создать данные в соответствии с этой моделью (с нормально распределенными ошибками e), подогнать их и вычислить значения много раз. Проверка состоит в том, что график вероятности (основанный на предполагаемом распределении Стьюдента t) близко следует диагонали. Вот тот график в моделировании размером где (очень маленький набор данных, выбранный, потому что распределение далеко от нормального) иtt500n=5t= Ь = - 1 / 2.a=b=1/2.

Вероятностный заговор

В этом примере, по крайней мере, процедура работает прекрасно. Попробуйте повторить симуляцию, используя параметры (стандартное отклонение ошибки) и , отражающие вашу ситуацию.a, b, σn

Вот код

#
# Specify the true parameters.
#
set.seed(17)
a <- -1/2
b <- -1/2
sigma <- 0.25 # Variance of the errors
n <- 5        # Sample size
n.sim <- 500  # Simulation size
#
# Specify the hypothesis.
#
H.0 <- c(1, -1) # Coefficients of `a` and `b`.
mu <- 0 
#
# Provide x and z values in terms of their logarithms.
#
log.x <- log(rexp(n))
log.z <- log(rexp(n))
#
# Compute y without error.
#
y.0 <- exp(a * log.x + b * log.z)
#
# Conduct a simulation to estimate the sampling distribution of the t statistic.
#
sim <- replicate(n.sim, {
  #
  # Add the errors.
  #
  e <- rnorm(n, 0, sigma)
  df <- data.frame(log.x=log.x, log.z=log.z, y.0, y=y.0 + e)
  #
  # Guess the solution.
  #
  fit.ols <- lm(log(y) ~ log.x + log.z - 1, subset(df, y > 0))
  start <- coefficients(fit.ols) # Initial values of (a.hat, b.hat)
  #
  # Polish it using nonlinear least squares.
  #
  fit <- nls(y ~ exp(a * log.x + b * log.z), df, list(a=start[1], b=start[2]))
  #
  # Test a hypothesis.
  #
  cc <- vcov(fit)
  s <- sqrt((H.0 %*% cc %*% H.0))
  (crossprod(H.0, coef(fit)) - mu) / s
})
#
# Display the simulation results.
#
summary(lm(sort(sim) ~ 0 + ppoints(length(sim))))
qqplot(qt(ppoints(length(sim)), df=n-2), sim, 
       pch=21, bg="#00000010", col="#00000040",
       xlab="Student t reference value", 
       ylab="Test statistic")
abline(0:1, col="Red", lwd=2)
Whuber
источник
2
Это отлично. Ответ с теорией, с шагами, которые нужно повторить для других тестов, с числовым подходом для ясности и с кодом. Это золотой стандарт.
SecretAgentMan
1
Я считаю , « The гипотезу о том , что и Ь различны» неоднозначны в своем первом предложении, потому что не ясно, является ли нуль или альтернативная гипотеза. Вопрос ОП ясно показывает, что они ищут доказательства различий, и второй пункт вашего предложения говорит об этом. Педагогически я думаю, что это помогает людям, которые новички в проверке гипотез, быть очень явными. (Но +1 за ваш ответ в целом :)
Алексис
1
@ Алексис, спасибо - я понимаю, что ты говоришь. Поскольку я имею в виду таких людей, я уточню.
whuber