给定一组数据值,我试图得到描述数据的最佳理论分布。经过几天的研究,我想出了下面的python代码。在import numpy as np

import csv

import pandas as pd

import scipy.stats as st

import math

import sys

import matplotlib

matplotlib.use('Agg')

import matplotlib.pyplot as plt

def fit_to_all_distributions(data):

dist_names = ['fatiguelife', 'invgauss', 'johnsonsu', 'johnsonsb', 'lognorm', 'norminvgauss', 'powerlognorm', 'exponweib','genextreme', 'pareto']

params = {}

for dist_name in dist_names:

try:

dist = getattr(st, dist_name)

param = dist.fit(data)

params[dist_name] = param

except Exception:

print("Error occurred in fitting")

params[dist_name] = "Error"

return params

def get_best_distribution_using_chisquared_test(data, params):

histo, bin_edges = np.histogram(data, bins='auto', normed=False)

number_of_bins = len(bin_edges) - 1

observed_values = histo

dist_names = ['fatiguelife', 'invgauss', 'johnsonsu', 'johnsonsb', 'lognorm', 'norminvgauss', 'powerlognorm', 'exponweib','genextreme', 'pareto']

dist_results = []

for dist_name in dist_names:

param = params[dist_name]

if (param != "Error"):

# Applying the SSE test

arg = param[:-2]

loc = param[-2]

scale = param[-1]

cdf = getattr(st, dist_name).cdf(bin_edges, loc=loc, scale=scale, *arg)

expected_values = len(data) * np.diff(cdf)

c , p = st.chisquare(observed_values, expected_values, ddof=number_of_bins-len(param))

dist_results.append([dist_name, c, p])

# select the best fitted distribution

best_dist, best_c, best_p = None, sys.maxsize, 0

for item in dist_results:

name = item[0]

c = item[1]

p = item[2]

if (not math.isnan(c)):

if (c < best_c):

best_c = c

best_dist = name

best_p = p

# print the name of the best fit and its p value

print("Best fitting distribution: " + str(best_dist))

print("Best c value: " + str(best_c))

print("Best p value: " + str(best_p))

print("Parameters for the best fit: " + str(params[best_dist]))

return best_dist, best_c, params[best_dist], dist_results

然后我测试这个代码

^{pr2}$

由于数据点是使用Pareto分布生成的,它应该返回Pareto作为具有足够大p值(p&gt;0.05)的最佳拟合分布。在

但这就是我得到的输出。在Best fitting distribution: genextreme

Best c value: 106.46087793622216

Best p value: 7.626303538461713e-24

Parameters for the best fit: (-0.7664124294696955, 2.3217378846757164, 0.3711562696710188)

我的卡平方拟合优度测试的实现有什么问题吗?在

