R 对数据和数据的随机影响

R 对数据和数据的随机影响,r,mixed-models,nlme,R,Mixed Models,Nlme,各位 我试图用{nlme}包中的lme()来拟合R中的模型,其中包含许多固定效应和额外的随机效应(必须是{nlme},因为我以后还想包含AR(1)相关矩阵)。但是,该模型的速度非常慢(由于固定效应数量巨大) 现在,我们知道使用假人运行模型在数值上,但不是计算上,相当于在去弯曲数据上运行模型(在估计范围内)。因此,以下两种模型得出的结果相当,但第一种模型的运行速度要快得多: # Load library library(nlme) # For lme() library(lfe) # F

各位

我试图用{nlme}包中的lme()来拟合R中的模型,其中包含许多固定效应和额外的随机效应(必须是{nlme},因为我以后还想包含AR(1)相关矩阵)。但是,该模型的速度非常慢(由于固定效应数量巨大)

现在,我们知道使用假人运行模型在数值上,但不是计算上,相当于在去弯曲数据上运行模型(在估计范围内)。因此,以下两种模型得出的结果相当,但第一种模型的运行速度要快得多:

# Load library
library(nlme)   # For lme()
library(lfe)    # For demeanlist()

# Create reproducible dummy dataset
set.seed(1)
dat <- data.frame(y=rnorm(1000), x=rnorm(1000), cluster1=sample(LETTERS, 1000,  replace=TRUE), cluster2=sample(LETTERS, 1000, replace=TRUE))

# Create de-meaned dataset
dat_demean <- demeanlist(dat[,c("y", "x")], list(dat$cluster1))
dat_demean$cluster2 <- dat$cluster2 # Copy cluster2 column over to de-meaned data

# Model 1: Fixed effect on cluster1
orig <- lm( y ~ x + cluster1, data=dat)
deme <- lm( y ~ x - 1, data=dat_demean)

# This works as expected. Coefficients are exactly identical (SE are wrong and need to be fixed).
all.equal( coef(orig)["x"], coef(deme)["x"] )
R> [1] TRUE
#加载库
图书馆(nlme)#供伦敦金属交易所(lme)使用
图书馆(lfe)#为脱民主义者()
#创建可复制的虚拟数据集
种子(1)
dat
# Model 2: Fixed effect on cluster1 and additional random effect for cluster2
orig <- lme( y ~ x + cluster1, random=~1|cluster2, data=dat)
deme <- lme( y ~ x -1, random=~1|cluster2, data=dat_demean)

# This does not work - coefficients are different
fixef(orig)["x"]
R>        x 
R> -0.005885881 
fixef(deme)["x"]
R>        x 
R> -0.006169549 
all.equal(fixef(orig)["x"], fixef(deme)["x"])
R> [1] "Mean relative difference: 0.04819478"