非线性回归误差(单梯度矩阵)

1991年秋

我以前看到过一些非常简单的功能,但是我尝试使用的功能基本上是3个功能的混合

一个高斯(在x = 0处占优势),一个指数(接替后高斯)和一个将值四舍五入的常数

从我读过的该错误的其他示例来看,该问题似乎是由较差的初始猜测引起的,但我不知道如何纠正此问题,或者即使考虑到我的函数的大小,这甚至不是实际的问题。

这是我的代码和我正在查看的数据的一个示例:

Value<-c(163301.080,269704.110,334570.550,409536.530,433021.260,418962.060,349554.460,253987.570,124461.710,140750.480,52612.790,54286.427,26150.025,14631.210,15780.244,8053.618,4402.581,2251.137,2743.511,1707.508,1246.894)
Height<-c(400,300,200,0,-200,-400,-600,-800,-1000,-1000,-1200,-1220,-1300,-1400,-1400,-1500,-1600,-1700,-1700,-1800,-1900)

Framed<-data.frame(Value,Height)
i<-nls(Value~a*exp(-Height^2/(2*b^2))+ c*exp(-d*abs(Height)) + e,
                 data=Framed,start = list(a=410000,b=5,c=10000,d=5,e=1200))
plot(Value~Height)
summary(i)

谢谢您的帮助,现在我又遇到了同样的问题,我在下面的(R noob)中使用了您的技术,以前在mathematica中使用了操作图,我认为我的数据相对合适,这是一个图形我也在尝试拟合的数据(抱歉,无法上传,信誉不足)

http://imgur.com/GtzIzSr

但是我遇到了同样的问题,这与我的健康状况还是低距离的大量可变性有关?

莫尔克斯

您通常是关于蝙蝠起始值的,这是对的,这就是您的情况(的一部分)。查看您的数据和您的猜测,很明显出了点问题。但是在进行此操作之前,请注意,Framed创建顺序不正确。它应该是X Y,或:

Framed <- data.frame(Height, Value)

考虑到这一点,请尝试以下操作:

Vals2 <- 410000*exp(-Height^2/(2*5^2)) - 10000*exp(-5*abs(Height)) + 1200
plot(Framed) 
lines(Height, Vals2) 

你应该得到

在此处输入图片说明

这表明您的猜测有多糟糕。玩弄您的功能,可以很容易地看出来b还很遥远。将其更改为500,然后:

在此处输入图片说明

那好多了,但仍然不合适。而且,如果您更改其他参数(cde),您会发现它们似乎并不会对数据产生太大的影响,甚至根本不会影响数据。那可能是因为a更大,而您Height^2在第一学期就拥有。如果简化功能,然后运行:

i<-nls(Value~a*exp(-Height^2/(2*b^2)), start = list(a=410000,b=500))

您会找到合适的。这可能是因为非线性函数随着参数数量的增加而变得更难拟合,尤其是在它们之间存在协方差的情况下。较少的参数更容易拟合。但是,您必须决定是否可以仅使用ab

但是,如果将其绘制出来,它仍然看起来并不好。显然,您Value没有在处有最大值Height = 0,就像您的描述和模拟曲线中的最大值一样。您的数据似乎有错误,因为如果您尝试Height <- Height+200上述更改,您将获得

在此处输入图片说明

> summary(i)

Formula: Value ~ a * exp(-Height^2/(2 * b^2))

Parameters:
   Estimate Std. Error t value Pr(>|t|)    
a 449820.71   10236.43   43.94   <2e-16 ***
b    496.60      12.54   39.59   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 17790 on 19 degrees of freedom

Number of iterations to convergence: 4 
Achieved convergence tolerance: 2.164e-06

现在由您决定是否确实转移了数据,以及是否可以简化功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

比较非线性回归模型

来自分类Dev

梯度下降误差的逻辑回归

来自分类Dev

2条曲线同时非线性回归

来自分类Dev

对角非线性梯度算法

来自分类Dev

Fminsearch Matlab(非线性回归)

来自分类Dev

在R中绘制非线性回归

来自分类Dev

用ggplot绘制非线性回归列表

来自分类Dev

如何在ggplot2中绘制组内的非线性回归线和总数据?

来自分类Dev

如果使用正态分布的目标值进行训练,非线性回归算法的性能会更好吗?

来自分类Dev

用线性/非线性回归拟合两条曲线

来自分类Dev

Python移动视野时间序列非线性回归中的不良数据

来自分类Dev

如何基于R包Growthrates的非线性回归在ggplot中再现图?

来自分类Dev

GEKKO多元非线性回归

来自分类Dev

Keras序列模型非线性回归模型不良预测

来自分类Dev

神经网络的非线性回归

来自分类Dev

错误非线性回归python曲线拟合

来自分类Dev

多数据集的R中的非线性回归

来自分类Dev

梯度下降误差的逻辑回归

来自分类Dev

使用PyMC(2)进行稳健的非线性回归

来自分类Dev

对角非线性梯度算法

来自分类Dev

为R中的非线性回归找到合适的公式

来自分类Dev

确定R中非线性回归的拟合方程

来自分类Dev

如何对我的数据执行非线性回归

来自分类Dev

梯度下降的线性回归

来自分类Dev

最大化R中的非线性回归函数

来自分类Dev

非线性回归

来自分类Dev

如何在 Minitab 中运行非线性回归宏(简单的语法错误)?

来自分类Dev

如何从非线性回归拟合功率曲线?

来自分类Dev

在 esttab 中结合线性和非线性回归的输出