【数据分析学习大纲 - 数据分析方法(详细版)】
数据分析方法
探索性数据分析(EDA)
- 定义与目的
探索性数据分析(Exploratory Data Analysis,简称 EDA)是指对已有的数据在尽量少的先验假设下进行探索,通过绘制图表、计算统计量等手段,发现数据的规律、特征、变量之间的关系以及异常点等信息,为后续的分析和建模提供方向和依据。其目的主要包括:- 熟悉数据:了解数据的基本特征,如数据的规模、变量的类型(数值型、分类型等)、数据的分布情况等。
- 发现规律与趋势:通过可视化和统计方法,找出数据中潜在的模式、趋势和关系,例如时间序列数据中的季节性变化、不同变量之间的线性或非线性关联。
- 识别异常值和数据问题:检测数据中可能存在的异常点、缺失值或错误数据,以便在后续分析中进行适当处理。
- 常用的 EDA 技术
- 数据可视化:
- 直方图:用于展示数值型数据的分布情况。通过将数据划分为若干区间(bin),并统计每个区间内数据的频数或频率,以矩形的高度表示频数或频率,能直观地呈现数据的集中趋势、离散程度以及分布形态(如正态分布、偏态分布等)。例如,分析某班学生的考试成绩分布,使用直方图可以清晰看到成绩在各个分数段的学生人数分布情况。
- 箱线图:可以展示数据的四分位数、中位数、异常值等信息,能有效比较不同数据集的分布特征和离散程度。箱体的上下边界分别为第一四分位数(Q1)和第三四分位数(Q3),中间的线为中位数, whiskers 表示数据的取值范围,超出 whiskers 的点通常被视为异常值。比如,对比不同班级学生成绩的稳定性,箱线图能直观显示出各班成绩的分布差异以及是否存在异常成绩。
- 散点图:用于观察两个数值型变量之间的关系,通过将两个变量分别映射到坐标轴上,每个数据点对应坐标轴上的一个位置。如果两个变量存在线性关系,散点图上的数据点会呈现出一定的线性趋势;若存在非线性关系,也能从点的分布形态中有所察觉。例如,研究房屋面积与房价之间的关系,散点图可以帮助我们初步判断两者是否存在关联以及关联的大致形式。
- 折线图:适用于展示随时间或其他有序变量变化的数据趋势。将数据点按照顺序连接成折线,能清晰地呈现数据的变化情况,如上升、下降、波动等趋势。常用于时间序列数据的分析,如分析公司每月的销售额变化趋势,通过折线图可以直观看到销售额在不同时间段的增减情况。
- 统计描述:
- 集中趋势度量:包括均值、中位数和众数。均值是所有数据的总和除以数据的个数,能反映数据的平均水平;中位数是将数据按大小顺序排列后,位于中间位置的数值(若数据个数为奇数)或中间两个数的平均值(若数据个数为偶数),对极端值不敏感;众数是数据中出现次数最多的数值,适用于描述分类型数据或具有明显集中趋势的数值型数据。例如,在分析员工工资时,均值可以反映整体工资水平,但如果存在少数高收入的管理层,中位数可能更能代表普通员工的工资水平,而众数可以告诉我们最常见的工资额度。
- 离散程度度量:如标准差和方差,用于衡量数据的离散程度或变异性。方差是每个数据与均值之差的平方的平均值,标准差是方差的平方根。标准差越大,说明数据越分散;标准差越小,数据越集中。例如,比较两个班级学生成绩的离散程度,标准差大的班级成绩相对更分散,学生之间的成绩差异较大。
- 分位数:除了中位数(即第二四分位数),第一四分位数(Q1)表示数据中 25% 的数据小于该值,第三四分位数(Q3)表示 75% 的数据小于该值。四分位数间距(IQR = Q3 - Q1)可以反映数据中间 50% 部分的离散程度,常用于识别异常值。
- 数据可视化:
- EDA 的一般流程
- 数据导入与初步观察:使用数据分析工具(如 Python 的 pandas 库)将数据导入到分析环境中,并通过查看数据的前几行、数据的形状(行数和列数)、数据类型等,对数据有一个初步的整体认识。
- 单变量分析:针对每个变量,分别使用可视化和统计描述方法进行分析。对于数值型变量,绘制直方图、箱线图,计算均值、标准差等统计量;对于分类型变量,计算各类别的频数和频率,绘制柱状图展示类别分布。
- 多变量分析:探索变量之间的关系,通过绘制散点图、折线图等观察数值型变量之间的关联,或者通过交叉表(对于分类型变量)分析不同类别之间的关系。
- 总结与发现:根据单变量和多变量分析的结果,总结数据的特征、规律、异常情况以及变量之间的关系,为后续的深入分析和建模提供方向和依据。
回归分析
- 定义与原理
回归分析是一种用于研究变量之间关系的统计方法,主要目的是建立一个数学模型来描述因变量(目标变量)如何随着一个或多个自变量(解释变量)的变化而变化。其基本原理基于最小二乘法,即通过找到一条直线(对于简单线性回归)或一个超平面(对于多元线性回归),使得所有数据点到该直线或超平面的距离平方和最小,以此来拟合数据并预测因变量的值。 - 常见的回归类型
- 简单线性回归:研究一个自变量与一个因变量之间的线性关系,模型形式为 ( y = \beta_0 + \beta_1x + \epsilon ),其中 ( y ) 是因变量,( x ) 是自变量,( \beta_0 ) 是截距,( \beta_1 ) 是回归系数,( \epsilon ) 是误差项,表示实际值与模型预测值之间的差异。例如,研究房屋面积(自变量 ( x ))与房价(因变量 ( y ))之间的关系,假设两者存在线性关系,就可以使用简单线性回归模型进行分析。
- 多元线性回归:当有多个自变量影响因变量时,使用多元线性回归模型。模型形式为 ( y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_nx_n + \epsilon ),其中 ( x_1, x_2, \cdots, x_n ) 是多个自变量。比如,分析房价时,除了房屋面积,还考虑房屋的房龄、周边配套设施等多个因素(多个自变量)对房价(因变量)的影响,就需要用到多元线性回归。
- 非线性回归:当变量之间的关系不是线性关系时,使用非线性回归模型。非线性回归模型具有更复杂的函数形式,例如指数函数、对数函数、多项式函数等。例如,在研究细菌的生长过程中,细菌数量随时间的变化可能不符合线性关系,而更适合用指数函数进行拟合,此时就需要使用非线性回归方法。
- 回归分析的步骤
- 数据准备:收集相关的数据,并对数据进行清洗、预处理,确保数据的质量和完整性。例如,处理缺失值、异常值,对数据进行标准化或归一化处理等。
- 模型选择与假设:根据数据的特点和研究问题,选择合适的回归模型(如简单线性回归、多元线性回归或非线性回归),并对模型做出一些基本假设,如线性回归模型通常假设误差项服从正态分布、误差项之间相互独立且具有相同的方差等。
- 参数估计:使用最小二乘法等方法估计回归模型中的参数(如 ( \beta_0, \beta_1, \cdots, \beta_n )),使得模型能够最佳拟合数据。
- 模型评估:通过计算一些评估指标(如均方误差 MSE、均方根误差 RMSE、决定系数 ( R^2 ) 等)来评估模型的拟合优度和预测能力。均方误差衡量了预测值与真实值之间误差的平方的平均值,RMSE 是 MSE 的平方根,能更直观地反映预测误差的大小;决定系数 ( R^2 ) 表示模型对数据的解释程度,取值范围在 0 到 1 之间,越接近 1 说明模型对数据的拟合效果越好。
- 模型应用与预测:如果模型评估结果良好,就可以使用该模型对新的数据进行预测,为决策提供依据。例如,根据建立的房价回归模型,预测新上市房屋的价格。
分类算法
- 定义与应用场景
分类算法是一种有监督学习方法,旨在根据已知的输入特征(自变量)将数据分为不同的类别(因变量)。其应用场景广泛,例如:- 医疗诊断:根据患者的症状、检查结果等特征,判断患者是否患有某种疾病,如通过血液检测指标和影像数据判断患者是否患有癌症。
- 信用评估:金融机构根据客户的收入、信用记录、负债情况等特征,评估客户的信用风险,将客户分为不同的信用等级,以决定是否给予贷款以及贷款额度。
- 图像识别:识别图像中的物体类别,如识别照片中的动物是猫还是狗,在安防监控、自动驾驶等领域有重要应用。
- 常见的分类算法
- 决策树:通过一系列的条件判断来对数据进行分类。决策树从根节点开始,根据某个特征的取值对数据进行划分,形成不同的分支,直到叶节点,叶节点表示最终的分类结果。例如,在判断一个水果是苹果还是橙子时,可以根据颜色、形状、味道等特征构建决策树进行分类。决策树的优点是易于理解和解释,可处理分类型和数值型数据;缺点是容易过拟合,对噪声数据敏感。
- 支持向量机(SVM):旨在找到一个最优的超平面,将不同类别的数据点尽可能分开,并且使两类数据点到超平面的距离最大化。对于线性可分的数据,SVM 可以找到唯一的最优超平面;对于非线性可分的数据,可以通过核函数将数据映射到高维空间,再寻找超平面。SVM 在小样本、高维数据的分类问题上表现出色,常用于文本分类、图像分类等领域。
- 朴素贝叶斯分类器:基于贝叶斯定理,假设特征之间相互独立,通过计算每个类别在给定特征下的概率,选择概率最大的类别作为分类结果。朴素贝叶斯分类器计算简单、效率高,在文本分类(如垃圾邮件过滤)等领域应用广泛。但它对特征之间的独立性假设在实际中可能并不总是成立,这可能会影响分类效果。
- K 近邻算法(K - Nearest Neighbors,KNN):对于一个新的数据点,根据它与训练数据集中各个点的距离(如欧氏距离、曼哈顿距离等),找出距离最近的 ( K ) 个点,然后根据这 ( K ) 个点的类别来决定新数据点的类别。例如,在一个二维平面上有两类数据点(红色和蓝色),对于一个新的绿色点,通过计算它与周围点的距离,找出最近的 ( K ) 个点,如果这 ( K ) 个点中红色点居多,就将绿色点分类为红色类别。KNN 算法简单直观,但计算量较大,对数据的局部特征敏感,( K ) 值的选择对分类结果影响较大。
- 分类算法的一般流程
- 数据预处理:对原始数据进行清洗,处理缺失值、异常值,对数据进行编码(如将分类型变量转换为数值型)、标准化或归一化等操作,使数据适合算法处理。
- 数据集划分:将数据集划分为训练集和测试集,通常按照一定比例(如 70% 作为训练集,30% 作为测试集)进行划分。训练集用于训练分类模型,测试集用于评估模型的性能。
- 模型训练:使用训练集数据对选定的分类算法进行训练,调整模型的参数,使模型能够学习到数据的特征与类别之间的关系。
- 模型评估:使用测试集数据对训练好的模型进行评估,常用的评估指标有准确率、精确率、召回率、F1 值等。准确率是分类正确的样本数占总样本数的比例;精确率是预测为正类且实际为正类的样本数占预测为正类的样本数的比例;召回率是预测为正类且实际为正类的样本数占实际为正类的样本数的比例;F1 值是精确率和召回率的调和平均数,综合反映了模型的性能。根据评估结果,可以对模型进行调优或选择更合适的模型。
- 模型应用:将训练好且评估合格的模型应用到新的数据上,进行分类预测,为实际问题提供解决方案。
聚类分析
- 定义与目的
聚类分析是一种无监督学习方法,它将数据集中的对象按照相似性划分为不同的簇(类别),使得同一簇内的对象相似度较高,而不同簇之间的对象相似度较低。聚类分析的目的主要有:- 发现数据中的自然分组:在没有先验类别信息的情况下,通过聚类算法自动发现数据中潜在的结构和分组,例如在客户细分中,将具有相似购买行为的客户分为一组,以便企业针对不同组客户制定个性化的营销策略。
- 数据降维和可视化:通过聚类可以将大量的数据点简化为少数几个簇,从而降低数据的维度,便于对数据进行可视化和理解。例如,在高维空间中的数据点通过聚类后,可以在二维或三维空间中以不同颜色或形状表示不同的簇,直观展示数据的分布情况。
- 常见的聚类算法
- K - 均值聚类:这是最常用的聚类算法之一。它首先随机选择 ( K ) 个初始聚类中心,然后将每个数据点分配到距离它最近的聚类中心所在的簇,接着重新计算每个簇的中心(即簇内所有数据点的均值),不断重复这个过程,直到聚类中心不再变化或达到预设的迭代次数。例如,在分析一群人的身高和体重数据时,使用 ( K - ) 均值聚类算法可以将人群分为不同的组,每组人群在身高和体重方面具有相似性。K - 均值聚类算法简单高效,但 ( K ) 值需要事先确定,且对初始聚类中心的选择敏感,可能会导致不同的聚类结果。
- 层次聚类:分为凝聚式层次聚类和分裂式层次聚类。凝聚式层次聚类从每个数据点作为一个单独的簇开始,然后逐步合并相似的簇,直到所有数据点都在一个簇中或满足某个终止条件;分裂式层次聚类则相反,从所有数据点在一个簇开始,逐步分裂成更小的簇。层次聚类不需要事先指定簇的数量,聚类结果以树形结构( dendrogram)展示,可以直观地看到数据点之间的层次关系。但计算复杂度较高,不适合大规模数据。
- DBSCAN(Density - Based Spatial Clustering of Applications with Noise):基于密度的聚类算法,它将数据空间中密度相连的区域划分为一个簇,并将低密度区域中的点视为噪声点。DBSCAN 能够发现任意形状的簇,对噪声数据不敏感,适用于具有复杂形状分布的数据聚类。例如,在地理数据中,分析城市的分布时,DBSCAN 可以根据城市的密度将不同区域的城市分为不同的簇,同时识别出一些孤立的小区域(噪声点)。但 DBSCAN 需要选择合适的密度参数(如邻域半径 ( \epsilon ) 和最小点数 ( MinPts )),参数选择不当可能会影响聚类效果。
- 聚类分析的步骤
- 数据预处理:与分类算法类似,对数据进行清洗、标准化或归一化等操作,以消除不同特征之间量纲的影响,使数据更适合聚类分析。
- 选择聚类算法和参数:根据数据的特点和分析目的,选择合适的聚类算法,并确定相关参数。例如,对于简单的球形簇结构数据,K - 均值聚类可能是一个不错的选择;对于具有复杂形状分布的数据,DBSCAN 可能更合适。同时,需要根据经验或通过一些实验方法确定参数值,如 ( K - ) 均值聚类中的 ( K ) 值、DBSCAN 中的 ( \epsilon ) 和 ( MinPts )。
- 执行聚类算法:使用选定的聚类算法对预处理后的数据进行聚类操作,得到数据的聚类结果,即每个数据点所属的簇。
- 聚类结果评估:由于聚类分析是无监督学习,没有真实的类别标签作为参考,评估聚类结果相对较困难。常用的评估指标有轮廓系数、Calinski - Harabasz 指数等。轮廓系数综合考虑了簇内的紧凑性和簇间的分离性,取值范围在 -1 到 1 之间,越接近 1 表示聚类效果越好;Calinski - Harabasz 指数越大,表示聚类效果越好。通过评估结果,可以判断聚类算法和参数的选择是否合适,如有必要,可以调整算法或参数重新进行聚类。
- 结果分析与应用:对聚类结果进行分析,理解每个簇的特征和含义,根据分析结果为实际问题提供决策支持。例如,在市场细分中,根据聚类结果了解不同客户群体的特点,制定针对性的产品推广策略。
时间序列分析
-
定义与特点
时间序列是按时间顺序排列的观测值序列,时间序列分析就是对这些序列进行分析,以揭示其随时间变化的规律,并用于预测未来值。时间序列数据具有以下特点:- 趋势性:数据随时间呈现出长期的上升、下降或平稳趋势。例如,随着科技进步和市场需求增长,某电子产品的销售额可能逐年上升;而某些传统制造业产品,由于市场饱和或新兴替代品出现,销售额可能逐渐下降。
- 季节性:数据在固定周期内呈现出有规律的波动。这种周期可以是一年(如季节性商品的销售,夏季泳衣销量高,冬季羽绒服销量高)、一个月(如某些服务行业在月初和月末业务量不同)或一周(如周末商场客流量大于工作日)等。
- 周期性:与季节性类似,但周期不一定固定,通常由经济、环境等复杂因素引起。例如,经济周期可能导致企业盈利在若干年中呈现周期性变化。
- 随机性:数据中包含无法用趋势、季节性或周期性解释的随机波动,这些波动由偶然因素造成。
-
常用分析方法
- 移动平均法:通过计算一定时间窗口内数据的平均值来平滑数据,消除随机波动,凸显数据的趋势和季节性。简单移动平均(SMA)是取固定时间窗口内数据的算术平均值,加权移动平均(WMA)则对不同时间的数据赋予不同权重,近期数据权重较大,以更好反映数据的最新变化。例如,计算过去 3 个月的平均销售额来预测下个月销售额,若采用加权移动平均,可对最近一个月销售额赋予更高权重。
- 指数平滑法:是移动平均法的改进,它对过去所有数据都给予一定权重,且权重随时间呈指数衰减,更强调近期数据的影响。简单指数平滑(SES)适用于没有明显趋势和季节性的数据;霍尔特 - 温特(Holt - Winters)指数平滑法可处理具有趋势和季节性的数据,分为加法模型(适用于季节性波动幅度相对稳定情况)和乘法模型(适用于季节性波动幅度随时间变化情况)。
- 自回归积分滑动平均模型(ARIMA):用于对平稳时间序列进行建模和预测。它由自回归(AR)、积分(I)和滑动平均(MA)三部分组成。自回归部分考虑序列当前值与过去值的线性关系;积分部分通过对序列进行差分使其平稳;滑动平均部分考虑误差项的相关性。对于非平稳时间序列,先通过差分等变换使其平稳,再构建 ARIMA 模型。例如,分析电力消耗时间序列,可使用 ARIMA 模型预测未来电力需求。
-
时间序列分析步骤
- 数据收集与预处理:收集相关时间序列数据,并检查数据完整性,处理缺失值(可采用插值法、均值/中位数填充等)和异常值(如修正、删除或转换)。同时,根据数据频率(如日、周、月等)进行适当整理。
- 平稳性检验:判断时间序列是否平稳,因为多数时间序列分析方法要求数据平稳。常用的检验方法有单位根检验(如 Augmented Dickey - Fuller 检验,简称 ADF 检验)。若数据非平稳,需进行差分处理,直到序列平稳。
- 模型识别与选择:根据平稳性检验结果和数据特点,选择合适模型。观察自相关函数(ACF)和偏自相关函数(PACF)图形,确定 ARIMA 模型的参数 ( p )(自回归阶数)、( d )(差分阶数)、( q )(滑动平均阶数)。也可尝试不同模型和参数组合,通过比较信息准则(如 AIC、BIC,值越小模型越好)选择最优模型。
- 模型估计与检验:使用选定模型对数据进行参数估计,并检验模型有效性。通过分析残差序列是否为白噪声(即无自相关性和异方差性)判断模型是否充分拟合数据。若残差不满足白噪声条件,需调整模型。
- 预测与评估:利用估计好的模型进行预测,并使用适当指标(如均方误差 MSE、平均绝对误差 MAE、平均绝对百分比误差 MAPE 等)评估预测准确性。根据评估结果,可进一步优化模型或调整预测方法。例如,通过 MAPE 评估预测的销售额与实际销售额的偏差程度,若偏差较大,需改进模型。
以下为补充时间序列分析中一些其他常见内容:
季节性分解
-
定义与目的
季节性分解是将时间序列数据分解为趋势(Trend)、季节性(Seasonal)和残差(Residual)等成分的过程。目的在于清晰地了解时间序列中不同成分对数据变化的影响,从而更好地分析数据规律、预测未来值。例如,在分析每月的零售销售额数据时,通过季节性分解,可以明确销售额的长期增长趋势、季节性波动模式以及去除趋势和季节性后剩余的随机波动部分。 -
常用方法
- 加法模型:假设时间序列 ( Y_t ) 可以表示为趋势成分 ( T_t )、季节性成分 ( S_t ) 和残差成分 ( e_t ) 的和,即 ( Y_t = T_t + S_t + e_t )。在加法模型中,季节性波动的幅度不随时间变化而改变。例如,某城市每月的公共交通客流量,在不考虑其他因素时,季节性波动可能相对稳定,就适合用加法模型进行分解。
- 乘法模型:该模型认为时间序列 ( Y_t ) 是趋势成分 ( T_t )、季节性成分 ( S_t ) 和残差成分 ( e_t ) 的乘积,即 ( Y_t = T_t \times S_t \times e_t )。乘法模型适用于季节性波动幅度随时间变化的情况,比如一些时尚产品的销售额,随着市场规模扩大,季节性的销售高峰和低谷的差距可能也会增大,此时乘法模型更合适。
-
分解步骤
- 计算移动平均:通过移动平均法计算时间序列的趋势成分。移动平均的时间窗口长度通常与季节性周期相同,例如对于月度数据,如果存在年度季节性,窗口长度可设为12个月。移动平均的结果初步反映了数据的趋势,但可能包含部分季节性和随机波动。
- 分离季节性成分:将原时间序列除以移动平均得到的趋势序列(乘法模型)或减去趋势序列(加法模型),从而分离出季节性成分。然后对季节性成分进行平均,以消除随机波动,得到更平滑的季节性模式。
- 计算残差成分:用原时间序列减去趋势成分和季节性成分(加法模型)或除以趋势成分和季节性成分(乘法模型),得到残差成分。残差成分反映了无法由趋势和季节性解释的随机波动。
时间序列预测的其他模型与技术
-
状态空间模型
- 原理:状态空间模型将时间序列视为由不可观测的状态变量和可观测的观测变量组成。通过建立状态方程和观测方程,描述状态变量的动态变化以及状态变量与观测变量之间的关系。这种模型能够处理具有复杂动态结构的时间序列,尤其适用于对隐藏状态进行估计和预测。
- 应用场景:在经济预测、信号处理、金融风险管理等领域有广泛应用。例如,在宏观经济分析中,状态空间模型可以用于估计经济的潜在增长率等不可直接观测的变量,并进行经济预测。
-
深度学习模型
- 长短期记忆网络(LSTM):一种特殊的循环神经网络(RNN),能够有效处理时间序列中的长期依赖问题。LSTM 通过门控机制(输入门、遗忘门和输出门)控制信息的流动,从而记住长时间的信息。在预测电力消耗、股票价格等复杂时间序列数据方面表现出色。
- 门控循环单元(GRU):是 LSTM 的简化变体,具有与 LSTM 类似的处理长期依赖的能力,但结构相对简单,计算效率更高。它也被广泛应用于时间序列预测任务,如语音识别中的时间序列建模、电商销售预测等。
-
组合预测方法
将多种时间序列预测方法进行组合,利用不同方法的优势来提高预测准确性。例如,可以将移动平均法、指数平滑法和 ARIMA 模型的预测结果进行加权平均,得到最终的预测值。权重的确定可以通过最小化预测误差等方法来实现。组合预测方法在面对复杂多变的时间序列数据时,往往能够取得比单一方法更好的预测效果。
在数据分析方法板块,时间序列分析之后通常还会涉及其他方面,以下为你补充常见的内容:
关联规则挖掘
-
定义与原理
关联规则挖掘旨在发现数据集中不同项之间的关联关系,揭示哪些事物经常同时出现。其原理基于支持度(Support)、置信度(Confidence)和提升度(Lift)等指标。支持度表示项集在数据集中出现的频率,即包含该项集的事务数与总事务数之比,反映了项集的普遍程度。置信度是指在包含前项的事务中,同时包含后项的比例,衡量了规则的可靠性。提升度则是置信度与后项支持度的比值,体现了前项对后项的提升作用,大于1表示前项的出现对后项有促进作用。
例如,在超市购物篮数据中,关联规则挖掘可能发现“购买啤酒的顾客中有80%也会购买尿布”,这里“购买啤酒”是前项,“购买尿布”是后项,80%就是该规则的置信度。通过计算支持度、置信度和提升度等指标,可以筛选出有价值的关联规则。 -
常见算法
- Apriori算法:是最经典的关联规则挖掘算法。它基于“频繁项集的所有非空子集也一定是频繁的”这一先验性质,采用逐层搜索的迭代方法。首先找出所有的1 - 频繁项集(单个项组成的频繁项集),然后基于1 - 频繁项集生成2 - 频繁项集(两个项组成的频繁项集),依此类推,直到不能生成新的频繁项集为止。最后从频繁项集中生成满足最小支持度和置信度的关联规则。
- FP - growth算法:针对Apriori算法在生成候选集时计算量较大的问题而提出。它通过构建频繁模式树(FP - tree)来压缩数据,在树结构上直接挖掘频繁项集,避免了Apriori算法中大量候选集的生成过程,大大提高了挖掘效率。尤其适用于大数据集的关联规则挖掘。
-
应用场景
- 市场营销:用于制定营销策略,如交叉销售和捆绑销售。通过发现顾客购买商品之间的关联关系,商家可以将相关商品组合推荐给顾客,提高销售额。例如,发现购买手机的顾客常同时购买手机壳和充电器,商家可推出手机配件套餐。
- 医疗诊断:辅助医生进行疾病诊断。通过分析患者的症状、检查结果等数据之间的关联,发现潜在的疾病模式。例如,某些症状与特定疾病之间的关联规则,有助于医生更准确地判断病情。
- 网络分析:在网络流量分析、社交网络分析中,挖掘节点之间的关联关系。例如,在社交网络中发现哪些用户群体经常互动,为精准营销、社区发现等提供依据。
生存分析
-
定义与概念
生存分析是用于研究事件发生时间(如产品的失效时间、疾病的复发时间、病人的生存时间等)及其影响因素的一类统计方法。它不仅考虑事件是否发生,还考虑事件发生所经历的时间。在生存分析中,涉及几个重要概念:- 生存时间:从某个起始事件到目标事件发生所经历的时间。例如,从患者确诊疾病到死亡的时间,或从产品投入使用到出现故障的时间。
- 删失数据:在研究过程中,由于某些原因,部分个体的生存时间未能完整观测到。比如在研究某种药物疗效时,一些患者在研究结束时仍存活,其确切生存时间未知,这种数据就是删失数据。删失分为右删失(观测到个体在某时刻后仍存活)、左删失(只知道个体在某时刻前已经发生事件)和区间删失(只知道事件发生在某个时间区间内)。
- 生存函数:记为 ( S(t) ),表示个体生存时间大于 ( t ) 的概率,反映了生存时间的分布情况。
-
分析方法
- 非参数方法:不需要对生存时间的分布做出假设,直接根据数据估计生存函数。常用的方法有Kaplan - Meier法,通过对生存时间进行排序,逐段计算生存概率,从而绘制出生存曲线,直观展示生存时间的分布情况。该方法常用于描述性分析,比较不同组之间的生存情况。
- 参数方法:假设生存时间服从某种特定的概率分布,如指数分布、威布尔分布等。通过估计分布参数来确定生存函数。例如,当假设生存时间服从指数分布时,可以通过极大似然估计等方法估计分布的参数,进而得到生存函数。参数方法在已知或假设生存时间分布形式的情况下,能更准确地进行预测和分析。
- 半参数方法:以Cox比例风险模型为代表,该模型不假设生存时间的具体分布形式,但考虑协变量(影响生存时间的因素)对生存时间的影响。它通过估计风险比例来分析协变量与生存时间之间的关系,在医学、可靠性工程等领域广泛应用。例如,在研究癌症患者生存时间时,可将患者的年龄、性别、治疗方法等作为协变量,通过Cox模型分析这些因素对生存时间的影响。
-
应用领域
- 医学研究:评估药物疗效、比较不同治疗方案的优劣、分析影响患者生存的因素等。例如,比较两种抗癌药物对患者生存时间的影响,找出影响癌症患者预后的关键因素。
- 可靠性工程:研究产品的可靠性和寿命特征,评估产品在不同条件下的失效时间,为产品设计、维护和质量控制提供依据。例如,分析电子元件在不同使用环境下的寿命,优化产品的设计和生产工艺。
- 社会学研究:分析个体在社会现象中的持续时间,如失业持续时间、婚姻持续时间等,并研究影响这些时间的因素。例如,研究影响员工在某公司工作时长的因素,为企业人力资源管理提供参考。
以下是一些数据分析方法相关的书籍、视频及博主教程资源:
- 书籍:
- 《深入浅出数据分析》:适合入门,以通俗简单的方式让读者对数据分析概念有全面了解,能体会数据分析的思想逻辑和原则。
- 《深入浅出统计学》:号称“文科生也能看懂”,讲解了数据分析中常见的统计学知识,如基本统计量、概率分布等。
- 《利用Python进行数据分析》:经典的数据分析书籍,介绍了pandas、Numpy、matplotlib等库,可应对一般的数据分析任务。
- 《数据科学实战》:适合有一定数据分析基础的人,是数据分析和机器学习之间的桥梁,介绍了回归分析、k近邻等机器学习基本算法。
- 视频教程:
- 国家高等教育智慧教育平台的数据分析课程:课程包含数据统计分析方法、数据关联分析算法、线性模型分析方法等内容,还介绍了SPSS等实训工具,配有完整数据分析案例。
- B站数据分析天花板教程:内容全面详细,涵盖Excel操作、函数使用、数据透视表、数据分析流程、数据清洗、RFM分析模型、漏斗分析模型等,还有SPSS和Tableau相关内容。
- Datawhale动手学数据分析:以项目为主线,通过Jupyter Notebook进行教学,包括数据基础操作、数据清洗与重构、建模和评估等内容,适合有一定Python基础的学习者。
- 博主教程:极客时间的陈旸老师专栏《数据分析实战45讲》。陈旸是清华大学计算机博士,他会结合自己的学习体会和实践经验,带你由浅入深掌握数据分析的核心知识点,并且结合案例手把手教你从源头上认识数据分析,熟悉对应的工具操作。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)