美文网首页
数据特征分析(三)

数据特征分析(三)

作者: 熊定坤 | 来源:发表于2018-11-13 19:23 被阅读0次

    6 相关性分析

    6.1 定义

    分析连续变量之间线性相关程度的强弱,并用适当的统计指标标识出来的过程

    6.2 直接绘制散点图

    判断两个变量是否具有线性相关最直接的方法

    data1 = pd.Series(np.random.rand(50)*100).sort_values()
    data2 = pd.Series(np.random.rand(50)*50).sort_values()
    data3 = pd.Series(np.random.rand(50)*500).sort_values(ascending = False)
    # 创建三个数据:data1为0-100的随机数并从小到大排列,
    #data2为0-50的随机数并从小到大排列,data3为0-500的随机数并从大到小排列
    
    fig = plt.figure(figsize = (10,4))
    ax1 = fig.add_subplot(1,2,1)
    ax1.scatter(data1, data2)
    plt.grid()
    plt.title('正线性相关')
    # 正线性相关
    
    ax2 = fig.add_subplot(1,2,2)
    ax2.scatter(data1, data3)
    plt.grid()
    plt.title('负线性相关')
    # 负线性相关
    
    image.png
    6.3 绘制散点图矩阵

    散点图矩阵初判多变量间关系,进行多元线性回归时尤为重要

    data = pd.DataFrame(np.random.randn(200,4)*100, columns = ['A','B','C','D'])
    sns.set()
    sns.pairplot(data)
    

    scatterplot 绘制散点图矩阵注意:多变量作图数据中不能有空值,否则出错

    散点矩阵图
    6.3 计算相关系数

    二元变量的相关分析过程中比较常用有Pearson相关系数和Sperman秩相关系数

    6.3.1 Pearson相关系数

    用于分析两个连续性变量直接的线性关系,要求联系变量的取值服从正太分布(二项分布近似正太分布)

    data = pd.read_excel(r'C:\Users\Administrator\Desktop\chapter3 data\catering_sale_all.xls')
    print(data.head())
    data.corr() #method='pearson' ,默认为*Pearson*相关系数
    
    菜品相关系数

    相关系数r的取值范围-11之间,|r|存在不同程度的线性相关
    r>0 正相关,r<0负相关
    |r|≤0.3 不存在线性相关
    0.3<|r|≤0.5 为低度线性相关
    0.5<|r|≤0.8 为显著线性相关
    |r|>0.8 为高度线性相关

    plt.figure(figsize=(12,9))
    sns.set(font_scale=1.25,font='STSong')#解决seaborn不能显示中文的问题
    # 使用热地图(heat map)更直观地展示系数矩阵情况
    # vmax设定热地图色块的最大区分值
    # square设定图片为正方形与否
    # annot设定是否显示每个色块的系数值
    sns.heatmap(data.corr(),vmax=1,square=True,annot=True)
    
    热力图

    分析这些菜品销售量之间的相关性可以得到不同菜品之间的关系,比如替补菜品,互补菜品或者没有关系,为原材料采购提供参考
    从上面结果得出,客户点了”百合酱蒸凤爪“与点了’‘乐膳真味鸡‘’和‘生炒菜心’,‘原汁原味菜心’相关性比较高

    6.3.2 Sperman秩相关系数

    对于不服从正太分布的变量,分类或者等级变量之间的关联性可采取Sperman秩相关系数,也称等级相关系数

    data.corr(method='spearman')[['百合酱蒸凤爪','翡翠蒸香茜饺']]
    
    
    Sperman秩相关系数

    两个变量具有严格单调的函数关系,那么它们就是完全Sperman秩相关,在正太分布的假定下,Sperman秩相关系数与Pearson相关系数在效率上是等价的

    7 正态性检验

    7.1 定义

    利用观测数据判断总体是否服从正态分布的检验称为正态性检验,它是统计判决中重要的一种特殊的拟合优度假设检验。常用判断方法直方图初判 / QQ图判断 / K-S检验

    7.2 直方图初判
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    % matplotlib inline
    import seaborn as sns
    from scipy import stats
    # scipy包是一个高级的科学计算库,它和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算
    from scipy.stats import norm,skew
    
    s = pd.DataFrame(np.random.randn(1000)+10,columns = ['value'])
    # 创建随机数据
    sns.set()
    sns.distplot(s,fit = norm) #displot集合了直方图和拟合曲线
    (mu, sigma) = norm.fit(s) #求出正太分布的均值和标准差
    plt.legend(['Normal dist. ($\mu=$ {:.2f} and $\sigma=$ {:.2f} )'.format(mu, sigma)],loc='best') 
    
    直方图初判
    样本均值为9.97,样本标准差为0.98
    样本呈明显正太分布
    7.3 QQ图判断

    QQ图通过把测试样本数据的分位数与已知分布相比较,从而来检验数据的分布情况
    QQ图是一种散点图,对应于正态分布的QQ图,就是由标准正态分布的分位数为横坐标,样本值为纵坐标的散点图
    参考直线:如果数据严格意义上服从正太分布,点将形成一条直线,该正太分布的均值是直线在Y轴上的截距,标准差是该直线的斜率

    fig = plt.figure()
    res = stats.probplot(s['value'],plot=plt)  #样本为Series,默认dist='norm' 拟合直线为正太分布
    

    将样本数据绘制的点形成的图案与直线比较,其拟合程度较高,符合正太分布

    样本数据点绘制的点会形成其他一些常见的变形图案
    具体可以参考:https://wenku.baidu.com/view/03c56baddd3383c4bb4cd2ae.html

    短尾分布:如果尾部比正常的短,则点所形成的图形左边朝直线上方弯曲,右边朝直线下,如果倾斜向右看,图形呈S型。表明数据比标准正态分布时候更加集中靠近均值
    长尾分布:如果尾部比正常的长,则点所形成的图形左边朝直线下方弯曲,右边朝直线下,如果倾斜向右看,图形倒S型。表明数据比标准正态分布时候有更多偏离的数据
    右偏态分布:在图型的两端,分布的点在直线的上方。因此,点所形成的图形与直线相比向上弯曲,或者说呈U型。
    左偏态分布:在图型的两端,分布的点在直线的下方。因此,点所形成的图形与直线相比向下弯曲

    7.4 KS检验
    data = [87,77,92,68,80,78,84,77,81,80,80,77,92,86,
           76,80,81,75,77,72,81,72,84,86,80,68,77,87,
           76,77,78,92,75,80,78]
    # 样本数据,35位健康男性在未进食之前的血糖浓度
    
    df = pd.DataFrame(data, columns =['value'])
    u = df['value'].mean()  # 计算均值
    std = df['value'].std()  # 计算标准差
    stats.kstest(df['value'], 'norm', (u, std))
    # .kstest方法:KS检验,参数分别是:待检验的数据,检验方法(这里设置成norm正态分布),均值与标准差
    # 结果返回两个值:statistic → D值,pvalue → P值
    # p值大于0.05,为正态分布
    

    KstestResult(statistic=0.15901807048240979, pvalue=0.30662972583580261)
    该样本p值大于0.05,符合正太分布

    相关文章

      网友评论

          本文标题:数据特征分析(三)

          本文链接:https://www.haomeiwen.com/subject/evzkfqtx.html