我想使用“effects”包绘制带有误差线的交互作用效应。但是,我想基于多路聚类协方差矩阵计算误差,就像使用“multiwayvcov”包所能计算的那样。“effects”可以使用函数来计算协方差矩阵(vcov.=),但似乎该函数不接受任何其他参数。
示例:
上面的代码使用非聚类标准误差生成了一个类似的交互图。我想要做同样的事情,但是使用聚类标准误差。可以尝试如下代码(假设"gear"和"cyl"是mtcars数据集中的聚类id):
任何帮助都非常感激。
示例:
library(effects)
library(ggplot2)
library(multiwayvcov)
m1 <- lm(mpg ~ hp + wt + hp:wt, data=mtcars)
tmp <- as.data.frame(effect("hp:wt", model, vcov=vcov, se=TRUE, xlevels=list(wt=c(2.2,3.2,4.2))))
ggplot(data=tmp, aes(x=hp, y=fit, colour=as.factor(wt))) +
geom_line() +
geom_ribbon(aes(ymin=lower, ymax=upper, fill=as.factor(wt)), alpha = 0.5) +
labs(colour="wt")
上面的代码使用非聚类标准误差生成了一个类似的交互图。我想要做同样的事情,但是使用聚类标准误差。可以尝试如下代码(假设"gear"和"cyl"是mtcars数据集中的聚类id):
m1 <- lm(mpg ~ hp + wt + hp:wt, data=mtcars)
cluster.ids <- data.frame(i = mtcars$gear, j = mtcars$cyl)
tmp <- as.data.frame(effect("hp:wt", m1, vcov=cluster.vcov(m1, cluster = cluster.ids), xlevels=list(wt=c(2.2,3.2,4.2))))
任何帮助都非常感激。
tmp
时,看起来应该用m1
替换model
。 - eipi10library(car) m2 <- lm(mpg ~ hp + wt + hp:wt, data=mtcars) tmp2 <- as.data.frame(effect("hp:wt", m2, vcov=hccm, xlevels=list(wt=c(2.2,3.2,4.2))))
但是如果您尝试为hccm提供其他参数,则会收到相同的错误。 - Richard Benton