Weibull分布出错

时间:2013-12-03 19:21:05

标签: plot gnuplot weibull

file.data具有以下值以符合Weibull分布,

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

在Weibull分布函数f(x)=1.0-exp(-lambda*x**n)之后,它给出错误:

fit f(x) 'data.dat' via lambda, n

最后绘制f(x)和xy图有很大的差异。

任何反馈意见都将受到高度赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

有几件事:

  1. 您必须跳过第一行(如果确实是x y)。

  2. 您必须使用正确的功能(pdf而不是CDF,请参阅http://en.wikipedia.org/wiki/Weibull_distribution,就像您在https://stackoverflow.com/q/20336051/2604213中所做的那样)

  3. 您必须使用其他缩放参数,因为您的数据未规范化

  4. 您必须为拟合选择足够的初始值。

  5. 以下工作正常:

    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
    

    这给出了(用4.6.4):

    enter image description here

答案 1 :(得分:0)

如果那是你提供给gnuplot的实际命令,那么它将无效,因为你还没有定义f(x)。