标签: nls

预测不能显示预测的标准误差,se.fit = TRUE

如帮助(predict.nls)中所述,当se.fit = TRUE时,应计算预测的标准误差.但是,我在下面的代码不显示,而只显示预测.

alloy <- data.frame(x=c(10,30,51,101,203,405,608,810,1013,2026,4052,6078,
                        8104,10130),
                    y=c(0.3561333,0.3453,0.3355,0.327453,0.3065299,0.2839316,
                        0.2675214,0.2552821,0.2455726,0.2264957,0.2049573,
                        0.1886496,0.1755897,0.1651624))
model <- nls(y ~ a * x^(-b), data=alloy, start=list(a=.5, b=.1))
predict(model, se=TRUE)
Run Code Online (Sandbox Code Playgroud)

我的代码出了什么问题?谢谢!

r nls predict

2
推荐指数
1
解决办法
1052
查看次数

比较非线性回归模型

我想用r平方值比较三个模型的曲线拟合.我使用nlsdrc包运行模型.但是,似乎这些包都没有计算r平方值; 但它们给出了"残差标准误差"和"残差平方和".

这两个可以用来比较模型拟合吗?

r nls

2
推荐指数
1
解决办法
6660
查看次数

R中拟合广义非线性模型

我想拟合以下广义非线性模型:Probit(G)=K+1/Sigma*(Temp-T0)*Time.作为天真的模特,我创造Probits(G)qnorm(G)然后适合了Nonlinear Model.但我想,以适应Nonlinear Modellogit链接类似glm的功能R.如果有人帮我配合带logit链接的广义非线性模型,我将非常感激R.在此先感谢您的帮助.

