MATLAB实现A-D检验的程序及说明

版权申诉
0 下载量 191 浏览量 更新于2024-11-03 收藏 14KB RAR 举报
它是基于样本数据对总体分布进行拟合优度检验的一种方法。A-D检验比其他类似的检验方法,如Kolmogorov-Smirnov检验,拥有更高的检测能力,尤其是在样本两端的极端值上,其对于数据分布尾部的偏离更加敏感。 在本文中,作者提供了一个MATLAB程序,该程序实现了A-D检验的计算过程。MATLAB是一种高级数值计算环境和第四代编程语言,广泛应用于算法开发、数据可视化、数据分析以及数值计算领域。该程序可以被那些正在学习或进行序言A-D检测(即A-D检验的入门者)的学生或研究人员使用,以验证数据是否遵循预定的分布。 程序的具体内容并未在文件列表中给出,但我们可以推断程序应当包括以下几个主要部分: 1. 数据输入:程序需要允许用户输入或者导入一组观测数据集,这是进行A-D检验的前提。 2. 分布参数估计:对于不同的分布,可能需要先估计分布的参数。例如,如果检验的是正态分布,则需要计算样本均值和样本方差。 3. 计算A-D统计量:根据A-D检验的公式计算统计量,该统计量的大小反映了数据集与理论分布的吻合程度。公式通常涉及累积分布函数(CDF)和样本数据的排序。 4. 临界值和显著性水平:程序需要提供不同显著性水平下的临界值,用于比较计算出的A-D统计量,从而判断是否拒绝原假设(即数据集遵循指定的理论分布)。 5. 结果输出:将计算结果输出,通常包括A-D统计量值、临界值、以及结论(是否拒绝原假设)。 对于使用该MATLAB例程的研究人员或学生,建议具备一定的统计学基础以及MATLAB编程知识。这样可以更好地理解程序的运作方式,以及如何解读A-D检验的结果。 标签中的“matlab例程”和“matlab”标识了该资源是针对MATLAB语言编写的程序,强调了其在数据处理和统计分析中的应用。而“压缩包子文件的文件名称列表”中只给出了一个文件名“A-D检验文本.docx”,这可能是一个包含程序使用说明或相关理论背景知识的文档。用户应仔细阅读该文档,以确保能够正确使用提供的MATLAB例程。"

import pandas as pd from sklearn import metrics from sklearn.model_selection import train_test_split import xgboost as xgb import matplotlib.pyplot as plt import openpyxl # 导入数据集 df = pd.read_csv("/Users/mengzihan/Desktop/正式有血糖聚类前.csv") data=df.iloc[:,:35] target=df.iloc[:,-1] # 切分训练集和测试集 train_x, test_x, train_y, test_y = train_test_split(data,target,test_size=0.2,random_state=7) # xgboost模型初始化设置 dtrain=xgb.DMatrix(train_x,label=train_y) dtest=xgb.DMatrix(test_x) watchlist = [(dtrain,'train')] # booster: params={'booster':'gbtree', 'objective': 'binary:logistic', 'eval_metric': 'auc', 'max_depth':12, 'lambda':10, 'subsample':0.75, 'colsample_bytree':0.75, 'min_child_weight':2, 'eta': 0.025, 'seed':0, 'nthread':8, 'gamma':0.15, 'learning_rate' : 0.01} # 建模与预测:50棵树 bst=xgb.train(params,dtrain,num_boost_round=50,evals=watchlist) ypred=bst.predict(dtest) # 设置阈值、评价指标 y_pred = (ypred >= 0.5)*1 print ('Precesion: %.4f' %metrics.precision_score(test_y,y_pred)) print ('Recall: %.4f' % metrics.recall_score(test_y,y_pred)) print ('F1-score: %.4f' %metrics.f1_score(test_y,y_pred)) print ('Accuracy: %.4f' % metrics.accuracy_score(test_y,y_pred)) print ('AUC: %.4f' % metrics.roc_auc_score(test_y,ypred)) ypred = bst.predict(dtest) print("测试集每个样本的得分\n",ypred) ypred_leaf = bst.predict(dtest, pred_leaf=True) print("测试集每棵树所属的节点数\n",ypred_leaf) ypred_contribs = bst.predict(dtest, pred_contribs=True) print("特征的重要性\n",ypred_contribs ) xgb.plot_importance(bst,height=0.8,title='影响糖尿病的重要特征', ylabel='特征') plt.rc('font', family='Arial Unicode MS', size=14) plt.show()

263 浏览量