2023Python大数据分析算法实例.docx

上传人:夺命阿水 文档编号:1081584 上传时间:2024-03-15 格式:DOCX 页数:172 大小:1.16MB
返回 下载 相关 举报
2023Python大数据分析算法实例.docx_第1页
第1页 / 共172页
2023Python大数据分析算法实例.docx_第2页
第2页 / 共172页
2023Python大数据分析算法实例.docx_第3页
第3页 / 共172页
2023Python大数据分析算法实例.docx_第4页
第4页 / 共172页
2023Python大数据分析算法实例.docx_第5页
第5页 / 共172页
点击查看更多>>
资源描述

《2023Python大数据分析算法实例.docx》由会员分享,可在线阅读,更多相关《2023Python大数据分析算法实例.docx(172页珍藏版)》请在课桌文档上搜索。

1、Python大数据分析算法实例目录1.1 描述统计31.2 假设检验81.3 信度分析131.4 列联表分析161.5 相关分析171.6 方差分析191.7 回归分析25L8聚类分析301.9 判别分析351.10 主成分分析401.11 因子分析431.12 时间序列分析461.13 生存分析491.14 典型相关分析741.15 RoC分析801.16 距离分析851.17 对应分析951.18 决策树分析971.19 神经网络一深度学习1031.20 蒙特卡罗模拟1131.21 关联规则1231.22 UpliftModeling1411.23 集成方法1461.24 异常检测1531

2、.25 文本挖掘1571.26 Boosting算法(提升法和GradientBoosting)1651.27 总结结169Python是现在最受欢迎的动态编程语言之一(还有Perl、RUby等)。Python不但拥有强大的数据处理功能,而且完全可以用它构建生产系统。在众多解释型语言中,由于各种历史和文化的原因,PythOn发展出了一个巨大而活跃的科学计算(SCientifiCComputing)社区。在过去的10年,PythOn从一个边缘或“自担风险”的科学计算语言成为数据科学、机器学习、学界和工业界软件开发最重要的语言之一。数据分析与可视化是指对数据进行控制、处理、整理、分析的过程。数据分

3、析和建模大部分时间都用在数据准备上,数据的准备过程包括:加载、清理、转换与重塑。本章主要讲述基于Python的数据分析方法,尽量翔实地阐述PythOn数据分析方法的原理与实践。1.1 描述统计统计学分为描述统计学和推断统计学。描述统计学是使用特定的数字或图表来体现数据的集中程度或离散程度,如平均数、中位数、众数、方差、标准差;推断统计学是根据样本数据来推断总体特征,如产品检查,一般采用抽检,根据所抽样本的质量合格率作为总体质量合格率的一个估计。在数值分析的过程中,我们往往要计算出数据的统计特征,用来做科学计算的NUmPy和SCiPy工具可以满足我们的需求。MatPOuib工具可用来绘制图形,满

4、足图分析的需求。1 .基本概念与PythOn中原生的LiSt类型不同,NUmPy中用ndarray类型来描述一组数据:fromnumpyimportarrayfromnumpy.randomimportnormal,randint# 使用LiSt来创造一组数据data=1,2,3# 使用ndarray来创造一组数据data=array(1,2,3)# 创造一组服从正态分布的定量数据data=normal(0f10,size=10)# 创造一组服从均匀分布的定性数据data=randint(0,10,size=10)2 .中心位置(均值、中位数、众数)数据的中心位置是我们最容易想到的数据特征。借

5、由中心位置,我们可以知道数据的一个平均情况,如果要对新数据进行预测,那么平均情况是非常直观的选择。数据的中心位置可分为均值(Mean)、中位数(Median)和众数(MOde)。其中,均值和中位数用于定量的数据,众数用于定性的数据。对于定量数据来说,均值是总和除以总量(N),中位数是数值大小位于中间(奇偶总量处理不同)的值:(8.1)(8.2)Mean=f!lNN+1Median= *SeleCt(Data,-),N%2=1,N,NSeleCt(DateI,一)+Select(Data,+1)22n%2=02均值相对中位数来说,包含的信息量更大,但是容易受异常的影响。使用NUmPy计算均值与中

6、位数:fromnumpyimportmean,median若计算均值mean(data)/计算中位数median(data)对于定性数据来说,众数是出现次数最多的值,使用SCiPy计算众数:fromscipy.statsimportmode#计算众数mode(data)3 .发散程度(极差、方差、标准差、变异系数)对数据的中心位置有所了解以后,一般我们会想知道数据以中心位置为标准有多发散。如果以中心位置来预测新数据,那么发散程度决定了预测的准确性。数据的发散程度可用极差(PTP)、方差(Variance)、标准差(STD)、变异系数(CV)来衡量,它们的计算方法如下:(8.3)PTP=Max(

