在 R 中的 lme 函数中使用自定义权重和结构权重
Using custom made weights and structural weight in lme function in R
我将在 R 的 lme
函数中使用像 varIndent(from = ~1 |Sex)
这样的结构权重和一个自定义的权重向量 w 。所以我想知道是否有人知道如何组合权重在函数中。这是一个例子(只是为这个问题做的)
n=25
data=data.frame(
y = rnorm(n),
Sex = as.factor(sample(c('Male','Female','Female'),size = n,replace = TRUE)),
Age = as.factor(sample(c('1-1-2013','10-3-2013','1-5-2013'),size = n,replace = TRUE)),
Area= as.factor(sample(c('a','b','a'),size = n,replace = TRUE))
)
w = runif(n)
MY_WEIGHT_VECTOR = w/sum(w)
l = lme(
fixed = y ~ Sex + Age,
data = data,
random = ~ 1 | Area,
weights = varIdent(form = ~1 | Sex)+???MY_WEIGHT_VECTOR
)
我相信你想要这样的东西:
data$v <- 1/MY_WEIGHT_VECTOR^2
l = lme(
fixed = y ~ Sex + Age,
data = data,
random = ~ 1 | Area,
weights = varComb(varIdent(form = ~1 | Sex), varFixed(~ v))
)
varFixed
采用 v
向量并将其用作固定残差方差。证明这确实会产生所需的权重:
varfun <- varFixed(~ v)
varfun <- Initialize(varfun, data)
all.equal(varWeights(varfun), MY_WEIGHT_VECTOR)
#[1] TRUE
我将在 R 的 lme
函数中使用像 varIndent(from = ~1 |Sex)
这样的结构权重和一个自定义的权重向量 w 。所以我想知道是否有人知道如何组合权重在函数中。这是一个例子(只是为这个问题做的)
n=25
data=data.frame(
y = rnorm(n),
Sex = as.factor(sample(c('Male','Female','Female'),size = n,replace = TRUE)),
Age = as.factor(sample(c('1-1-2013','10-3-2013','1-5-2013'),size = n,replace = TRUE)),
Area= as.factor(sample(c('a','b','a'),size = n,replace = TRUE))
)
w = runif(n)
MY_WEIGHT_VECTOR = w/sum(w)
l = lme(
fixed = y ~ Sex + Age,
data = data,
random = ~ 1 | Area,
weights = varIdent(form = ~1 | Sex)+???MY_WEIGHT_VECTOR
)
我相信你想要这样的东西:
data$v <- 1/MY_WEIGHT_VECTOR^2
l = lme(
fixed = y ~ Sex + Age,
data = data,
random = ~ 1 | Area,
weights = varComb(varIdent(form = ~1 | Sex), varFixed(~ v))
)
varFixed
采用 v
向量并将其用作固定残差方差。证明这确实会产生所需的权重:
varfun <- varFixed(~ v)
varfun <- Initialize(varfun, data)
all.equal(varWeights(varfun), MY_WEIGHT_VECTOR)
#[1] TRUE