重新调节曲线的因素一个曲线

23日视图(30天)
你好,
我有一组曲线,我想重新调节到一个主曲线。如何获得比例系数?
我附上此情节和我想要的结果。谢谢你!
2的评论
Kabir Shariff
Kabir Shariff 2021年7月7日
我想要完成两个步骤;
  1. 重新调节我的数据到一个单独的主曲线(比如使用数据作为参考数据)与一个常数如图2所示。和
  2. 使用曲线拟合工具(分段、指数、幂律…)获得最佳方程来表示主曲线
我如何获得我的主曲线数据集(a, B, C, D, E) ?
注:第二个图是一个参考案例不是我的数据。我想要类似的东西
谢谢你!

登录置评。

接受的答案

Kabir Shariff
Kabir Shariff 2021年7月11日
编辑:Kabir Shariff 2021年7月11日
你好,谢谢你的帮助。我终于找到了一种方法来重新调节数据,然后使用一个合适的函数作为建议。
我使用了 fminsearch 优化与 规范 随着函数onject找到两个数据集之间的系数。
我选择了rB作为参考数据,找到系数使用的代码
scale_coef = fminsearch (@ (c)规范(rA. / c-rB, 2), 1)
代码返回系数值
scale_coef =
0.7119
每个数据集确定关于rB的系数,然后增加到所有数据点来重新调节数据
然后配备模型方程;
r = * (1-exp (- b * xA)) + c * xA + d;
一般模型:
f (x) = * (1-exp (- b * x)) + c * x + d
系数(95%置信范围):
= 5.394 (5.181,5.608)
b = 0.3305 (0.2965, 0.3646)
c = 0.1197 (0.1116, 0.1278)
d = 0.0337 (-0.04226, 0.1097)
适合:
上交所:22.21
r平方:0.9921
调整r平方:0.992
RMSE: 0.3324

更多的答案(2)


约翰D 'Errico
约翰D 'Errico 2021年7月7日
编辑:约翰D 'Errico 2021年7月7日
你想适应这些曲线使用一些非线性模型。但是你甚至没有说你想用什么模型,它将允许你将所有曲线的数据在你的家庭选择模型。
它看起来像每个曲线可能通过1 x = = 0。我想如果你考虑一些基本模型,也许:
日志(r = 1 + x + 1)
然后我们可以查看每个曲线re-scaled版本,也许一般家庭:
r (x, a, b) = 1 + *日志(b * x + 1)
每个曲线仍有相同的属性,在x = = 0时,它会有r (0, a, b) = 1。在曲线的家人,我们可以假设任何你想要的日志基础。使用log10如果你感觉更舒适,或自然对数,即便log2,这很好。无论看起来最合适就好。
你不提供任何数据,所以很难确定,模型将是合适的,但是它应该显示的一般形状。现在你需要做的是使用工具像曲线拟合工具箱。你也可以使用nlinfit,如果你有统计结核病或lsqcurvefit,如果你有优化结核。恕我直言,CFTB稍微更好的在我看来对于这类问题,因为接口的目的是解决这类问题很自然。CFTB还直接给你参数的不确定性,人们似乎喜欢看到它们。其他TBs甚至远程难以使用。
对于每个曲线,您将执行健康,使用fittype的形式:
英国《金融时报》= fittype (“1 + *日志(b * x + 1)”,“它”,“x”);
然后您将使用函数适合估计从每个曲线a和b。所以每个曲线a和b的值,特定于该曲线。再次,因为我缺乏你的数据,我不能直接显示这可能是如何工作的。这里是一些敷衍了事,假数据。
x = [1.4631 1.9048 4.1775 8.2032 9.4854 12.221 13.587 - 13.701 14.363 - 14.473);
r = [1.9164 2.1207 2.9809 3.9242 4.0916 4.5444 4.7152 - 4.7689 4.8723 - 4.8862);
情节(x, r,“莫”)
我们会适应数据与健康…
mdl =适合(x ' r ',英国《金融时报》,“开始”[1],“低”,(。001。001])
mdl =
通用模型:mdl (x) = 1 + *日志(b * x + 1)系数(95%置信界限):a = 2.059 (1.947, 2.171) = 0.3803 (0.338, 0.4225)
采用自然对数。结果将是参数a和b,这样的曲线可以“校准”以适应主模型。对于这个数据集,大约是2.059,和b大约是0.3803。如果你现在想re-scale数据会覆盖到主曲线,你会这样做:
%,情节在蓝色的主模型:
fplot (@ (x) 1 +日志(x + 1), [0 5))
持有
% re-scaled数据:
小红帽= 1 + (r - 1) / mdl.a;
xhat = x * mdl.b;
%为红色,新数据。
情节(xhat,小红帽,“罗”)
如您所见,现在的数据位于主曲线的顶端。在这种情况下,由于噪音很低,曲线拟合很好。
我可以使用其他工具来做配合,但CFTB这个问题是一个很好的选择。也可能,我选择为你的数据模型并不是最好的一个,但因为我没有你的数据,这纯粹是我胡乱猜想。
3评论
Kabir Shariff
Kabir Shariff 2021年7月8日
你好,
非常感谢你的援助。我尝试过不同的模型表达式cftool应用但似乎4自定义指数表达式匹配更好的将所有的数据集。
r =”* (1-exp (- b * xA)) + c * xA + d ';%模型方程
英国《金融时报》= fittype (r,“独立”,“xA”)% %合适的函数
mdlA =适合(xA、rA、英国《金融时报》,“开始”[1 1 1 1])%配合模型适用于英国《金融时报》的数据xA,风湿性关节炎,初始假设[1 1 1 1])
mdlB =适合(xB, rB,英国《金融时报》,“开始”[1 1 1 1])
mdlC =适合(xC、rC、英国《金融时报》,“开始”[1 1 1 1])
mdlD =适合(xD, rD,英国《金融时报》,“开始”[1 1 1 1])
mdlE =适合(xE,再保险,英国《金融时报》,“开始”[1 1 1 1])
对于每个数据集,一个常数a, b, c和d /优化以适应样本数据定义(适合,适合b . .)。
现在我的问题是 我怎样才能重新调节附加到一个主曲线的数据点吗
使用数据作为参考曲线,然后分裂/ miltiplying数据B, C, D和E,一个常数(或函数),如上图所示。
因为所有数据集具有相同的形状(尽管不是相同数量的点),我应该期待所有数据遵循相同的彭定康。
最后我可以cfit模型能够应用在主曲线。
谢谢你!

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!