我对使用双向聚类程序包(multiwayvcov)后以置信区间绘制拟合感兴趣。
这是我的可复制数据。
foreach (Shoe shoe in shoes)
{
client.Cypher.Create("(shoe:Shoe {shoe})")
.WithParam("shoe", shoe).ExecuteWithoutResults();
}
这是我的非集群模型:
rm(list=ls(all=TRUE))
library(lmtest)
library(multiwayvcov)
dv<-c(1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0)
int1<-c(0.0123, 0.3428, 0.2091, 0.8325, 0.7113, 0.7401, 0.6009, 0.5062, 0.4841, 0.8912, 0.3850, 0.2463, 0.0625, 0.5374, 0.1984)
int2<-c(0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0)
cont<-c(3, 1, 2, 4, 6, 7, 1, 4, 3, 2, 4, 3, 6, 1, 3)
cluster1<-c(1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3)
cluster2<-c(1, 2, 3, 1, 2, 3, 1, 2, 1, 2, 1, 2, 3, 1, 2)
mydata<-as.data.frame(cbind(dv, int1, int2, cont, cluster1, cluster2))
要使用“ cluster1”和“ cluster2”获得聚类结果,我使用“ lmtest”和“ multiwayvcov”包中的函数,如下所示。
result_lm <- lm(dv~int1+int2+cont,data=mydata)
在这里,“ cluster_vcov”只是一个方差-协方差矩阵,而“ result_2c”只是一个原子向量。因此,我无法使用“预测”功能在新数据集(“ datagrid”)上绘制拟合,例如
cluster_vcov<-cluster.vcov(result_lm, ~cluster1+cluster2)
result_2c<-coeftest(result_lm, cluster_vcov)
在继续我的工作之前,这里有一些我最终希望实现的目标。
grid <- seq(0,1,.2)
datagrid <- data.frame(int1=rep(grid,2),
int2=c(rep(0,length(grid)),
rep(1,length(grid))))
datagrid$cont<-mean(mydata$cont, na.rm=T)
结果是
为解决“ result_2c”不提供可直接与“ predict”一起使用的数据框的问题,我决定自己构造一个数据,如下所示。
fits <- predict(result_lm,newdata=datagrid,interval="confidence")
plotdata <- data.frame(fits,datagrid)
plotdata$int2 <- plotdata$int2==1
ggplot(plotdata,aes(x=int1,y=fit,ymin=lwr,ymax=upr,color=int2)) + geom_line(aes(linetype = int2)) + geom_ribbon(alpha=.2) + theme(legend.position="none") + scale_color_manual(values=c("red", "darkgreen")) + scale_linetype_manual(values=c("dashed", "solid"))
然后,使用“ d_twc_result $ Estimate”生成一个矢量,该矢量对应于运行“预测”后可能获得的“拟合”。
d_twc_result<-data.frame(matrix(0, nrow =4, ncol = 4) )
colnames(d_twc_result) <- c("Estimate","Std. Error","t value", "Pr(>|t|)")
rownames(d_twc_result) <-c("(Intercept)", "int1","int2", "cont")
for (j in 1:4){
for (i in 1:4){
d_twc_result[i, j]<-result_2c[i,j]
}
}
但是,我仍然不能为需要“残差”或“标准误差”的“ lwr”和“ upr”构建向量。我真正被困的是,似乎不可能获得“残差”或“标准误差”,因为在数据集“ datagrid”中没有观察到“ dv”。
尽管如此,“预测”与数据集“ datagrid”一起使用,所以我想我不太了解“预测”的工作方式或适合性的概念。
如果您能帮助我获得“ lwr”和“ upr”(如果我对fit概念的理解不正确),将不胜感激。感谢您的任何提前评论。