在 dlply 中构建具有权重的 glm 模型
Building a glm model with weights in dlply
我写了一个脚本,为每个 Id 建立一个模型。
数据是 data.frame,对于每个 Id,我都有几行可以为他构建一个模型。所以 dlply 为每个 Id 取 data.frame 的这个子集并为他构建一个模型。
model<- dlply(Data, "Id",
function(df) {
HistoryWeights<-1+log(length(df$Row))
model<-glm(formula = form,family = binomial("logit"),data = df,weights = HistoryWeights)
return(model)
})
问题是如果我 运行 没有 weights
的脚本一切正常。但是如果我在 glm 模型中添加权重 return 我:
eval(expr, envir, enclos) 错误:未找到对象 'HistoryWeights'
这是一个简单的 iris 示例:
Data<-iris
Data$Predicted<- ceiling(rnorm(dim(Data)[1],0,0.00001))
Data$Row<-1:nrow(Data)
form<-formula(Predicted~Sepal.Length
+Sepal.Width
+Petal.Length
+Petal.Width)
model<- dlply(Data, "Species",
function(df) {
HistoryWeights<-1+log(length(df$Row))
model<-glm(formula = form,family = binomial("logit"),data = df,weights = HistoryWeights)
return(model)
})
有什么问题?
谢谢
在您的示例中,将 HistoryWeights
作为数据框中的一列:
model<- dlply(Data, "Species",
function(df) {
df$HistoryWeights<-1+log(length(df$Row))
model<-glm(formula = form,family = binomial("logit"),data = df,weights = HistoryWeights)
return(model)
})
我写了一个脚本,为每个 Id 建立一个模型。
数据是 data.frame,对于每个 Id,我都有几行可以为他构建一个模型。所以 dlply 为每个 Id 取 data.frame 的这个子集并为他构建一个模型。
model<- dlply(Data, "Id",
function(df) {
HistoryWeights<-1+log(length(df$Row))
model<-glm(formula = form,family = binomial("logit"),data = df,weights = HistoryWeights)
return(model)
})
问题是如果我 运行 没有 weights
的脚本一切正常。但是如果我在 glm 模型中添加权重 return 我:
eval(expr, envir, enclos) 错误:未找到对象 'HistoryWeights'
这是一个简单的 iris 示例:
Data<-iris
Data$Predicted<- ceiling(rnorm(dim(Data)[1],0,0.00001))
Data$Row<-1:nrow(Data)
form<-formula(Predicted~Sepal.Length
+Sepal.Width
+Petal.Length
+Petal.Width)
model<- dlply(Data, "Species",
function(df) {
HistoryWeights<-1+log(length(df$Row))
model<-glm(formula = form,family = binomial("logit"),data = df,weights = HistoryWeights)
return(model)
})
有什么问题?
谢谢
在您的示例中,将 HistoryWeights
作为数据框中的一列:
model<- dlply(Data, "Species",
function(df) {
df$HistoryWeights<-1+log(length(df$Row))
model<-glm(formula = form,family = binomial("logit"),data = df,weights = HistoryWeights)
return(model)
})