R中的错误-没有适用于'的方法;预测';适用于“类”的对象;“公式”;

R中的错误-没有适用于'的方法;预测';适用于“类”的对象;“公式”;,r,predict,model-fitting,R,Predict,Model Fitting,我想寻求有关预测函数的帮助。我想得到一条拟合线来模拟abline()。对于不同的系统,我以前使用过这种方法 mod1<-glm(data$Lengthmm ~ data$qbH.yr.med, family=quasipoisson, subset = data$Age==1) xv <- seq(min(data$qbH.yr.med), max(data$qbH.yr.med), length.out = length(data$Lengthmm))

我想寻求有关预测函数的帮助。我想得到一条拟合线来模拟abline()。对于不同的系统,我以前使用过这种方法

mod1<-glm(data$Lengthmm ~ data$qbH.yr.med, family=quasipoisson,
    subset = data$Age==1)

xv <- seq(min(data$qbH.yr.med), max(data$qbH.yr.med), 
    length.out = length(data$Lengthmm))                #    poisson regression

yv <- predict(mod1 ~ data$qbH.yr.med, family=quasipoisson, list(x = xv))

我不知道为什么它要求“公式”,因为我的因素中没有一个属于这一类。。。我很乐意为这个错误提供帮助或想法。

您正在预测
mod1~数据$qbH.yr.med
这是一个类公式的对象。您可以通过注意
~
来轻松识别这一点。在您的案例中,您希望使用您创建的模型对象,即
mod1

,正如其他人所评论的,很难看出这在过去是如何工作的。这里有几点:

  • 最好的做法是提供
    数据
    参数,并仅使用变量名称(即
    长度hmm
    ,而不是
    数据$lengthm
    ),特别是如果您希望
    predict()
    和其他后装配机械工作时
  • 对于
    predict
    ,您应该提供拟合的模型和(可选)与原始数据框匹配的
    newdata
    参数
  • 最好不要调用数据
    data
    (这会屏蔽内置的R函数,尽管它通常不会引起麻烦)
制作一个可复制的示例:

set.seed(101)
dd <- data.frame(Lengthmm=1:10,qbH.yr.med=rpois(10,1),
                 Age=rep(1,10))
set.seed(101)

dd您应该将您的模型对象(
mod1
)与
predict()
一起使用,但是您也应该避免在公式中使用
$
,否则您可能无法得到想要的结果。但是在请求帮助时,请确保包含一个示例数据,以便我们可以运行代码。我不清楚这在其他模型上是如何起作用的。可能要查看
?predict
帮助页面了解用法示例。
set.seed(101)
dd <- data.frame(Lengthmm=1:10,qbH.yr.med=rpois(10,1),
                 Age=rep(1,10))
mod1 <- glm(Lengthmm ~ qbH.yr.med, family=quasipoisson,
            data=dd,
            subset = (Age==1))
xv <- with(dd,
         data.frame(qbH.yr.med=seq(min(qbH.yr.med), max(qbH.yr.med), 
                        length.out = length(Lengthmm))))
yv <- predict(mod1, newdata=xv)