def
Cal_Weibull_CDF
(
data
)
:
cdf
=
sm
.
distributions
.
ECDF
(
data
)
data_min
=
min
(
data
)
data_max
=
max
(
data
)
x
=
np
.
linspace
(
data_min
+
1.0
,
data_max
-
1.0
,
num
=
100
,
endpoint
=
True
)
X
=
np
.
log
(
x
)
Y
=
np
.
log
(
-
np
.
log
(
1.0
-
cdf
(
x
)
)
)
coef
=
np
.
polyfit
(
X
,
Y
,
1
)
a
=
coef
[
0
]
b
=
math
.
exp
(
-
coef
[
1
]
/
a
)
fcdf
=
lambda
x
:
1
-
np
.
exp
(
-
np
.
power
(
x
/
b
,
a
)
)
return
fcdf
n
=
100
k
=
2.89
lam
=
1.95
obs
=
exponweib
.
rvs
(
k
,
lam
,
scale
=
20
,
size
=
n
)
ocdf
=
sm
.
distributions
.
ECDF
(
obs
)
fcdf
=
Cal_Weibull_CDF
(
obs
)
x
=
np
.
linspace
(
0
,
50
,
num
=
100
,
endpoint
=
True
)
y1
=
ocdf
(
x
)
y2
=
fcdf
(
x
)
plt
.
figure
(
)
plt
.
plot
(
x
,
y1
,
color
=
'blue'
,
label
=
'O'
)
plt
.
plot
(
x
,
y2
,
color
=
'black'
,
label
=
'F'
)
plt
.
legend
(
)
plt
.
show
(
)
拟合结果:
-
Weibull分布参数估计方法及其应用_张秀芝
function a_b_c = wbl3fit(x)
% f(x) = b*a^(-b)*(x-c)^(b-1)*exp(-((x-c)/a)^b)
% a ------ 尺度参数
% b ------ 形状参数
% c ------ 位置参数
上一章里面我们主要针对
韦伯
分布
的基本公式和意义进行了阐述,本章我们深入一点,针对
韦伯
分布
的公式里面的三个重要参数的作用和意义进行详细讨论。
韦伯
分布
从诞生起,就因为他
分布
的多样性,导致适用于很多不同的应用场景。支持这种广泛应用的基础是,这3个参数的变换可以带来
分布
的显著的改变。【案,这些
分布
方程在(1)章我们已经必须详细的介绍了各种类型和推导,现在还是列出3参数的公式。】话不多说,
韦伯
分布
的最详细的表达式,我们在上一章已经表述。那就是三参数的
韦伯
分布
。
其概率密度函数PDF表达式和图形如下:
f(t;β,η
的置信区间、比较
拟合
效果。
你可以使用统计软件,如SPSS或R,来判断数据是否符合
Weibull
分布
。你可以通过比较
拟合
优度,即
拟合
曲线与实际数据的差距,来评估
拟合
效果。此外,你还可以计算置信区间,即
拟合
参数的可能取值范围,来评估
拟合
系数的稳定性。如果
拟合
效果较好,且置信区间较小,则可以认为数据符合
Weibull
分布
。
不论是 matlab 还是 R 语言,根据一组数据
拟合
分布
函数时,只能
拟合
出特定
分布
的参数值,并不能给出最适合这组数据的
分布
函数。例如,matlab 有 normfit 函数来计算一组数据
拟合
成正态
分布
时的均值和方差,wblfit 函数来给出
拟合
成威布尔
分布
的参数值,还有 gamfit, binofit 函数等。R 语言中也有 fitdistr函数。
它们都不能自动给出最佳
拟合
分布
,个人觉得可...
这是一门简单易懂的概率论课程!看教材学概率论实在是看不懂,教材编写者一般会认为教材有老师来讲解,所以自学教材会备受打击。本课程最大特色就是 简单易懂, “简单易懂”意味着我会用简单的语言,你容易听懂的语言教你概率知识,而不是让你越听越晕。没有概率论就没有统计学,也基本上就不存在机器学习了,从而人工智能也不会有今天这样的繁荣发展。如果要从事数据科学行业,不懂概率论或者对概率论一知半解,基本上都要回过头重新学习概率论,因为吃不透概率论就吃不透算法原理,也就只能永远半吊子,在数据科学行业半吊子那基本上就没有你的位置了。各位,还是沉下心来老老实实的把概率论认真的学好吧!别想着速成,速成只会浪费你更多的时间!当然了,找到一个好老师教你,的确可以让你比别人更快的学会学好,比如我的这门概率论教程!
plt.title("Fit results: mu = %.2f, std = %.2f" % (mu, std))
plt.xlabel('data')
plt.ylabel('Probability density')
plt.show()
运行上述代码,即可生成一张包含随机数据的直方图以及
拟合
的正态
分布
曲线。其中,mu和std分别表示正态
分布
的均值和标准差。