7、Data)-Min(Data)Variance=(8.4)STD=Wariance(8.5)CSTDCV=Mean(8.6)极差是只考虑了最大值和最小值的发散程度指标;相对来说,方差包含更多的信息;标准差基于方差,但是与原始数据同量级;变异系数基于标准差,但是进行了无量纲处理。使用NUmPy计算极差、方差、标准差和变异系数:fromnumpyimportmean,ptp,var,std# 极差ptp(data)# 方差Var(data)# 标准差std(data)# 变异系数mean(data)/std(data)4.偏差程度(z分数)之前提到均值容易受异常值影响,那么如何衡量偏差、偏差到多少

8、算异常是两个必须要解决的问题。定义Z.分数(ZScore)为测量值距均值相差的标准差数目:X-MeanZ-Score=STD(8.7)当标准差不为O且不为接近于O的数时,Z-分数是有意义的,使用NUmPy计算分数:fromnumpyimportmean,std#计算第一个值的z-分数(data0-mean(data)/std(data)5.相关程度有两组数据时,我们关心这两组数据是否相关,相关程度是多少。用协方差(COV)和相关系数(Corrcoef)来衡量相关程度:N(Dataii-Meanx)*(Data2z-Mean2)1.ZUV=(8.8)corrcoef=covSTDx*STD2(8

9、.9)协方差的绝对值越大表示相关程度越高,协方差为正值表示正相关,负值为负相关,0为不相关。相关系数基于协方差,但进行了无量纲处理。使用NUmPy计算协方差和相关系数:fromnumpyimportarray,cov,corrcoefdata=array(datalzdata2)豺十算两组数的协方差#参数bias=l表示结果需要除以N,否则只计算了分子部分3返回结果为矩阵,第i行第j列的数据表示第i组数与第j组数的协方差。对角线为方差COv(data,bias=l)M十算两组数的相关系数#返回结果为矩阵,第i行第j列的数据表示第i组数与第j组数的相关系数。对角线为1corrcoef(data)

10、6.利用MatPlOtIiblSI图举例利用PythOn画图需要使用MatPlotIib库。【例8.1】importmatlotlib.ylotaspit创建一组数据,该数据为30个中国CBA球员的体重,其中“”表示换行接着写。weight=225,232,232,245,235,245,270,225,240r240,217,195,225,185,200,220,200,210,271,240,220,230,215,252,225,220,206,185,227,236(1)直方图画法找出最大值与最小值,确定数据的范围。 整理数据,将数据分为几组(尽量使每组都有数据),计算频数分布表。

11、根据频数分布表画出频数直方图。频数为纵坐标,分组类别为横坐标。通过直方图可以对数据分布有一个直观的了解。 除了频数直方图,还有频率直方图外。频率直方图的纵坐标为频率/组距。频率二频数/总数,组距是分组的极差。fromylabimportml#显示中文设置mpl.reParams,font.sans-serif,=LSilnHei显示中文设置#创建频数分布直方图#Weight为待绘制的定量数据,bins=5表示将数据划分为5个区间Ormed=FalSe时为频数分布直方图pit.hist(weight,bins=5znormed=False)丘轴区间范围pit.xlabel(weight,)pit

12、.ylabel(,frequency*)pit.title(CHINACBAHistogramofweightfrequencydistributionofplayers)pit.show()图8.1所示为频数分布直方图。2-O- 200220240260weight1210CHINA CBA Histogram of weight frequency distbuton of players8 6 Auuanbdg图8.1频数分布直方图(2)箱线图画法下四分位数Q1:将数据按升序排序,位于25%处的数据。 上四分位数Q3:将数据按升序排序,位于75%处的数据。 四分位距IQR=Q3Ql,是描

13、述数据离散程度的一个统计量。 异常点是小于Ql1.5IQR或大于Q3+1.5IQR的值。 下边缘是除异常点以外的数据中的最小值。 上边缘是除异常点以外的数据中的最大值。书箱线图pit.boxplot(weight,IabelS=L体重,)pit.title中国CBA球员体重箱线图,)pit.show()图8.2所示为箱线图。中国C8A碌员体重箱线图图8.2箱线图1.2假设检验假设检验是推论统计中用于检验统计假设的一种方法。统计假设是可通过观察一组随机变量的模型进行检验的科学假说。一旦能估计未知参数,就会希望根据结果对未知的真正参数值做出适当的推论。统计上对参数的假设就是对一个或多个参数的论述。

