作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法限制 NLS 系数在 R 中的取值范围?我知道我的数据应该存在的曲线形状;然而,NLS 无法通过产生 < 1 的功率系数来产生这样的曲线。
从本质上讲,我正在尝试为一组幼树茎(树苗)数据生成茎高与地上生物量的关系。树木的高度受到 field 寒冷天气的影响,因此它们的高度接近极限......但随着年龄的增长,周长和生物量继续增长。
问题是我只有一定范围内的树高数据,并且缺少高度小于 1.3 米的茎的值。我到目前为止的代码是:
#Plot the raw data
plot(AC$Height.m, AC$ag.biomass, xlim=c(0,2.5), ylim=c(0,40))
#Generate a NLS fit and plot curve on the raw data to show misfit
bg.nls = nls(ag.biomass ~ B0*Height.m^B1, data=AC, start=list(B0=8,B1=2))
curve(coef(bg.nls)[1]*x^coef(bg.nls)[2], col="red", add=TRUE)
#Provide example of appropriate growth curve given biological understanding
curve(6*x^1.7, col="blue", add=TRUE)
最佳答案
您可以使用 upper
对系数拟合设置约束。和 lower
nls
的参数.约束仅适用于 port
算法,所以你也需要指定它。简单的例子:
无约束:
nls(mpg ~ wt^a + disp^b, data=mtcars, start=list(a=3.5, b=0.1), algorithm="port")
Nonlinear regression model
model: mpg ~ wt^a + disp^b
data: mtcars
a b
0.4441 0.5025
residual sum-of-squares: 3612
nls(mpg ~ wt^a + disp^b, data=mtcars, start=list(a=3.5, b=0.1), algorithm="port",
lower=c(3,0), upper=c(5,0.25))
Nonlinear regression model
model: mpg ~ wt^a + disp^b
data: mtcars
a b
3 0
residual sum-of-squares: 78781
Algorithm "port", convergence message: relative convergence (4)
关于r - 如何设置 nls 系数的界限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33573987/
我试图在 for 循环中更新我的 for 循环的上限。 例子 numvar = 3 for i=2 To numvar Step 2 'code... numvar = numvar
给定f(x, y)和g(n): def f(x, y): if x < 1 or y < 1: return 1 return f(x - 1, y - 1) + f(
我是一名优秀的程序员,十分优秀!