评估分布选择

Python 中的蒙特卡洛模拟

Izzy Weber

Curriculum Manager, DataCamp

选择变量的概率分布

  1. 直观理解数据与可用的概率分布
  2. 用最大似然估计(MLE)比较候选分布
  3. 用 Kolmogorov–Smirnov 检验评估分布的拟合优度
    • 量化数据经验分布与候选理论分布的距离
    • scipy.stats.kstest() 计算
Python 中的蒙特卡洛模拟

评估分布选择:年龄

results = []

list_of_dists = ["laplace", "norm", "expon"]
for i in list_of_dists: dist = getattr(st, i)
param = dist.fit(dia["age"])
result = st.kstest(dia["age"], i, args=param)
print(result)

按拉普拉斯、正态、指数分布的顺序结果:

KstestResult(statistic=0.09511179937112832, pvalue=0.0006239579389182981)
KstestResult(statistic=0.0615913626181368, pvalue=0.06703225234359811)
KstestResult(statistic=0.2536037941921312, pvalue=1.5202547969084796e-25)
Python 中的蒙特卡洛模拟

评估分布选择:年龄

按拉普拉斯、正态、指数分布的顺序结果:

KstestResult(statistic=0.09511179937112832, pvalue=0.0006239579389182981)
KstestResult(statistic=0.0615913626181368, pvalue=0.06703225234359811)
KstestResult(statistic=0.2536037941921312, pvalue=1.5202547969084796e-25)
Python 中的蒙特卡洛模拟

评估分布选择:总胆固醇(血清)

results = []
list_of_dists = ["laplace", "norm", "expon"]

for i in list_of_dists: dist = getattr(st, i) param = dist.fit(dia["tc"]) result = st.kstest(dia["tc"], i, args=param) print(result)

按拉普拉斯、正态、指数分布的顺序结果:

KstestResult(statistic=0.06435779928393615, pvalue=0.04915329841106708)
KstestResult(statistic=0.051165295747227724, pvalue=0.19085587687385897)
KstestResult(statistic=0.3318461436889846, pvalue=7.018486943525e-44)
Python 中的蒙特卡洛模拟

Let's practice!

Python 中的蒙特卡洛模拟

Preparing Video For Download...