Aynı modeldeki iki parametre tahmininin önemli ölçüde farklı olup olmadığını nasıl test edebilirim?


12

Modele sahibim

y=xa×zb+e

burada bağımlı değişkendir, ve açıklayıcı değişkenlerdir, ve parametrelerdir ve bir hata terimidir. ve parametre tahminlerine ve bu tahminlerin bir kovaryans matrisine sahibim . ve anlamlı derecede farklı olup olmadığını nasıl test edebilirim ?yxzabeabab

Yanıtlar:


16

ve farklı olduğu hipotezinin değerlendirilmesi, boş hipotezinin test edilmesine eşdeğerdirabab=0 ( alternatifine karşı ).ab0

Aşağıdaki analiz, ab'yi olarak tahmin makul olduğunu varsaymaktadır Ayrıca, model formülasyonunuzu da kabul eder (ki bu genellikle mantıklıdır), çünkü - hatalar toplanır (ve negatif gözlenen değerlerini bile üretebilir ) - her iki tarafın logaritmasını alarak doğrusallaştırmamıza izin vermez .ab

U=a^b^.
y

Varyansı kovaryans matrisinin cinsinden ifade edilebilir arasında olarakU(cij)(a^,b^)

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

Tüm olan en küçük kareler ile tahmin biri genellikle bir "t testi;" kullanır yani, ın dağılımı serbestlik derecesine sahip bir Öğrenci t dağılımı ile yaklaşık olarak tahmin edilmektedir (burada veri sayısıdır ve katsayı sayısını sayar ). Ne olursa olsun, genellikle herhangi bir testin temelini oluşturur. Örneğin bir Z testi ( büyük olduğunda veya Maksimum Olabilirlik ile takıldığında) veya önyükleme yapabilirsiniz.(a^,b^)

t=U/Var(U)
n2n2tn

Spesifik olarak, t testinin p değeri

p=2tn2(|t|)

burada , Öğrenci t (birikimli) dağıtım işlevidir. "Kuyruk alanı" için bir ifadedir: Student t değişkeninin ( serbestlik dereceli) test istatistiği,tn2n2|t|.


Daha genel olarak, ve sayıları için herhangi bir hipotezi test etmek için tamamen aynı yaklaşımı kullanabilirsinizc1, c2,μ

H0:c1a+c2b=μ

iki taraflı alternatife karşı. (Bu, özel ancak yaygın bir "kontrast" durumunu kapsar .) varyansını tahmin etmek ve istatistiği oluşturmak için tahmini varyans-kovaryans matrisini kullanın(cij)U=c1a+c2b

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

Yukarıdaki durum ve(c1,c2)=(1,1)μ=0.


Bu tavsiyenin doğru olup olmadığını kontrol etmekR için, bu modele (Normal olarak dağıtılmış hatalarla e) veri oluşturmak , bunları takmak ve birçok kez değerini hesaplamak için aşağıdaki kodu çalıştırdım . Kontrol, olasılık grafiğinin (varsayılan öğrenci t dağılımına dayalı olarak) diyagonali yakından izlediğidir. Burada, ( dağılımı Normalden çok uzak olduğu için seçilen çok küçük bir veri kümesi ) ve olduğu büyüklüğündeki bir simülasyondaki çizimtt500n=5ta=b=1/2.

Olasılık grafiği

Bu örnekte, en azından, prosedür güzel çalışıyor. Durumunuzu yansıtan (hata standart sapması) ve parametrelerini kullanarak simülasyonu yeniden çalıştırmayı düşünün .a, b, σn

İşte kod.

#
# 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)

2
Bu mükemmel. Teori ile, diğer testler için tekrarlamak için izlenmesi gereken adımlar, açıklık için sayısal bir yaklaşım ve kod ile cevap. Bu altın standarttır.
SecretAgentMan

1
Ben "bulmak o boş veya alternatif hipotez olup olmadığı açık değildir, çünkü, açılış cümlede belirsiz a ve b farklı olduğu hipotezini". OP'nin sorusu, farklılık kanıtı aradıklarını açıkça ortaya koyuyor ve cümlenizin ikinci maddesi buna değiniyor. Pedagojik olarak hipotez testine yeni başlayanların süper açık olmasına yardımcı olduğunu düşünüyorum. (Ama genel olarak cevabınız için +1 :)
Alexis

1
@Alexis teşekkür ederim - Ne dediğini anlıyorum. Aklımda böyle insanlar var, açıklığa kavuşacağım.
whuber
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.