Plot 威布尔分布中的误差

Plot 威布尔分布中的误差,plot,gnuplot,weibull,Plot,Gnuplot,Weibull,file.data具有以下值以符合威布尔分布 x y 2.53 0.00 0.70 0.99 0.60 2.45 0.49 5.36 0.40 9.31 0.31 18.53 0.22 30.24 0.11 42.23 在威布尔分布函数f(x)=1.0-exp(-lambda*x**n)之后,它给出了错误: fit f(x) 'data.dat' via lambda, n 最后绘制的f(x)图和xy图有很大的差异 如有任何反馈,

file.data具有以下值以符合威布尔分布

x       y 
2.53    0.00
0.70    0.99
0.60    2.45
0.49    5.36
0.40    9.31
0.31    18.53
0.22    30.24
0.11    42.23
在威布尔分布函数
f(x)=1.0-exp(-lambda*x**n)
之后,它给出了错误:

fit f(x) 'data.dat' via lambda, n
最后绘制的f(x)图和xy图有很大的差异


如有任何反馈,将不胜感激。谢谢

如果这是您提供给gnuplot的实际命令,它将不起作用,因为您尚未定义f(x)。

如果这是您提供给gnuplot的实际命令,它将不起作用,因为您尚未定义f(x)。

  • 必须跳过第一行(如果它确实是
    xy

  • 您必须使用正确的函数(pdf而不是CDF,请参阅,就像您在中所做的那样)

  • 您必须使用额外的缩放参数,因为您的数据未规范化

  • 必须为管件选择足够的初始值

  • 以下工作很好:

    f(x) = (x < 0 ? 0 : a*(x/lambda)**(n-1)*exp(-(x/lambda)**n))
    n = 0.5
    a = 100
    lambda = 0.15
    fit f(x) 'data.dat' every ::1 via lambda, n, a
    
    set encoding utf8
    plot f(x) title sprintf('λ = %.2f, n = %.2f', lambda, n), 'data.dat' every ::1
    
    f(x)=(x<0?0:a*(x/lambda)**(n-1)*exp(-(x/lambda)**n))
    n=0.5
    a=100
    λ=0.15
    通过lambda,n,a拟合f(x)'data.dat'every::1
    设置编码utf8
    图f(x)标题sprintf('λ=%.2f,n=%.2f',lambda,n),'data.dat'every::1
    
    这将给出(见第4.6.4节):

    有几件事:

  • 必须跳过第一行(如果它确实是
    xy

  • 您必须使用正确的函数(pdf而不是CDF,请参阅,就像您在中所做的那样)

  • 您必须使用额外的缩放参数,因为您的数据未规范化

  • 必须为管件选择足够的初始值

  • 以下工作很好:

    f(x) = (x < 0 ? 0 : a*(x/lambda)**(n-1)*exp(-(x/lambda)**n))
    n = 0.5
    a = 100
    lambda = 0.15
    fit f(x) 'data.dat' every ::1 via lambda, n, a
    
    set encoding utf8
    plot f(x) title sprintf('λ = %.2f, n = %.2f', lambda, n), 'data.dat' every ::1
    
    f(x)=(x<0?0:a*(x/lambda)**(n-1)*exp(-(x/lambda)**n))
    n=0.5
    a=100
    λ=0.15
    通过lambda,n,a拟合f(x)'data.dat'every::1
    设置编码utf8
    图f(x)标题sprintf('λ=%.2f,n=%.2f',lambda,n),'data.dat'every::1
    
    这将给出(见第4.6.4节):


    1。我的文件有多个列,但{fit f(x)'data.dat'u4:($7)via lambda,n,a}不起作用,2。谢谢你的链接,3。您是如何得出附加参数a=100?和4的结论的。你是如何正确猜测n,a和lambda的?非常感谢!你是怎么做到“一半”pdf的?我总是让“全钟形”@ChristophI使用另一个参数
    a
    ,因为您的数据没有标准化。我只是玩了一下
    a
    lambda
    n
    来接近
    fit
    。Weibull分布仅适用于正
    x
    -值。区分是在
    f(x)
    中通过检查
    (x<0?…:)
    完成的。谢谢,但是你是如何进行半图的?我总是有完整的铃铛形状/我在4.6.4版中使用了答案中所示的脚本。和
    设置端子pngcairo尺寸600400;将输出设置为“foo.png”
    .1。我的文件有多个列,但{fit f(x)'data.dat'u4:($7)via lambda,n,a}不起作用,2。谢谢你的链接,3。您是如何得出附加参数a=100?和4的结论的。你是如何正确猜测n,a和lambda的?非常感谢!你是怎么做到“一半”pdf的?我总是让“全钟形”@ChristophI使用另一个参数
    a
    ,因为您的数据没有标准化。我只是玩了一下
    a
    lambda
    n
    来接近
    fit
    。Weibull分布仅适用于正
    x
    -值。区分是在
    f(x)
    中通过检查
    (x<0?…:)
    完成的。谢谢,但是你是如何进行半图的?我总是有完整的铃铛形状/我在4.6.4版中使用了答案中所示的脚本。和
    设置端子pngcairo尺寸600400;设置输出“foo.png”
    。哦,我实际上定义了cdf,而不是Christoph提到的pdf。谢谢李。哦,我实际上定义了cdf而不是Christoph提到的pdf。谢谢你,李。