Python 卡方决策,下面介绍一个常见的统计决策。在http://www.itl.nist.gov/div898/handbook/prc/section4/prc45.htm中有对该决策的详细描述。
这是一个关于数据是否随机分布的卡方决策。为了做出这个决策,需要计算一个预期分布,并将观察到的数据与预期进行比较。相差较大意味着需要进一步研究。相差不大意味着可以使用零假设,因为没什么值得研究了,即这些差异仅仅是随机变化造成的。
下面介绍如何使用Python来处理数据。首先介绍一些不属于案例研究的背景知识,但常出现在EDA应用程序中。需要收集原始数据并生成有用的可供分析的汇总信息。
在生产质量保障过程中,将有硅片缺陷的数据收集到数据库中。可以使用SQL查询来提取缺陷细节供后续分析。例如查询语句可能如下所示:
SELECT SHIFT, DEFECT_CODE, SERIAL_NUMBER FROM some tables;
该查询的输出将是带有各个缺陷详情的.csv
文件。
shift,defect_code,serial_number
1,None,12345
1,None,12346
1,A,12347
1,B,12348
and so on. for thousands of wafers
需要汇总先前的数据,可以在SQL查询层面使用COUNT
语句和GROUP BY
语句进行汇总,也可以在Python应用层面进行汇总。尽管通常认为纯数据库汇总更高效,但并非总是如此。在某些情况下,对原始数据的简单提取和用Python程序进行汇总可能比SQL汇总更快。如果看重性能,那么必须衡量这两种方法,而不是设想数据库操作总是最快的。
在某些情况下,可以高效地从数据库中获取汇总数据。汇总必须包含三个属性:轮换(shift)、缺陷类型和观测到的缺陷数量。汇总数据如下所示:
shift,defect_code,count
1,A,15
2,A,26
3,A,33
and so on.
输出会显示轮换和缺陷类型的所有12种组合。
稍后将详细介绍如何读取原始数据并创建汇总。这便是Python的强大之处:处理原始源数据。
需要观察并比较轮换和缺陷个数的总体预期。如果观测到的数量和预期数量间的差异可以归因于随机波动,便要接受零假设,即没有什么错误点值得关注。如果这些数字不符合随机变化,那么就有问题需要进一步研究。