卡方 python_Python卡方拟合优度检验得到最优分布相关推荐

  1. 数据分析统计学原理第十二章:多个比例的比较、独立性及拟合优度检验 | 我的统计学原理复习日记

    个或多个总体比例的相等性的检验 例子: 三个或多个总体比例相等性的卡方检验的一般步骤 多重比较方法 我们使用卡方检验得到三个汽车车主总体的总体比例不全相等的结论.因此,有些总体比例之间存在差异,而且研 ...

  2. UA MATH566 统计理论 推导卡方拟合优度检验

    UA MATH566 统计理论 推导卡方拟合优度检验 卡方拟合优度检验主要是检验categorical data的,假设一共有ddd种category,每一种理论比例为pip_ipi​,满足 ∑i=1 ...

  3. 卡方 python_Python评分卡建模—卡方分箱

    原标题:Python评分卡建模-卡方分箱 今天主要给大家讲讲卡方分箱算法ChiMerge.先给大家介绍一下经常被提到的卡方分布和卡方检验是什么. 一.卡方分布 卡方分布(chi-square dist ...

  4. 卡方 python_卡方优度检测 (Python 实现) --基于jupyter

    卡方独立性检验 import numpy as np from scipy.stats import chi2_contingency # 列联表分析 from scipy.stats import ...

  5. 2×3卡方检验prism_抽样分布之卡方分布02 – 分布拟合优度检验

    前一篇说了卡方分布的定义和来由,以及卡方统计量,这次介绍下如何像卡尔·皮尔逊(Karl·Pearson)一样通过卡方统计量来做分布拟合优度检验Goodness-of-fit Test for Dist ...

  6. 应用统计学与R语言实现学习笔记(七)——拟合优度检验

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/ESA_DSQ/article/details/71513581 Chapter 7 Goodness ...

  7. python 评分卡_评分卡原理及Python实现

    信用风险计量模型可以包括跟个人信用评级,企业信用评级和国家信用评级.人信用评级有一系列评级模型组成,常见是A卡(申请评分卡).B卡(行为模型).C卡(催收模型)和F卡(反欺诈模型). 今天我们展示的是 ...

  8. 移动超级sim卡 无法下载卡_共迎未来无限可能!5G超级SIM卡亮相2019中国移动全球合作伙伴大会...

    紫光国微 安全芯片领导者 11月14日,2019中国移动全球合作伙伴大会在广州盛大开幕,大会以"5G+ 未来无限可能"为主题,携手全球数百家合作伙伴,聚焦5G领域最新创新成果,探讨 ...

  9. 最新AI产品经理求职动态:卡年龄、卡学历,这么卷,怎么办?

    最近一些AI产品经理和我交流求职经历,让我感觉今年求职市场有一个明显变化:企业开始非常严格的卡年龄.卡学历,甚至不太讲情面,真的是太卷了(人才,供大于求)... 目录 3个可能原因 2个求职问题 1个 ...

最新文章

  1. sql server 2008 故障转移群集
  2. 【代码笔记】iOS-获得设备型号
  3. OpenCV 绘制几何图形
  4. 备忘--Sinfors 设备出厂IP
  5. Python 日常练习1
  6. VTK:Utilities之ArrayLookup
  7. C#软件winform程序安装包制作及卸载程序制作
  8. 国内MySQL技术现状_1024不搬砖,谈谈自己2020剩余两月的学习计划
  9. PAT A 1118. Birds in Forest (25)【并查集】
  10. Vue-router 的使用 (vue3.x版本)
  11. 至2015新的一年!
  12. 美化java界面,java课程设计界面美化包
  13. userdel: user xxx is currently used by process xxx
  14. 2021年10月最新使用selenium爬取裁判文书数据(本文仅供技术交流使用)
  15. java 查找大写字母_在Java中查找字符串的所有大写字母
  16. 链路聚合|静态,动态配置|华为,思科配置|聚盒~
  17. addEventListener() 方法,事件监听
  18. linux cp命令参数及用法详解---linux 复制文件命令cp
  19. 关于jmeter body Data 传参报错message“:“\u7528\u6237\u540d \u4e0d\u80fd\u4e3a\u7a7a\u3002“的解决方法
  20. 图像处理中经常用的一幅图片Lena.jpg

热门文章

  1. OFD文件如何转换成Word?简单好用的转换方法分享
  2. windows10 英文路径下文件显示中文名称
  3. KDXZ-810kVA-270kV-27kV变频串联谐振耐压试验装置-技术规范书
  4. 今日小软——GoldWave、CHM2PDF Pilot与Highlight
  5. linuxpython安装hive_Linux离线环境安装Pyhive包及通用方式
  6. 【网络安全】python实现栅栏密码加解密
  7. 三轴加速度计测量值生成算法matlab,[算法][三轴、六轴、九轴传感器算法分析] 1、分享一个三轴加速计matlab动态可视化脚本...
  8. 1.1 生日悖论+1.2快速排序+1.3字符串比较+1.4 随机算法+1.5 定理+1.6 抽样
  9. Deepin上安装eclipse2021-03及其CDT插件
  10. 帆软报表自定义提交以及单行提交