如何测试同一模型中的两个参数估计是否显着不同?


12

我有模特

y=xa×zb+e

其中是因变量,和是解释变量,和是参数,是误差项。我有和参数估计以及这些估计的协方差矩阵。如何测试和是否显着不同?yxzabeabab

Answers:


16

评估和不同的假设 等同于检验零假设abab=0 (相对于)。ab0

下面的分析假定您将估计为是合理的 它还接受您的模型公式(通常是一个合理的公式),因为误差是累加的(甚至可能产生负观测值),因此我们不允许通过取双方的对数来对其进行线性化ab

U=a^b^.
ÿy

的方差可以用的协方差矩阵表示为U(cij)(a^,b^)

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

当被估计与最小二乘,人们通常使用“t检验;” 也就是说, 分布是通过具有自由度的Student t分布进行近似的(其中是数据计数,是系数的数目) )。无论如何,通常是任何测试的基础。例如,您可以执行Z测试(当大或与最大似然拟合时)或引导它。(a^,b^)

t=U/Var(U)
n2n2tn

具体来说,t检验的p值由下式给出

p=2tn2(|t|)

其中是学生t(累积)分布函数。它是“尾部区域”的一种表达:(个自由度的)Student t变量等于或超过检验统计量tn2n2|t|.


一般来说,对于数字和您可以使用完全相同的方法来检验任何假设c1, c2,μ

H0:c1a+c2b=μ

反对双方的选择。(这包括“对比度”的特殊但普遍的情况。)使用估计的方差-协方差矩阵来估计的方差并形成统计量(cij)U=c1a+c2b

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

前面是和(c1,c2)=(1,1)μ=0.


为了检查此建议是否正确,我运行了以下R代码来根据该模型创建数据(具有正态分布错误e),进行拟合并多次计算的值。检查是的概率图(基于假定的Student t分布)紧跟对角线。这是在大小为的模拟中绘制的图,其中(选择了一个非常小的数据集,因为分布远离正态分布),而tt500n=5ta=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)

2
太好了 该理论的答案,以及随后的步骤可重复进行其他测试,数字方法以简化说明和代码。这是黄金标准。
SecretAgentMan

1
我在开头的句子中发现“ a和b不同假设”是模棱两可的,因为目前尚不清楚这是无效假设还是替代假设。OP的问题清楚地表明,他们正在寻找差异的证据,您句子的第二句对此进行了说明。在教学法上,我认为它可以帮助刚接触假设检验的人们变得更加明确。(但您的总体答案是+1 :)
Alexis

1
@Alexis谢谢您-我明白您在说什么。因为我确实有这样的人,所以我会澄清。
ub
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.