【问题标题】:Predict function in RR中的预测函数
【发布时间】:2017-01-24 03:07:15
【问题描述】:

我正在尝试使用 predict 函数来预测 100 个新点。我有一个data.frame,其中一个向量长 100 倍。

我正在尝试预测功能:predict(model, newdata=mydat)

该函数只返回一个长度为 4 的向量。 这可能是因为模型只用了四个点,但我不确定。

编辑:

创建mydat

mydat <- data.frame(V1 = seq(0, max(myExperimentSummary$V1), length.out = 100))

我正在使用的模型

model
#Nonlinear regression model
#  model: mean ~ (1/(1 + exp(-b * (V1 - c))))
#   data: myExperimentSummary
#      b       c 
#-0.6721  3.2120 
# residual sum-of-squares: 0.04395
# 
#Number of iterations to convergence: 1 
#Achieved convergence tolerance: 5.204e-06

EDIT2:修正错别字

EDIT3:

fitcoef = nlsLM(mean~(a/(1+exp(-b*(V5-c)))), data = myExperimentSummary,
                start=c(a=1,b=.1,c=25))

fitmodel = nls(mean~(1/(1+exp(-b*(V1-c)))), data = myExperimentSummary,
               start=coef(fitcoef))

mydat <- data.frame(V1 = seq(0, max(myExperimentSummary$V1), length.out = 100))

predict(fitmodel, mydat)

【问题讨论】:

  • 你需要展示你在预测什么模型,并展示你是如何生成mydat的。
  • 我将编辑帖子以添加这些
  • 好的,你的新数据必须匹配方程右轴中的变量。你的新数据有S,但模型有V1
  • 我认为这应该作为错字关闭
  • @ZheyuanLi;我认为,但模型摘要显示数据框名称

标签: r regression predict nls non-linear-regression


【解决方案1】:

如果您的数据仍然在您的previous question 中:

dat <- read.table(text = " V1  N mean  
                          0.1  9 0.9 
                            1  9 0.8 
                           10  9 0.1 
                            5  9 0.2",
                  header = TRUE)

model <- nls(mean ~ -a/(1 + exp(-b * (V1-o))), data = dat,
             start=list(a=-1.452, b=-0.451, o=1.292))

那我无法重现你的问题:

mydat <- data.frame(V1 = seq(0, max(dat$V1), length.out = 100))

y <- predict(model, mydat)

length(y)
# [1] 100

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2018-08-18
    • 2021-05-13
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多