Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
豪斯曼';s的规范测试;glmer";来自lme4_R_Random_Panel - Fatal编程技术网

豪斯曼';s的规范测试;glmer";来自lme4

豪斯曼';s的规范测试;glmer";来自lme4,r,random,panel,R,Random,Panel,我想建立一个“广义线性模型的固定/随机模型”(family=“二项式”),因为我有一个数据库,其中观测值来自总体,并且有一个分组结构。然后我使用lme4软件包中的glmer函数,并且我已经读到我可以使用库MASS中的glmmPQL函数(Faraway,2006) 当我想用豪斯曼测试(Greene,2012)证明随机模型和固定模型的使用是合理的时,我的问题就出现了。我找不到一个特定的函数可以让我这样做,类似于包plm中的phtest测试 如何证明使用随机模型的合理性?这是对plm::phtest函

我想建立一个“广义线性模型的固定/随机模型”(family=“二项式”),因为我有一个数据库,其中观测值来自总体,并且有一个分组结构。然后我使用
lme4
软件包中的
glmer
函数,并且我已经读到我可以使用库
MASS
中的
glmmPQL
函数(Faraway,2006)

当我想用豪斯曼测试(Greene,2012)证明随机模型和固定模型的使用是合理的时,我的问题就出现了。我找不到一个特定的函数可以让我这样做,类似于包
plm
中的
phtest
测试


如何证明使用随机模型的合理性?

这是对
plm::phtest
函数的简单调整。我只对我实际更改的代码行进行了注释自担风险使用,如果可能,根据
plm::phtest
的结果进行测试。我只是修改了代码,没有考虑它是否真的做了正确的事情

phtest_glmer <- function (glmerMod, glmMod, ...)  {  ## changed function call
    coef.wi <- coef(glmMod)
    coef.re <- fixef(glmerMod)  ## changed coef() to fixef() for glmer
    vcov.wi <- vcov(glmMod)
    vcov.re <- vcov(glmerMod)
    names.wi <- names(coef.wi)
    names.re <- names(coef.re)
    coef.h <- names.re[names.re %in% names.wi]
    dbeta <- coef.wi[coef.h] - coef.re[coef.h]
    df <- length(dbeta)
    dvcov <- vcov.re[coef.h, coef.h] - vcov.wi[coef.h, coef.h]
    stat <- abs(t(dbeta) %*% as.matrix(solve(dvcov)) %*% dbeta)  ## added as.matrix()
    pval <- pchisq(stat, df = df, lower.tail = FALSE)
    names(stat) <- "chisq"
    parameter <- df
    names(parameter) <- "df"
    alternative <- "one model is inconsistent"
    res <- list(statistic = stat, p.value = pval, parameter = parameter, 
        method = "Hausman Test",  alternative = alternative,
                data.name=deparse(getCall(glmerMod)$data))  ## changed
    class(res) <- "htest"
    return(res)
}

你能再多给我一点信息吗?我找到了,但我不确定b_0和b_1代表什么:它们只是固定效应协变量(即不包括分组变量)吗?谢谢你的帮助!我很担心,因为我没有在R中找到一个特定的函数,特别是在lme4包中,来执行这个测试,所以我怀疑它是否可以完成。或者如果我能证明随机模型最适合数据(anova)。有一个类似的问题:我不确定维基百科的解释,所以我给你看格林的定义。“该检验的依据是,在无相关性的假设下,OLS、LSDV和FGLS估计值都是一致的,但OLS是无效的,而在另一种假设下,LSDV是一致的,但FGLS不是。因此,在零假设下,这两个估计值不应系统地不同,而tes cam应基于差异。”(Greene,2012)。Greene的例子:“我们从固定效应结果和b_-e和V_-e的前九个元素(不包括常数项)中检索了系数向量和估计的渐近协方差矩阵b_-e和V_-e”。[我不知道为什么有九个第一元素。]H=(b_-e-b_-e)]方差分析不会特别有效,因为很难证明一个模型嵌套在另一个模型中的要求(这是应用似然比检验的必要条件)。
library(lme4)
gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
                   data = cbpp, family = binomial)
gm0 <- glm(cbind(incidence, size - incidence) ~ period +  herd,
                   data = cbpp, family = binomial)

phtest_glmer(gm1,gm0)
##  Hausman Test
## data:  cbpp
## chisq = 10.2747, df = 4, p-value = 0.03605
## alternative hypothesis: one model is inconsistent
library("nlme")
fm1 <- lme(distance ~ age, data = Orthodont) # random is ~ age
fm0 <- lm(distance ~ age*Subject, data = Orthodont)
phtest_glmer(fm1,fm0)

## Hausman Test 
## data:  Orthodont
## chisq = 0, df = 2, p-value = 1
## alternative hypothesis: one model is inconsistent