14、而其中欲检验其正确性的是零假设(NUIlHypothesis),零假设通常由研究者决定,反映研究者对未知参数的看法。相对于零假设,其他有关参数的论述是备择假设(AItematiVeHypothesis),通常反映了执行检验的研究者对参数可能数值的另一种(对立的)看法(换句话说,备择假设通常才是研究者最想知道的)。日常进行数据分析难免会用到一些假设检验方法进行数据探索和相关性、差异性分析,并且这是进行后续统计模型(机器学习类预测模型可以略过)预测的第一步。1 .必要条件 标准Python科学计算环境(NumPySCiPy、Matplotlib)0 PandaSo Statsmodelso Sea

15、borno要安装Python及这些依赖,推荐下载AnaCondaPythOn或EnthOUghtCanopy0如果使用UbUmU或其他LinUX系统,更应该使用包管理器。适用于贝叶斯模型的是PyMC,在PythOn中实现了概率编程语言。2 .统计性检验的4部分正态性检验。 相关性检验。 参数统计假设检验。 非参数统计假设检验。(1)正态性检验正态性检验是很多统计建模的第一步,例如I,普通线性回归就对残差有正态性要求。正态性检验可用于检查数据是否具有高斯分布的统计检验。W检验(ShaPiro-WiIkteSt)用于检验数据样本是否具有高斯分布。【例8.2】fromscipy.statsimpor

16、tshapirodata=21,12,12r23,19,13,20,17,14,19stat,p=shapiro(data)Print(stat为:%f,考Stat,p值为:%f,%p)输出:Stat为:0.913007P值为:0.302289(2)相关性检验相关性检验是检查两个样本是否相关的统计检验。皮尔逊相关系数用于检验两个样本是否具有单调关系。假设: 每个样本中的观察是独立同分布的。 每个样本的观察都是正态分布的。 每个样本的观察具有相同的方差。【例8.3】fromscipy.statsimportpearsonrdatal=21,12,12,23,19,13,20,17,14,19da

17、ta2=12,11,8,9,10,15,16,17,106corrzp=pearsonr(datal,data2)print(corr:%f,%corr,p值为:%f,%p)输出:Corr为:0.142814P值为:0.693889(3)卡方检验检验两个分类变量是相关的还是独立的。假设: 用于计算列联表的观察是独立的。 列联表的每个单元格中有25个或更多实例。【例8.4】fromscipy.statsimportchi2_contingencydatal=21,12,12,23,19,13,20,17,14,19data2=12,llz8,9z10z15,16,17,10z16statzpzd

18、ofzexpected=chi2_contingency(datalzdata2)print(stat:%f,%stat,p值为:%f%)输出:Stat为:0.000000P值为:1.000000(4)参数统计假设检验T检验检验两个独立样本的均值是否存在显著差异。假设: 每个样本中的观察是独立同分布的。 每个样本的观察都是正态分布的。 每个样本中的观察具有相同的方差。【例8.5】fromscipy.statsimportttest_inddatal=21,12,12,23,19,13,20,17,14,19data2=12,11,8,9,10z15,16,17z10z16stat,p=ttes

19、t_ind(datal,data2)print(stat:%fn%stat,p值为:%f%p)输出:Stat为:2.802933P值为:0.011763配对T检验检验两个配对样本的均值是否存在显著差异。假设: 每个样本中的观察是独立同分布的。 每个样本的观察都是正态分布的。 每个样本中的观察具有相同的方差。每个样本的观察结果是成对的。【例8.6】fromsciy.statsimportttest_reldatal=21,12z12,23,19,13,20,17,14,19data2=12rll,8,9,10,15,16,17,10,16stat,p=ttest_rel(datal,data2)

