【发布时间】:2013-01-09 19:07:53
【问题描述】:
我是 R 的新手,不是数学家,而是遗传学家。我有很多组多对数据点。当它们被绘制出来时,它们会产生一条平坦的 S 曲线,其中大多数数据点最终都接近零标记。少数数据点飞得很远,形成了几乎两条 J 曲线,一条向下,一条向上。我需要找到数据急剧向上或向下变化的拐点。这可能是我的数学问题,但在我看来,如果我可以平滑曲线并将曲线拟合到直线上并得到一个方程,那么我可以对曲线求二阶导数并确定二阶导数变化的拐点标志。我在 excel 中进行了尝试,并使用曲线来获得近似拟合以获得起始公式,但数据中有一些“摆动”,因此即使我想手动完成所有操作,也无法确定任何一个拐点(其中我不)。我必须在其中找到这两个拐点的数百个数据集中的每一个都将产生大致相同的曲线,但拐点会略有不同,而精确地确定这些拐点对于问题来说绝对是至关重要的。因此,如果我可以在应该这样做的方程式中正确设置一次。为简单起见,我想将它们分成正曲线和负曲线,并分别进行。 (也许 s 曲线有一些更简单的公式,这不是一个好主意?)
我已尝试阅读手册,但由于我的数学能力较弱,这可能有点难以理解。我也找不到任何可以学习的类似例子。
这是我的数据集的头部: xy [1,] 1 0.00000000 [2,] 2 0.00062360 [3,] 3 0.00079720 [4,] 4 0.00085100 [5,] 5 0.00129020
(X 只是对许多数据点进行编号,并且 X 的数量会因单个数据集而有所不同。)
这是我已经解决的曲线拟合部分:
pos_curve1
我只是在艰难地做数学吗?我在 nls 上做错了什么?任何帮助将不胜感激。
【问题讨论】:
标签: nls