问题标签 [best-fit-curve]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
24456 浏览

statistics - 简单的多维曲线拟合

我有一堆数据,一般是a,b,c,...,y

其中 y = f(a, b, c...)

其中大多数是三四个变量,并且有 10k - 10M 记录。我的一般假设是它们本质上是代数的,例如:

y = P1 a^E1 + P2 b^E2 + P3 c^E3

不幸的是,我上一次统计分析课是在 20 年前。获得 f 的良好近似值的最简单方法是什么?具有极小学习曲线的开源工具(即我可以在一小时左右得到一个体面的近似值的工具)将是理想的。谢谢!

0 投票
2 回答
841 浏览

c++ - 找到“最干净”数据子集的方法,即具有最低可变性的子集

我试图在几个数据集中找到一个趋势。趋势涉及找到最佳拟合线,但如果我认为该过程对于任何其他模型都不会太不同(可能更耗时)。

有3种可能的场景:

  1. 所有数据都符合单一趋势且可变性低的所有良好数据
  2. 所有或大部分数据表现出巨大可变性并且必须丢弃整个数据集的所有不良数据。
  3. 部分好数据,其中一些数据可能很好,而其余数据需要丢弃。

如果具有极端可变性的数据的净百分比太高,则必须丢弃整个数据集。这意味着基本上只有这种类型的数据,并且不良数据的百分比各不相同:

0% 坏 = 案例 1
100% 坏 = 案例 2

我只寻找低可变性的连续部分;即我不在乎是否有一些符合趋势的个别点

我正在寻找的是一种对数据集进行分段并搜索指定趋势的智能方法。由于问题的性质,我不是在寻找最适合整体趋势的部分。我知道具有“更清洁”数据的小节最终将具有与整体(包含异常值)略有不同的趋势线属性。这正是我想要的,因为这部分数据最能反映实际趋势。

我精通 C++,但由于我试图使代码开源和跨平台,所以我坚持 ISO C++ 标准。这意味着没有 .NET,但如果您有 .NET 示例,如果您还可以帮助我将其转换为 ISO C++,我将不胜感激。我也有 JAVA、一些汇编和 fortran 的知识。

数据集本身并不庞大,但大约有 1.5 亿个,因此蛮力可能不是最好的方法。

提前致谢


我知道我有一些事情悬而未决,所以让我澄清一下:

  • 每个数据集可以并且可能会有不同的趋势;即我不是在所有数据集中寻找相同的趋势。
  • 程序用户将定义他们想要的合身程度
  • 程序用户将定义子集在考虑趋势拟合之前必须有多连续
  • 如果程序被扩展以允许任何类型的拟合(不仅仅是线性),用户将定义要拟合的模型——这不是一个优先事项,如果上述查询得到解决,那么我相信这个扩展会相对琐碎
  • The outliers come about as a result of the nature of the experiment and the data acquisition technique whereby data from "bad" sections must still be collected even though these areas are known to give outliers. The discarding of these outliers DOES NOT imply that the data is being manipulated to fit any trend (statistics disclaimer, hehe).
0 投票
7 回答
5159 浏览

matlab - 曲线拟合平面上的未排序点

问题:如果它们不是单值的,如何将曲线拟合到平面上的点?

对于所示的示例,如何将一条曲线(如黑色曲线)拟合到嘈杂的蓝色数据?它类似于样条平滑,但我不知道数据的顺序。

Matlab 将是首选,但伪代码很好。或者指出这个问题的正确术语是什么会很棒。

谢谢

0 投票
5 回答
5807 浏览

python - 拟合阶跃函数

我正在尝试使用 scipy.optimize.leastsq 拟合阶跃函数。考虑以下示例:

参数是台阶的位置和两侧的水平。奇怪的是,第一个自由参数永远不会改变,如果你运行 scipy 会给出

当第一个参数设置为 250 和第二个参数设置为 -10 时最佳。

有没有人知道为什么这可能不起作用以及如何让它起作用?

如果我跑

我发现:

其中第一个数字是最小平方找到的,第二个是它应该找到的实际最优函数的值。

