首页
学习
活动
专区
圈层
工具
发布

条件nls
EN

Stack Overflow用户
提问于 2012-07-21 03:05:09
回答 1查看 1.8K关注 0票数 0

我试着用R2.15.1来拟合条件nls。同样的代码在R2.13中运行良好,但现在R2.15.1抛出了错误。

代码语言:javascript
复制
x <- seq(from = 17, to = 47, by = 5)
y <- c(26.2, 173.6, 233.9, 185.9, 115.4, 62.0, 21.7)
Data <- data.frame(y, x)

Fit <- nls(formula =  y ~ ifelse(test = x <= Mu, yes = Mean <- c1*exp(-((x-Mu)/Sigma11)^2), no =  Mean <- c1*exp(-((x-Mu)/Sigma12)^2)),
       data = Data, start = list(c1 = 240, Mu = 25, Sigma11 = 5, Sigma12 = 14), algorithm = "port",
       lower = list(Sigma11 = 0, Sigma12 = 0))

错误是

代码语言:javascript
复制
Error in nls(formula = y ~ ifelse(test = x <= Mu, yes = Mean <- c1 * exp(-((x -  : 
  parameters without starting value in 'data': Mean

编辑的

我正在拟合以下模型:

代码语言:javascript
复制
$f(x) = c_{1}  \exp\left(-\left(\frac{x-\mu}{\sigma_{(x)}}\right)^2\right)$

where $\sigma_{(x)} = \sigma_{11}$ if  $x \le \mu$ and $\sigma_{(x)} = \sigma_{12}$ if  $x > \mu$
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-21 04:54:20

此代码在R2.15.1中工作。

代码语言:javascript
复制
x <- seq(from = 17, to = 47, by = 5)
y <- c(26.2, 173.6, 233.9, 185.9, 115.4, 62.0, 21.7)
Data <- data.frame(y, x)

Fit <- nls(formula =  y ~ ifelse(test = x <= Mu, ye = c1*exp(-((x-Mu)/Sigma11)^2), no = c1*exp(-((x-Mu)/Sigma12)^2)),
       data = Data, start = list(c1 = 240, Mu = 25, Sigma11 = 5, Sigma12 = 14), algorithm = "port",
       lower = list(Sigma11 = 0, Sigma12 = 0))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11589139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档