【发布时间】:2021-03-14 03:44:37
【问题描述】:
我想使用 R 中 propogate 包中的 predictNLS 围绕大量拟合值建立置信区间。例如,我将使用它们在函数描述 (https://rdrr.io/github/anspiess/propagate/man/predictNLS.html)、DNase 和构建一个以 conc 和 density 作为特征的模型:
library(propogate)
library(dplyr)
library(modelr)
DNase <- DNase
modeldna <- DNase %>% group_by(Run) %>%
do(run_model = nls(density ~ a * exp(b * conc),
start = list(a = 1 , b = 0.5),
data = .)) %>% ungroup()
然后我想给每一行分配它所分配的模型,以便可以添加预测:
DNApredict <- full_join(as_tibble(DNase), modeldna, by = "Run")
添加预测:
DNApredict <- DNApredict %>%
group_by(Run) %>%
do(add_predictions(., var = "predicted_density", first(.$run_model)))
然后,我想添加 predictNLS 似乎提供的置信区间数据,方法是为其提供相同的数据并要求它为 predict_density 列中的每个拟合点提供置信区间:
confidence_interval <- predictNLS(model = modeldna, newdata = DNApredict$predicted_density, interval = "confidence")
但是,出现以下错误:
as.list(object$call$formula) 中的错误: 缺少参数“object”,没有默认值
有谁知道这可能是什么原因造成的?我知道对于你们中的一些人来说,它所调用的对象是什么似乎很明显,所以如果这是一个荒谬的问题,我深表歉意。我真的希望能够使用此功能围绕一系列拟合值创建置信区间。非常感谢您。
【问题讨论】:
-
我认为您传递给 predictNLS 函数的对象不是它所期望的。第一个变量是 nls 函数返回的直接模型,第二个变量是具有新预测值和与模型相同的列名的数据框。