Menilai hipotesis bahwa dan berbeda sama dengan menguji hipotesis nolaba−b=0 (terhadap alternatif yang ).a−b≠0
Analisis berikut ini menganggap wajar bagi Anda untuk memperkirakan sebagai Ia juga menerima formulasi model Anda (yang seringkali masuk akal), yang - karena kesalahannya bersifat aditif (dan bahkan bisa menghasilkan nilai observasi negatif ) - tidak mengizinkan kami untuk membuat garis itu dengan mengambil logaritma dari kedua belah pihak.a−bU=a^−b^.
yy
Varians dari dapat diekspresikan dalam bentuk matriks kovarians dari sebagaiU(cij)(a^,b^)
Var(U)=Var(a^−b^)=Var(a^)+Var(b^)−2Cov(a^,b^)=c11+c22−2c212.
Ketika adalah diperkirakan dengan kuadrat, satu biasanya menggunakan "uji t;" yaitu, distribusi diperkirakan oleh distribusi t Student dengan derajat kebebasan (di mana adalah jumlah data dan menghitung jumlah koefisien) ). Apapun, biasanya merupakan dasar dari setiap tes. Anda dapat melakukan tes Z (ketika besar atau ketika pas dengan Kemungkinan Maksimum) atau bootstrapnya, misalnya.(a^,b^)t = U / √t=U/Var(U)−−−−−−√
n-2n2tnn−2n2tn
Untuk lebih spesifik, nilai p dari uji t diberikan oleh
p=2tn−2(−|t|)
di mana adalah fungsi distribusi Student t (kumulatif). Ini adalah satu ungkapan untuk "area ekor:" kesempatan bahwa variabel t Student (dari derajat kebebasan) sama dengan atau melebihi ukuran statistik uji,tn−2n−2|t|.
Secara umum, untuk angka dan Anda dapat menggunakan pendekatan yang persis sama untuk menguji hipotesis apa punc1, c2,μ
H0:c1a+c2b=μ
terhadap alternatif dua sisi. (Ini mencakup kasus "kontras" khusus tetapi luas .) Gunakan matriks varians-kovarians yang diperkirakan untuk memperkirakan varians dari dan membentuk statistik(cij)U=c1a+c2b
t=(c1a^+c2b^−μ)/Var(U)−−−−−−√.
Di atas adalah case dan(c1,c2)=(1,−1)μ=0.
Untuk memeriksa apakah saran ini benar, saya menjalankan R
kode berikut untuk membuat data sesuai dengan model ini (dengan kesalahan yang terdistribusi secara normal e
), cocok dengan mereka, dan menghitung nilai berkali-kali. Ceknya adalah bahwa plot probabilitas (berdasarkan distribusi t Student yang diasumsikan) erat mengikuti diagonal. Berikut adalah plot dalam simulasi ukuran mana (dataset yang sangat kecil, dipilih karena distribusi jauh dari Normal) dantt500n=5ta=b=−1/2.
Dalam contoh ini, setidaknya, prosedur ini bekerja dengan baik. Pertimbangkan untuk menjalankan kembali simulasi menggunakan parameter (standar deviasi kesalahan), dan yang mencerminkan situasi Anda.a, b, σn
Ini kodenya.
#
# 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)