20、print(stat为:%f,%stat,p值为:%f,%p)输出:Stat为:3.022945P值为:0.014410方差分析测试两个或两个以上独立样本的均值是否存在显著差异。假设: 每个样本中的观察是独立同分布的。 每个样本的观察都是正态分布的。 每个样本中的观察具有相同的方差。【例8.7】fromscipy.statsimportf_onewaydatal=21,12,12,23,19z13,20,11,14,19data2=12,11,8,9,10z15,16,17,10,16stat,p=f_oneway(datal,data2)print(,stat为:%f,%stat,p值为:%

21、f,%p)输出:Stat为:7.856436P值为:0.011763(5)非参数统计假设检验曼惠特尼U检验检验两个独立样本的分布是否相等。假设: 每个样本中的观察是独立同分布的。 可以对每个样本中的观察进行排序。【例8.8】fromsciy.statsimportmannwhitneyudatal=21z12,12,23,19z13z20z17,14zl9data2=(12,11,8,9,10,15,16,17,10,16stat,p=mannwhitneyu(datal,data2)Print(stat为:%f,%stat,p值为:%f%)输出:Stat为:17.500000P值为:0.00

22、7627威尔科克森符号秩检验检验两个配对样本的分布是否均等。假设: 每个样本中的观察是独立同分布。 可以对每个样本中的观察进行排序。【例8.9】fromscipy.statsimportwilcoxondatal=21,12,12z23,19,13,20,17,14,19data2=12,llz8,9,10,15r16z17,10z16stat,p=wilcoxon(datal,data2)Print(stat为:%f,%stat,p值为:%f,%p)输出:Stat为:2.000000P值为:0.014714由于样本太小,因此无法精确计算相似性。Kruskal-WallisH检验检验两个或多个

23、独立样本的分布是否相等。假设: 每个样本中的观察是独立同分布的。 可以对每个样本中的观察进行排序。fromscipy.statsimportkruskaldatal=21z12,12,23,19z13z20z17,14z19data2=12,llz8r9,10,15,16,17,10,16statzp=kruskal(datalzdata2)print(,stat:%f,%stat,p值为:%f,%p)输出:Stat为:6.072239P值为:0.013732很多人知道信度和效度是因为问卷数据分析需要用到它们,其实信度和效度的应用范围远远不止问卷的数据分析。信度是指一个测试或者使用其他任何测量

24、工具对事物的测量可以保持一致性。观察值=真实值+误差值,误差越小越可信。信度的不同类型如下: 再测信度(一个测试在不同时间是否可信,两次测试值之间的相关系数)。 复本信度(一个测试的几个复本是否可信或者是否等价,两个复本之间的相关系数)。 内在一致性信度(每个项目的得分与总得分之间的相关系数)。 评分者信度(对一个观察结果的评价是否一致,检验不同评分者一致结论的百分比)。1.再测信度两次测试的得分如下,计算相关系数。【例8.10】测试者编号时期1得分时期2得分154562677736787483895878968990784878909299899106576importscipy.stats

25、.statsasstatsSI=54,67,67,83,87,89,84,90,98,65s2=56,77,87,89,89,90,87,92,99,76ComparisonR=Stats.pearsonr(si,s2)0print(ComparisonR)输出:0.90057919677520492.复本信度自主记忆测试复本I和复本II的得分(时间间隔)。【例8.11】编号复本工得分复本工工得分1452563354665776567678489471037importscipy.stats.statsasstatsi=4,5,3,6,7,5,6,4,3,3ii=5,6,5,6,7,6,7,8

26、,7,7duplicateR=stats.pearsonr(izii)0print(duplicateR)输出:0.128697890417557413. 一致性信度计算克隆巴赫系数(CrOnbaCHs),实际上是计算单项得分与总分直接的相关系数,并与每个单项得分的变异性比较,计算公式为:其中: k表示项目的个数。 为所有被试项目所得总分的方差。 S;表示所有被试在第i项目上的差异。【例8.12】10个被测者、5个项目的得分表如下。编号项目1项目2项目3项目4项目51351412443533344444335215345436455327255348344249354431033232Pyth

27、On代码引入了PandaS包,应用PandaS的数据帧计算就变得简单了,其中SUm()是求和,var()是求方差。importnumpyasnpimportpandasaspdimportscipy.stats.statsasstatsimportmathscore=3,5,1,4,1,4,4,3,5r3z3,4,4,4,4,3,3,5,2,1/3,4z5,4,3,4,5,5,3,2,2,5,5,3,4,3,4,4,2,4,3,5,4,4,3,3,3,2,3,2)df=pd.DataFrame(score)total_row=df.sum(axis=l)Iprinttotal_rowsy=to

