У мене є модель
де - залежна змінна, і - пояснювальні змінні, і - параметри, а - термін помилки. У мене є оцінки параметрів і і матриця коваріації цих оцінок. Як перевірити, чи і значно відрізняються?
У мене є модель
де - залежна змінна, і - пояснювальні змінні, і - параметри, а - термін помилки. У мене є оцінки параметрів і і матриця коваріації цих оцінок. Як перевірити, чи і значно відрізняються?
Відповіді:
Оцінка гіпотези про те, що і різні, еквівалентна тестуванню нульової гіпотези (проти альтернативи, що ).
Наступний аналіз передбачає, що ви розумно оцінювати як Він також приймає вашу модельну формулювання (яка часто є розумною), яка - оскільки помилки є адитивною (і навіть може спричинити негативні спостережувані значення ) - не дозволяє нам лінеаризувати її , приймаючи логарифми обох сторін.
Дисперсія може бути виражено в термінах матриці коваріації з як
Коли є оцінена з методом найменших квадратів, один , як правило , використовує «T тест;» тобто розподіл апроксимується розподілом Стьюдента t з ступенями свободи (де - кількість даних, а - кількість коефіцієнтів ). Незалежно, зазвичай є основою будь-якого тесту. Ви можете виконати тест Z (коли великий або коли відповідає максимальна ймовірність), або завантажити його, наприклад.т = U / √
Щоб бути конкретним, р-значення t тесту задається через
де - функція розподілу Стьюдента t (кумулятивна). Це один вираз для "області хвоста:" шанс, що змінна Стьюдента t (з ступенів свободи) дорівнює або перевищує розмір тестової статистики,
Більш загально, для чисел та ви можете використовувати абсолютно однаковий підхід для перевірки будь-якої гіпотези
проти двосторонньої альтернативи. (Це охоплює особливий, але широко розповсюджений випадок "контрасту" .) Використовуйте оцінену матрицю дисперсії щоб оцінити дисперсію та сформувати статистику
Викладене вище - випадок і
Щоб перевірити правильність цієї поради, я запустив наступний R
код, щоб створити дані відповідно до цієї моделі (з нормально розподіленими помилками e
), встановити їх і обчислити значення багато разів. Перевірка полягає в тому, що графік ймовірності (на основі передбачуваного розподілу Стьюдента t) уважно слідує діагоналі. Ось цей графік в симуляції розміром де (дуже невеликий набір даних, обраний тому, що розподіл далекий від нормального) і= Ь = - 1 / 2.
У цьому прикладі, принаймні, процедура прекрасно працює. Розгляньте можливість повторного запуску моделювання за допомогою параметрів (стандартне відхилення помилки) та які відображають вашу ситуацію.
Ось код.
#
# 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)