【发布时间】:2017-11-17 06:31:23
【问题描述】:
我想为每个 ID 绘制线性模型线。
如何使用不同长度的序列为多个lms(或glms)创建预测?我试过了:
#some fake data
res<-runif(60,1,20)
var<-runif(60,10,50)
ID<-rep(c("A","B","B","C","C","C"),10)
data<- data.frame(ID,res,var)
#lm
library(data.table)
dt <- data.table(data,key="ID")
fits <- lapply(unique(data$ID),
function(z)lm(res~var, data=dt[J(z),], y=T))
#sequence for each ID of length var(ID)
mins<-matrix(with(data, tapply(var,ID,min)))
mins1<-mins[,1]
maxs<-matrix(with(data,tapply(var,ID,max)))
maxs1<-maxs[,1]
my_var<-list()
for(i in 1:3){
my_var[[i]]<- seq(from=mins1[[i]],to=maxs1[[i]],by=1)
}
# predict on sequences
predslist<- list()
predslist[[i]] <- for(i in 1:3){
dat<-fits[[i]]
predict(dat,newdata= data.frame("var"= my_var,type= "response", se=TRUE))
}
预测结果错误
【问题讨论】:
-
那么你到底卡在哪里了?绘图部分?你希望情节看起来像什么?我不确定我是否理解您想要的输出。
-
这能回答你的问题吗? stackoverflow.com/questions/24356683/… 这是此 SO 搜索的三个热门之一。
-
进一步的问题:???lms。我在 CRAN 中没有看到
lms包。一定是发生了某种代码遗漏。 -
我被困在脚本的最后一部分,我想预测序列上的模型。所需的输出是一个图,每个 ID 都有一条线。该行显示了 ID[i] 沿序列 [i] 的 lm 预测,其范围从 ID[i] 的 var 的最小值到最大值