28、tal_row.var()print(sy)var_column=df.var()si=var_column.sum()print(si)r=(5.0/4.O)*(sy-si)/sy)print(round(rz2)输出:6.39999999999999955.1777777777777770.24列联表分析(COntingenCyTableAnalysis)是基于列联表进行的相关统计分析与推断。列联表分析的基本问题是,判明所考察的各属性之间有无关联,即是否独立。列联表又称交互分类表,所谓交互分类,是指同时依据两个变量的值将所研究的个案分类。交互分类的目的是将两个变量分组,然后比较各组的分布状

29、况,以寻找变量间的关系。比较和对照是进行科学研究的基本手段。对于间距测度和比例测度的资料,进行分组比较时可以用均数检验、方差分析等方法。对于有较多可取值的序次测度资料,进行分组比较时可以用各种秩和检验方法。而对于名义测度的资料和有序分类所得的资料(也属序次测度),分组比较时需用交叉分类进行统计描述,交叉分类所得的表格称为“列联表”,统计推断(检验)则要使用列联表分析的方法一卡方检验。卡方检验是用来研究两个定类变量间是否独立(是否存在某种关联性)的常用方法。卡方检验的方法:假设两个变量是相互独立、互不关联的,这在统计上称为原假设。对于调查中得到的两个变量的数据,用一个表格的形式来表示它们的分布(

30、频数和百分数),这里的频数叫观测频数,这种表格叫列联表。如果原假设成立,在这个前提下,可以计算出上面列联表中每个格子里的频数应该是多少,这叫期望频数。比较观测频数与期望频数的差,两者的差越大,表明实际情况与原假设相差越远;差越小,表明实际情况与原假设越相近。这种差值用一个卡方统计量来表示。对卡方值进行检验,如果卡方检验的结果不显著,就不能拒绝原假设,即两个变量是相互独立、互不关联的,如果卡方检验的结果显著,就拒绝原假设,即两个变量间存在某种关联,至于是如何关联的,这要看列联表中数据的分布形态。卡方检验的公式如下:Z=(8.11)/其中,A是实际值,T是理论值。【例8.13】列联表如下:杀虫效果

31、甲乙丙统计死亡数374923109未死亡数15010057307统计18714980416importnumpyasnpfromscipy.statsimportchi2_contingencyd=np.array(37,49,23,150,100,57)print(chi2_contingency(d)输出如下:(7.6919413561281065,0.021365652322337315,2,array(48.99759615,39.04086538,20.96153846,138.00240385,109.95913462,59.03846154)代码运行结果解析如下:chi-squa

32、re-statistics=I871O941649-149109416A 8OIO92341618710914910980-109416416416_80-307=7.691941356128106557416187-307149-30780-307416416416P2(2)7.6919413561281065)=0.021365652322337315对于array(48.99759615,39.04086538,20.96153846L138.00240385,109.95913462,59.03846154)而言:48.99759615=3416以此类推,得到其他结果。自由度为1时,代

33、码底层存在Yate校正,此时手算结果会与程序运算结果不一致,属于正常现象。1.5相关分析相关系数是变量间关联程度的基本测度之一,如果我们想知道两个变量之间的相关性,就可以计算相关系数进行判定。相关系数的基本特征说明如下。方向: 正相关:两个变量变化方向相同。 负相关:两个变量变化方向相反。量级(Magnitude): 低度相关:0r0.3o 中度相关:0.3r0.8o 高度相关:0.8r1o散点图:在进行相关分析之前,通常会绘制散点图来观察变量之间的相关性,如果这些数据在二维坐标轴中构成的数据点分布在一条直线的周围,就说明变量间存在线性相关关系。1 .PythOn计算相关系数Z(ZXZy)r=

34、-=ko.Z)N其中: r:相关系数。 Zx:变量X的Z分数。 z:变量y的Z分数。 N:X和y取值的配对个数。2 .场景案例我们知道影响金融产品销量的因素很多。作为用户来讲,最直接的参考指标一定是产品的利率,金融机构为了吸引更多的用户能够持有或购买某项金融产品,往往会推出加息活动,那么加息活动这个变量与实际销量之间是否存在相关关系?【例8.14】ABCDEX:加息活动投入丫:销售额ZxZyZ+Z5216219617223310026计算相关系数的PythOn代码如下:importnumyX=52,19,7,33,2Y=162,61,22,100,6书均值XMean=numy.mean(X)Y

35、Mean=numpy.mean(Y)# 标准差XSD=numpy.std(X)YSD=numpy.std(Y)# z分数ZX=(X-XMean)/XSDZY=(Y-YMean)/YSD# 相关系数r=numpy.sum(ZX*ZY)/(len(X)print(ZX,ZY)print(r)输出:1.61684964-0.19798159-0.857920220.57194681-1.132894651.63073842-0.16342912-0.856226490.52936824-1.140451050.999674032661831则得到结果:ABCDEX:加息活动投入Y:销售额ZXZYZ+

36、Z521621.616849641.630738422.636658831961-0.19798159-0.163429120.63665883722-0.85792022-0.856226490.03235596331000.571946810.529368240.3027704826-1.13289465-1.140451051.292010891.6方差分析方差分析(ANOVA)又称“变异数分析”或“F检验”,是由R.A.Fister发明的,用于两个及两个以上的样本均数差别的显著性检验。与通常的统计推断问题一样,方差分析的任务是先根据实际情况提出原假设HO与备择假设Hl,然后寻找适当的检

37、验统计量进行假设检验。试验中要考察的指标称为试验指标,影响试验指标的条件称为因素,因素所处的状态称为水平,若试验中只有一个因素改变,则称为单因素试验;若有两个因素改变,则称为双因素试验;若有多个因素改变,则称为多因素试验。方差分析就是对试验数据进行分析,检验方差相等的多个正态总体均值是否相等,进而判断各因素对试验指标的影响是否显著。根据影响试验指标条件的个数可以区分为单因素方差分析、双因素方差分析和多因素方差分析。8.6.1 单因素方差分析单因素方差分析是指对单因素试验结果进行分析,检验因素对试验结果有无显著性影响的方法。单因素方差分析是两个样本平均数比较的引申,用来检验多个平均数之间的差异,

38、从而确定因素对试验结果有无显著性影响。 因素:影响研究对象的某一指标、变量。 水平:因素变化的各种状态或因素变化所分的等级或组别。单因素试验:考虑的因素只有一个的试验叫单因素试验。1.假设前提设单因素A具有个水平,分别记为AA2,4在每个水平4,(i=l,2下,要考察的指标可以看成一个总体,故有一个总体,并假设:(1)每个总体均服从正态分布,即XjN(p:),/=lj2,.,rO(2)每个总体的方差?相同。(3)从每个总体中抽取的样本X”A,,X加i相互独立,i=12此处的:、2均未知。那么,要比较各个总体的均值是否一致,就要检验各个总体的均值是否相等,设第i个总体的均值为,则:假设检验为HO

39、:jtzI=jw2=.=,o备择假设为Hl:42,,心不全相等。2.方差分析的任务(1)检验该模型中r个总体NQj,o?)(j=,2,)的均值是否相等。(2)作为未知参数41F2,,4/,2的估计。PythOn实现单因素方差分析用到了SCiPy.stats.fLOneWay()方法,用法很简单,只不过在用之前需要先检验方差齐性,用到了IeVenetest。# -*-coding:utf-8-*-fromscipyimportstatsimportpandasaspdimportnumyasnpfromStatsmodels.formula.apiimportolsfromStatsmodels

40、.stats.anovaimportanova_lm# 读取数据fPath=,altman_910.txt,df=pd.read_csv(fPath,header=None,names=,value,group,)print(df)#数据分组print(One-wayANOVA:1)inFile=,altman_910.txt,data=n.genfromtt(inFile,delimiter=*,)# Sortthemintogroups,accordingtocolumn1groupl=datadata:,1=1,0group2=datadata:,1=2,0group3=datadata

41、:,1=3,0# First,checkifthevariancesareequal,withthe,*Levene,-test(W,p)=stats.Ievene(groupl,group2,group3)ifp0.05:print(,Warning:thep-valueoftheLevenetestisSTOPstats#Printtheresultsprint(,DataformAltman910:1)print(F_statisticrpVal)ifpVal0.05:print(,0neofthegroupsissignificantlydifferent.,)# Elegantalt

42、ernativeimplementation,withpandas&Statsmodelsdf=pd.DataFrame(data,columns=,value,treatment,)# 如果没有大写C(),就会出错,因为表示分类变量,categorymodel=ols(valueC(treatment),df).fit()anovaResults=anova_lm(model)print(anovaResults)# Checkifthetworesultsareequal.Iftheyare,thereisnooutput#decimal=3表示精确到的小数位。如果两个数相等,结果就为空,

43、否则出现异常提示np.testing.assert_almost_equal(F_statistic,anovaResults(,F,O,decimal=3)输出:runfile(,D:Anaconda3workspacetest.py,zwdir=,D:Anaconda3workspace)valuegroup024311 25112 27513 29114 34715 35416 38017 39218 206292102102262112492122552132732142852152952163092172413182583192703202933213283One-wayANOVA:Warning:thep-valueoftheLevenetestis0.05:p=0.04

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号