【发布时间】:2020-06-06 09:26:52
【问题描述】:
我之前问过这个问题,但从未得到答案,所以我再次尝试并提供了一个示例数据集,以便有人可以告诉我为什么我在尝试从 aod 实施 Wald 测试时遇到错误和 lmtest 包。
样本数据:
marital <- sample(1:5, 64614, replace = T)
race <- sample(1:3, 64614, replace = T)
educ <- sample(1:20, 64614, replace = T)
test <- data.frame(educ, marital, race)
test$marital <- as.factor(test$marital)
test$race <- as.factor(test$race)
test$marital <- relevel(test$marital, ref = "3")
require(nnet)
require(aod)
require(lmtest)
testmod <- multinom(marital ~ race*educ, data = test)
testnull <- multinom(marital ~ 1, data = test) #null model for the global test
waldtest(testnull, testmod)
wald.test(b = coef(testmod), Sigma = vcov(testmod), Terms = 1:24) #testing all terms for the global test
如您所见,当我使用 lmtest 包中的 waldtest 函数时,出现以下错误:
Error in solve.default(vc[ovar, ovar]) : 'a' is 0-diml
当我使用 aod 的 wald.test 函数时,我收到以下错误:
Error in L %*% b : non-conformable arguments
我认为这些是相关的错误,因为它们似乎都与方差矩阵有关。我不确定为什么会出现这些错误,因为数据集没有缺失值。
【问题讨论】:
-
那些函数(来自 lmtest 的
waldtest和来自 aod 的wald.test)似乎只接受线性或一般线性模型。 nnet 包中的multinom函数通过神经网络执行多项回归模型。您可能必须手动执行 wald 测试。 -
哦...这更有意义。谢谢。
-
这应该会为您提供 Wald 检验中每个术语的 p 值:
z <- summary(testmod)$coefficients/summary(testmod)$standard.errors; (1 - pnorm(abs(z), 0, 1)) * 2
标签: r multinomial hypothesis-test