Data <-
  structure(list(Temp = c(23L, 23L, 23L, 23L, 23L, 23L, 23L, 23L,
  27L, 27L, 27L, 27L, 27L, 27L, 33L, 33L, 33L, 33L, 33L, 33L, 33L,
  35L, 35L, 35L, 35L, 35L), Time = c(144L, 168L, 192L, 216L, 240L,
  264L, 288L, 312L, 120L, 144L, 168L, 192L, 216L, 240L, 72L, 96L,
  120L, 144L, 168L, 192L, 216L, 96L, 120L, 144L, 168L, …
Run Code Online (Sandbox Code Playgroud)

r nls gnm

2
推荐指数
1
解决办法
2238
查看次数

强制 nls 拟合通过指定点的曲线

我正在尝试将 Boltzmann sigmoid 拟合1/(1+exp((x-p1)/p2))到这个小型实验数据集:

xdata <- c(-60,-50,-40,-30,-20,-10,-0,10)
ydata <- c(0.04, 0.09, 0.38, 0.63, 0.79, 1, 0.83, 0.56)
Run Code Online (Sandbox Code Playgroud)

我知道这很简单。例如,使用nls

fit <-nls(ydata ~ 1/(1+exp((xdata-p1)/p2)),start=list(p1=mean(xdata),p2=-5))
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

Formula: ydata ~ 1/(1 + exp((xdata - p1)/p2))

Parameters:
   Estimate Std. Error t value Pr(>|t|)    
p1  -33.671      4.755  -7.081 0.000398 ***
p2  -10.336      4.312  -2.397 0.053490 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1904 on 6 degrees of freedom

Number of …
Run Code Online (Sandbox Code Playgroud)

r curve-fitting nls

2
推荐指数
1
解决办法
1797
查看次数

R nls:拟合数据曲线

我无法找到适合我数据的正确曲线.如果比我更了解情况的人有更好的拟合曲线的想法/解决方案,我将非常感激.

数据:目的是从y预测x

dat <- data.frame(x = c(15,25,50,100,150,200,300,400,500,700,850,1000,1500),
                  y = c(43,45.16,47.41,53.74,59.66,65.19,76.4,86.12,92.97,
                        103.15,106.34,108.21,113) ) 
Run Code Online (Sandbox Code Playgroud)

这是我走了多远:

model <- nls(x ~ a * exp( (log(2) / b ) * y),
             data = dat, start = list(a = 1, b = 15 ), trace = T)
Run Code Online (Sandbox Code Playgroud)

哪个不合适:

dat$pred <- predict(model, list(y = dat$y))
plot( dat$y, dat$x, type = 'o', lty = 2)
points( dat$y, dat$pred, type = 'o', col = 'red')
Run Code Online (Sandbox Code Playgroud)

适合情节

谢谢,F

r nls

2
推荐指数
1
解决办法
1009
查看次数

如何在nls系数上设置界限?

有没有办法限制NLS系数在R中可以采用的值范围?我知道我的数据应该存在的曲线形状; 然而,NLS未能通过产生<1的功率系数来产生这样的曲线.

本质上,我正在尝试为一组幼树干(幼树)数据产生茎高度与地上生物量的关系.树木的高度受到场地寒冷天气的阻碍,因此它们接近高度限制......但是随着年龄的增长,周长和生物量继续增长.

问题是我只有一定范围树高的数据,并且缺少高度<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)
Run Code Online (Sandbox Code Playgroud)

这产生了以下情节.红线表示失配NLS(主要是由于B1 <1),而蓝线表示生物学上合适的拟合.

在此输入图像描述

我知道有很多统计问题与这种生成模型拟合的方法有关 - 但是我在这里并不关心它们.相反,我只是对将B1值限制为大于1的值的技术问题感兴趣.有没有办法这样做?

r constraints nls

2
推荐指数
1
解决办法
5178
查看次数

`nls`拟合错误:无论起始值如何,总是达到最大迭代次数

将此参数化用于增长曲线逻辑模型

在此输入图像描述

我创建了一些点:K = 0.7; y0 = 0.01; r = 0.3

df = data.frame(x= seq(1, 50, by = 5))
df$y = 0.7/(1+((0.7-0.01)/0.01)*exp(-0.3*df$x))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有人能告诉我如果用模型启动器创建数据我怎么能有一个拟合错误?

fo = df$y ~ K/(1+((K-y0)/y0)*exp(-r*df$x))

model<-nls(fo,
           start = list(K=0.7, y0=0.01, r=0.3),
           df, 
           nls.control(maxiter = 1000))
Error in nls(fo, start = list(K = 0.7, y0 = 0.01, r = 0.3), df, nls.control(maxiter = 1000)) : 
  number of iterations exceeded maximum of 1000
Run Code Online (Sandbox Code Playgroud)

regression r nls non-linear-regression

2
推荐指数
1
解决办法
1224
查看次数

有没有办法在一个图上绘制具有不同衰减常数的指数衰减曲线?

我一直试图在一张图上绘制不同的指数衰减曲线。最初我认为这会很容易,但结果却令人沮丧。

我想得到什么:

我想要得到的图片。

nlsplot(k_data_nls, model = 6, start = c(a= 603.3, b= -0.03812), xlab = "hours", ylab = "copies")

nlsplot(r4, model=6, start=c(a=25.5487,b=-0.5723), xlab = "hours", ylab = "copies")

Run Code Online (Sandbox Code Playgroud)

以下是数据的一些附加代码:

df4 <- data.frame(hours=c(0,1,3,5,12,24,48,96,168,336,504,720), copies=c(603.3,406,588,393.27,458.47,501.67,767.53,444.13,340.6,298.47,61.42,51.6))
nlsfit(df4, model=6, start=c(a=603.3,b=-0.009955831526))
d4plot <- nlsplot(df4, model=6, start=c(a=603.3,b=-0.009955831526))

r4 <- data.frame(hours=c(0,1,3,5,12,24,48,96,168,336,504,720), copies=c(26,13.44,4.57,3.12,6.89,0.71,0.47,0.47,0,0,0.24,0.48))
nlsLM(copies ~ a*exp(b*hours), data=r4, start=list(a=26,b=-0.65986))
r4plot <- nlsplot(r4, model=6, start=c(a=25.5487,b=-0.5723))
Run Code Online (Sandbox Code Playgroud)

本质上,我希望能够在一张图上获得这两个图。我是 R 的新手,所以我不太确定我可以从哪里开始。谢谢 !

graphics r nls

2
推荐指数
1
解决办法
126
查看次数

R中的nls收敛消息

我正在寻找来自nlsin的收敛消息的定义R。特别是,relative convergence (4)和之间有什么区别both X-convergence and relative convergence (5)

message r nls convergence

1
推荐指数
1
解决办法
1115
查看次数

为什么 R 中的 nls(非线性模型)方程与 Excel 不同?

我想使用 nls 包检查非线性模型。

power<- nls(formula= agw~a*area^b, data=calibration_6, start=list(a=1, b=1))
summary(power)
Run Code Online (Sandbox Code Playgroud)

这是关于模型的参数。

在此处输入图片说明

它说 y= 0.85844 x^1.37629

但是,在 Excel 中(下图)。它说 y= 0.7553 x^1.419

在此处输入图片说明

如果我在 R 中绘制图形,则图形是相同的。为什么同一个模型产生不同的参数?

我需要更信任哪个方程式?你能回答我吗?

非常感谢。

ggplot(data=calibration_6, aes(x=area, y=agw)) + 
  geom_point (shape=19, color="cadetblue" ,size=2.5) +
  stat_smooth(method = 'nls', formula= y~a*x^b, start = list(a = 0, b=0), se=FALSE, color="Dark Red",level=0.95) +
  scale_x_continuous(breaks = seq(0,25,5),limits = c(0,25)) +
  scale_y_continuous(breaks = seq(0,80,10), limits = c(0,80)) +
  theme_bw() + 
  theme(panel.grid = element_blank())
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

parameters r nls non-linear-regression

1
推荐指数
1
解决办法
126
查看次数