0 投票
2 回答
833 浏览

labview - LabView cos 拟合

我正在开发一个程序,该程序需要拟合大量余弦波以确定函数的参数之一。我使用的方程是 y = y_0 + Acos((4*pi*L)/x + pi) 其中 L 是我试图从最佳拟合线获得的值。

我知道可以手动为每组数据正确执行此操作,但是自动化此过程的最佳方法是什么?我目前正在从文本文件中读取数据,并运行一个循环,初始参数发生变化,直到我有一个振幅与数据相似的参数值数组,然后我检查中心峰值上的点之间的百分比差异和两个末端峰,以尝试选择最好的一个。它始终选择比我手动安装时得到的值更低的值(几乎正好是一个阶段)。那么有没有办法改进这种方法,或者另一种效果更好的方法?

编辑:我的LabVIEW版本有一个cos拟合VI,这是我正在使用的,问题是当我尝试通过使用循环更改初始参数来自动拟合时,我不知道如何让程序选择最好的适合人类选择的线条。

0 投票
1 回答
993 浏览

r - 绘制最佳拟合非线性曲线的新值

我已经为非线性函数创建了最佳拟合。它似乎工作正常:

我观察的情节是正确的。我无法在我的绘图上显示最佳拟合曲线。我创建了具有 1000 个值的 xl 自变量,并且我想使用最佳拟合来定义新值。当我调用“行”过程时,我收到错误消息:

xy.coords(x, y) 中的错误:“x”和“y”长度不同如果我尝试仅执行预测函数:

我可以看到 xl 有 1000 个组件,但“a”只有 16 个组件。我不应该在 a 中有相同数量的值吗?

使用的数据:

0 投票
1 回答
2102 浏览

java - 将表面拟合到java中的3D数据点集合

嗨,我有一堆 XYZ 数据点。我想估计一个最适合这些点的表面,以便稍后我可以输入一个 XY 对并返回这个 XY 对位于表面上的 Z 值。

是否有现有的 Java 库可以为我估算表面?

如果没有,任何人都可以向我推荐一些可以描述计算方法的东西吗?

如果可能的话,我希望能够对这些点进行加权(有些点不太可靠,因此对成品表面的影响应该较小)。

0 投票
1 回答
301 浏览

javascript - 两条曲线之间的最佳路径

我的目标是在这两个电路曲线形状之间找到一条平滑的最佳拟合线。有没有比我更好的算法可以像这个例子一样在两条线之间找到一组点(或曲线)?

我的例子

到目前为止,我的算法采用内部部分,并为每个点找到最接近的部分,但这不起作用,因为(查看第一个角)。

(红色是内部,绿色是外部,蓝色是我找到的优化点)

这是我的 jsfiddle:http: //jsfiddle.net/STLuG/

这是算法:

谢谢

0 投票
2 回答
1259 浏览

c# - 如果最佳拟合直线是预测的最佳方法

我需要根据二维坐标系上给定的一组点样本来预测下一个点。

我正在使用最佳拟合直线法进行此类预测。

请让我知道是否有比最佳拟合直线更好的方法?

我的代码如下:

0 投票
1 回答
482 浏览

vb.net - Find Best-Fit-Line and Correlation Between Two Tables in Microsoft Access?

I have two queries in a Microsoft Access database. They are named Average and Home_Runs. They both share the same first three columns Name, [Year] and Month.

Query: Average

Query: Home_Runs

I need to offset the data before I begin the calculations. I need to determine how the Home Runs from one month relate the the Average from the previous month. So it is not a direct month-to-month comparison. I need to perform a month-to-previous-month comparison.

I need to do two calculate two things from these two queries.

First: With Average being the X-axis and Home_Runs being the Y-Axis. I need to find the correlation between these data points.

Second: With Average being the X-axis and Home_Runs being the Y-Axis. I need to find the equation of the best-fit-line between all of these data points. More specifically I need to find the value of the Y variable when the X variable equals certain values.

Additional Information:

In the end I need to return a table that looks like this:

What is the best way to accomplish these things?