精华内容
下载资源
问答
  • 数据统计分析 数据统计分析 数据统计分析 数据统计分析
  • PHP做数据统计分析

    千次阅读 2019-03-25 14:45:31
    前段时间的主要工作是开发统计系统, 统计公司产品的安装量和回访量,统计数据则由客户端调用C接口写入mysql数据库,即我们只需要分析客户端写入的原始数据即可。下面是对这个项目的一个总结: 系统评估 1、预估...

    前段时间的主要工作是开发统计系统, 统计公司产品的安装量和回访量,统计数据则由客户端调用C接口写入mysql数据库,即我们只需要分析客户端写入的原始数据即可。下面是对这个项目的一个总结:

    系统评估

    • 1、预估当前每天的回访量有大几百万,随着其它产品的不断推广, 要统计的数据可能越来越多。
    • 2、统计的数据有比较强的约束关系。对于一条安装数据,必须判断之前唯一安装表中是否存在该记录, 若存在则再根据版本判断升级或重装,否则为新装数据,回访数据类似逻辑。所以,如果要出按小时统计数据,则必须把前一个小时数据处理完之后才可以处理后面的数据;前一天的数据处理完之后才可以处理后一天的数据。
    • 3、团队中都擅长的是PHP。hadoop或其他大数据处理方式经验薄弱,面临学习成本和一些未知因素。

    所以最终还是选择用PHP+Mysql来统计,前期应该可以撑一撑。

    整体思路

    接下来对每个步骤进行梳理:

    • 1、C接口直接写数据到安装表和回访表,原始数据的表采用按年分表,按天分区。原始数据量比较大,也不适合PHP写入。
    • 2、转移数据。原始表记录数比较多,为了尽可能的减少与原始表的耦合,这里做了一个转移的动作,将原始表的最新安装、回访数据转移到近期安装、回访表中。近期表只保留3天的数据,即近期回访表的数据会维持在2000w左右。这个动作是否可以用触发器来完成?这里没有采用触发器,个人始终认为触发器和业务依赖太紧,当原始数据需要调整时触发器也要相应调整,觉得不是很方便,因为修改触发器势必会影响写入操作。
    • 3、数据更新。因为需要一条一条判断数据为新装、重装或者新用户、老用户,区域等,所以有这个更新的过程,更新每一条记录的状态。这里将可能是系统瓶颈所在。
    • 4、小时报表。 数据更新完之后即可根据该数据出报表,因为统计的字段8个左右,所以累计到一定时间之后,这个表的数据也将会很多,前台不适合直接从这里取报表数据。
    • 5、其他报表。 可根据小时报表出天的报表,或者出特定字段的报表等等,这是很方便的,同时数据量也将成倍的减少。

    系统实现

    项目使用CI开发,实现的步骤就没太多说的,查询的时候注意下索引的先后顺序就行了,系统到目前还没出现因不中索引而引起的问题。不过程序上的一些调整可以记录下:

    • 1、 报表采用highchart实现,但最开始是直接在控制器获取到报表数据后传到视图,当一个页面有多个报表的时候需要把这些数据一次性读取出来之后页面才会显示。运行了一段时间发现打开慢,也不方便扩展,所以把报表统一改成了ajax调用。
    • 2、 菜单的调整。最开始未意识到后面有更多的产品移植过来,所以对菜单也进行过一次调整。
    • 3、 crontab的调整。最开始所有的crontab脚本都放置在一个控制器中,随着不断的增加发现越来越难控了,难以按产品区分,有些也不用了。为了理清这些脚本以及执行频率,对这里- 进行了一次调整。
    • 4、主从调整。运行一段时间后增加了个从库(32G),所有查询的操作从从库拿,调整之后前台报表表现明显。
    • 5、模型的调整。 这个还未深入调整^_^,因为有新老系统的原因, 模型太多,以及很多业务逻辑写在模型中,模型很重。

    上面的每一个调整并不需要多少时间, 但对不段增长的系统是很有好处的,每当它要倾斜时,我们就把它扶正,希望它能坚持更久一点。

    系统新增功能和调整

    调整用户唯一ID。

    IOS产品原先用uuid来判断唯一性,但7.0之后发现uuid不唯一了,所以统计系统部分产品要将唯一值由uuid替换为序列号,但一直以来都是uuid为唯一ID,统计这边也直接以uuid为唯一键了。这意味着唯一键要调整,大部分表结构都需要调整了。

    原始表有的有序列号,有的没有,所以首先是原始表统一增加序列号字段,因为转移的数据只将特定的字段值写进去,所以原始表的调整对统计不会有影响。同时原始表已有2.5亿数据,直接调整表结构基本不可能。所以采取新建一张调整后的表,rename一下即可,rename的过程是很快的,rename之前的几千条未转移的数据再手动转移一下。

    统计这边将在近期表新增一个唯一字段, 唯一字段不依赖固定值。因为即便调整了, 有一些产品还是以uuid为准,唯一值在转移的过程中判断即可。 统计系统调整时先停下所有的脚本,近期表直接删除重建即可,唯一表因为需要处理,边转移边处理一下即可,报表数据保留原有。所以整个过程下来调整并不算大,只是因为数据量比较大,处理觉得麻烦一点而已。

    增加一个产品

    系统中已经增加了好几个产品了, 这里增加产品的接口是用php实现的。即客户端调用php页面,php写数据库,回访数据大概每天100w左右。运行几天后发现php接口机器挂了, nignx进程数太多。原因就是统计系统比较忙时,数据库压力比较大,php一条一条写入很慢, 很多进程都在等待,于是爆了。。。

    针对这个问题的处理方法是,php接口直接写数据到文本,然后脚本定时load数据到数据库。

    历史数据处理

    有个产品需要对历史数据进行重新统计,历史数据有1亿多。因为历史数据和新数据之间的字段、值等需要进行一次处理,所以采用 SELECT INTO OUTFILE的方式导出,1.6亿数据中导出1.2亿大概5分钟左右。导出之后的的文件有9G左右,直接一次LOAD mysql会超出binlog的限制。所以设置了binglog为3G,然后对原数据按每1000w行进行切割,在一个个导入。

    如果导入的表已经建好索引,开始导入1000w要半个多小时,导入了4000w数据后发现奇慢无比。后来重新导,导入的表未建立索引,1000w数据大概需要9分钟左右。不过后来增加索引花了大概2个半小时。

    对原始数据的处理也是一个问题,为了提升效率,比较大的数据采用多进程跑,比如开10多个进程同时跑一个小时的数据,二三十万数据3分钟就搞定。但当系统中的这些进程碰到一起时,系统就开始慢了, 所以只能用程序去控制下。

    系统总结

    1、 到目前位置系统运行还算正常,但随着新功能的不断增加,这也是个挑战。如果只是针对单个产品,一般的业务,用php来处理,日2000w数据问题应该不是很大。

    2、系统监控。到目前位置做个几个统计系统了,前面一个是最完善的,有很多监控,可以很快发现问题。当前这个系统数据量是比较大的,但监控还比较薄弱,或者已经有很多潜在的问题被忽略,所以做好监控是有必要的。

    3、 使用php运行crontab要防止脚本重复执行,限制起来也很简单,可以用php的exec函数去查看一下当前脚本是否正在执行(需要服务器未限制exec函数),如果正在执行就直接退出,给个简单的判断方法:

    function get_process_num($process_name) { return exec('ps -ef | grep "'.$process_name.'" | grep -v "grep" | wc -l'); }

     

    展开全文
  • python数据统计分析

    万次阅读 多人点赞 2019-02-17 09:08:25
      scipy包中的stats模块和statsmodels包是python常用的数据分析工具,scipy.stats以前有一个models子模块,后来被移除了。这个模块被重写并成为了现在独立的statsmodels包。  scipy的stats包含一些比较基本的工具...

    1. 常用函数库

      scipy包中的stats模块和statsmodels包是python常用的数据分析工具,scipy.stats以前有一个models子模块,后来被移除了。这个模块被重写并成为了现在独立的statsmodels包。

     scipy的stats包含一些比较基本的工具,比如:t检验,正态性检验,卡方检验之类,statsmodels提供了更为系统的统计模型,包括线性模型,时序分析,还包含数据集,做图工具等等。

    2. 小样本数据的正态性检验

    (1) 用途

     夏皮罗维尔克检验法 (Shapiro-Wilk) 用于检验参数提供的一组小样本数据线是否符合正态分布,统计量越大则表示数据越符合正态分布,但是在非正态分布的小样本数据中也经常会出现较大的W值。需要查表来估计其概率。由于原假设是其符合正态分布,所以当P值小于指定显著水平时表示其不符合正态分布。

     正态性检验是数据分析的第一步,数据是否符合正态性决定了后续使用不同的分析和预测方法,当数据不符合正态性分布时,我们可以通过不同的转换方法把非正太态数据转换成正态分布后再使用相应的统计方法进行下一步操作。

    (2) 示例

    from scipy import stats
    import numpy as np
    
    np.random.seed(12345678)
    x = stats.norm.rvs(loc=5, scale=10, size=80) # loc为均值,scale为方差
    print(stats.shapiro(x))
    # 运行结果:(0.9654011726379395, 0.029035290703177452)
    

    (3) 结果分析

     返回结果 p-value=0.029035290703177452,比指定的显著水平(一般为5%)小,则拒绝假设:x不服从正态分布。

    3. 检验样本是否服务某一分布

    (1) 用途

     科尔莫戈罗夫检验(Kolmogorov-Smirnov test),检验样本数据是否服从某一分布,仅适用于连续分布的检验。下例中用它检验正态分布。

    (2) 示例

    from scipy import stats
    import numpy as np
    
    np.random.seed(12345678)
    x = stats.norm.rvs(loc=0, scale=1, size=300)
    print(stats.kstest(x,'norm'))
    # 运行结果:KstestResult(statistic=0.0315638260778347, pvalue=0.9260909172362317)
    

    (3) 结果分析

     生成300个服从N(0,1)标准正态分布的随机数,在使用k-s检验该数据是否服从正态分布,提出假设:x从正态分布。最终返回的结果,p-value=0.9260909172362317,比指定的显著水平(一般为5%)大,则我们不能拒绝假设:x服从正态分布。这并不是说x服从正态分布一定是正确的,而是说没有充分的证据证明x不服从正态分布。因此我们的假设被接受,认为x服从正态分布。如果p-value小于我们指定的显著性水平,则我们可以肯定的拒绝提出的假设,认为x肯定不服从正态分布,这个拒绝是绝对正确的。

    4.方差齐性检验

    (1) 用途

     方差反映了一组数据与其平均值的偏离程度,方差齐性检验用以检验两组或多组数据与其均值偏离程度是否存在差异,也是很多检验和算法的先决条件。

    (2) 示例

    from scipy import stats
    import numpy as np
    
    np.random.seed(12345678)
    rvs1 = stats.norm.rvs(loc=5,scale=10,size=500)  
    rvs2 = stats.norm.rvs(loc=25,scale=9,size=500)
    print(stats.levene(rvs1, rvs2))
    # 运行结果:LeveneResult(statistic=1.6939963163060798, pvalue=0.19337536323599344)
    

    (3) 结果分析

     返回结果 p-value=0.19337536323599344, 比指定的显著水平(假设为5%)大,认为两组数据具有方差齐性。

    5. 图形描述相关性

    (1) 用途

     最常用的两变量相关性分析,是用作图描述相关性,图的横轴是一个变量,纵轴是另一变量,画散点图,从图中可以直观地看到相关性的方向和强弱,线性正相关一般形成由左下到右上的图形;负相关则是从左上到右下的图形,还有一些非线性相关也能从图中观察到。

    (2) 示例

    import statsmodels.api as sm
    import matplotlib.pyplot as plt
    data = sm.datasets.ccard.load_pandas().data
    plt.scatter(data['INCOMESQ'], data['INCOME'])
    

    (3) 结果分析

     从图中可以看到明显的正相关趋势。

    6. 正态资料的相关分析

    (1) 用途

     皮尔森相关系数(Pearson correlation coefficient)是反应俩变量之间线性相关程度的统计量,用它来分析正态分布的两个连续型变量之间的相关性。常用于分析自变量之间,以及自变量和因变量之间的相关性。

    (2) 示例

    from scipy import stats
    import numpy as np
    
    np.random.seed(12345678)
    a = np.random.normal(0,1,100)
    b = np.random.normal(2,2,100)
    print(stats.pearsonr(a, b))
    # 运行结果:(-0.034173596625908326, 0.73571128614545933)
    

    (3) 结果分析

     返回结果的第一个值为相关系数表示线性相关程度,其取值范围在[-1,1],绝对值越接近1,说明两个变量的相关性越强,绝对值越接近0说明两个变量的相关性越差。当两个变量完全不相关时相关系数为0。第二个值为p-value,统计学上,一般当p-value<0.05时,可以认为两变量存在相关性。

    7. 非正态资料的相关分析

    (1) 用途

     斯皮尔曼等级相关系数(Spearman’s correlation coefficient for ranked data ),它主要用于评价顺序变量间的线性相关关系,在计算过程中,只考虑变量值的顺序(rank, 秩或称等级),而不考虑变量值的大小。常用于计算类型变量的相关性。

    (2) 示例

    from scipy import stats
    import numpy as np
    
    print(stats.spearmanr([1,2,3,4,5], [5,6,7,8,7]))
    # 运行结果:SpearmanrResult(correlation=0.82078268166812329, pvalue=0.088587005313543812)
    

    (3) 结果分析

     返回结果的第一个值为相关系数表示线性相关程度,本例中correlation趋近于1表示正相关。第二个值为p-value,p-value越小,表示相关程度越显著。

    8. 单样本T检验

    (1) 用途

     单样本T检验,用于检验数据是否来自一致均值的总体,T检验主要是以均值为核心的检验。注意以下几种T检验都是双侧T检验。

    (2) 示例

    from scipy import stats
    import numpy as np
    
    np.random.seed(12345678)
    rvs = stats.norm.rvs(loc=5, scale=10, size=(100,2))
    print(stats.ttest_1samp(rvs, [1, 5]))
    # 运行结果:Ttest_1sampResult(statistic=array([ 5.12435977,  1.07927393]), pvalue=array([  1.47820719e-06,   2.83088106e-01]))
    

    (3) 结果分析

     本例中生成了2列100行的数组,ttest_1samp的第二个参数是分别对两列估计的均值,p-value返回结果,第一列1.47820719e-06比指定的显著水平(一般为5%)小,认为差异显著,拒绝假设;第二列2.83088106e-01大于指定显著水平,不能拒绝假设:服从正态分布。

    9. 两独立样本T检验

    (1) 用途

     有于比较两组数据是否来自于同一正态分布的总体。注意:如果要比较的两组数据不满足方差齐性, 需要在ttest_ind()函数中添加参数equal_var = False。

    (2) 示例

    from scipy import stats
    import numpy as np
    
    np.random.seed(12345678)
    rvs1 = stats.norm.rvs(loc=5,scale=10,size=500)  
    rvs2 = stats.norm.rvs(loc=6,scale=10,size=500)
    print(stats.ttest_ind(rvs1,rvs2))
    # 运行结果:Ttest_indResult(statistic=-1.3022440006355476, pvalue=0.19313343989106416)
    

    (3) 结果分析

     返回结果的第一个值为统计量,第二个值为p-value,pvalue=0.19313343989106416,比指定的显著水平(一般为5%)大,不能拒绝假设,两组数据来自于同一总结,两组数据之间无差异。

    10. 配对样本T检验

    (1) 用途

     配对样本T检验可视为单样本T检验的扩展,检验的对象由一群来自正态分布独立样本更改为二群配对样本观测值之差。它常用于比较同一受试对象处理的前后差异,或者按照某一条件进行两两配对分别给与不同处理的受试对象之间是否存在差异。

    (2) 示例

    from scipy import stats
    import numpy as np
    
    np.random.seed(12345678)
    rvs1 = stats.norm.rvs(loc=5,scale=10,size=500) 
    rvs2 = (stats.norm.rvs(loc=5,scale=10,size=500) + stats.norm.rvs(scale=0.2,size=500)) 
    print(stats.ttest_rel(rvs1,rvs2))
    运行结果:Ttest_relResult(statistic=0.24101764965300979, pvalue=0.80964043445811551)
    

    (3) 结果分析

     返回结果的第一个值为统计量,第二个值为p-value,pvalue=0.80964043445811551,比指定的显著水平(一般为5%)大,不能拒绝假设。

    11. 单因素方差分析

    (1) 用途

     方差分析(Analysis of Variance,简称ANOVA),又称F检验,用于两个及两个以上样本均数差别的显著性检验。方差分析主要是考虑各组之间的均数差别。

     单因素方差分析(One-wayAnova),是检验由单一因素影响的多组样本某因变量的均值是否有显著差异。

     当因变量Y是数值型,自变量X是分类值,通常的做法是按X的类别把实例成分几组,分析Y值在X的不同分组中是否存在差异。

    (2) 示例

    from scipy import stats
    a = [47,56,46,56,48,48,57,56,45,57]  # 分组1
    b = [87,85,99,85,79,81,82,78,85,91]  # 分组2
    c = [29,31,36,27,29,30,29,36,36,33]  # 分组3
    print(stats.f_oneway(a,b,c))
    # 运行结果:F_onewayResult(statistic=287.74898314933193, pvalue=6.2231520821576832e-19)
    

    (3) 结果分析

     返回结果的第一个值为统计量,它由组间差异除以组间差异得到,上例中组间差异很大,第二个返回值p-value=6.2231520821576832e-19小于边界值(一般为0.05),拒绝原假设, 即认为以上三组数据存在统计学差异,并不能判断是哪两组之间存在差异 。只有两组数据时,效果同 stats.levene 一样。

    12. 多因素方差分析

    (1) 用途

     当有两个或者两个以上自变量对因变量产生影响时,可以用多因素方差分析的方法来进行分析。它不仅要考虑每个因素的主效应,还要考虑因素之间的交互效应。

    (2) 示例

    from statsmodels.formula.api import ols
    from statsmodels.stats.anova import anova_lm
    import pandas as pd
     
    X1 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2] 
    X2 = [1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2]
    Y  = [76,78,76,76,76,74,74,76,76,55,65,90,65,90,65,90,90,79,70,90, 88,76,76,76,56,76,76,98,88,78,65,67,67,87,78,56,54,56,54,56] 
     
    data = {'T':X1, 'G':X2, 'L':Y}
    df = pd.DataFrame(data)
    formula = 'L~T+G+T:G' # 公式                                        
    model = ols(formula,df).fit()
    print(anova_lm(model))
    '''
    运行结果:
                df    sum_sq      mean_sq         F    PR(>F)
    T          1.0   265.225   265.225000  2.444407  0.126693
    G          1.0   207.025   207.025000  1.908016  0.175698
    T:G        1.0  1050.625  1050.625000  9.682932  0.003631
    Residual  36.0  3906.100   108.502778       NaN       NaN
    '''
    

    (3) 结果分析

     上述程序定义了公式,公式中,"~"用于隔离因变量和自变量,”+“用于分隔各个自变量, ":"表示两个自变量交互影响。从返回结果的P值可以看出,X1和X2的值组间差异不大,而组合后的T:G的组间有明显差异。

    13. 卡方检验

    (1) 用途

     上面介绍的T检验是参数检验,卡方检验是一种非参数检验方法。相对来说,非参数检验对数据分布的要求比较宽松,并且也不要求太大数据量。卡方检验是一种对计数资料的假设检验方法,主要是比较理论频数和实际频数的吻合程度。常用于特征选择,比如,检验男人和女人在是否患有高血压上有无区别,如果有区别,则说明性别与是否患有高血压有关,在后续分析时就需要把性别这个分类变量放入模型训练。

     基本数据有R行C列, 故通称RC列联表(contingency table), 简称RC表,它是观测数据按两个或更多属性(定性变量)分类时所列出的频数表。

    (2) 示例

    import numpy as np
    import pandas as pd
    from scipy.stats import chi2_contingency
    
    np.random.seed(12345678)
    data = np.random.randint(2, size=(40, 3)) # 2个分类,50个实例,3个特征
    data = pd.DataFrame(data, columns=['A', 'B', 'C'])
    contingency = pd.crosstab(data['A'], data['B']) # 建立列联表
    print(chi2_contingency(contingency)) # 卡方检验
    '''
    运行结果:
    (0.36556036556036503, 0.54543425102570975, 1, 
    array([[ 10.45,   8.55],
           [ 11.55,   9.45]]))'''
    

    (3) 结果分析

     卡方检验函数的参数是列联表中的频数,返回结果第一个值为统计量值,第二个结果为p-value值,p-value=0.54543425102570975,比指定的显著水平(一般5%)大,不能拒绝原假设,即相关性不显著。第三个结果是自由度,第四个结果的数组是列联表的期望值分布。

    14. 单变量统计分析

    (1) 用途

     单变量统计描述是数据分析中最简单的形式,其中被分析的数据只包含一个变量,不处理原因或关系。单变量分析的主要目的是通过对数据的统计描述了解当前数据的基本情况,并找出数据的分布模型。

     单变量数据统计描述从集中趋势上看,指标有:均值,中位数,分位数,众数;从离散程度上看,指标有:极差、四分位数、方差、标准差、协方差、变异系数,从分布上看,有偏度,峰度等。需要考虑的还有极大值,极小值(数值型变量)和频数,构成比(分类或等级变量)。

     此外,还可以用统计图直观展示数据分布特征,如:柱状图、正方图、箱式图、频率多边形和饼状图。

    15. 多元线性回归

    (1) 用途

     多元线性回归模型(multivariable linear regression model ),因变量Y(计量资料)往往受到多个变量X的影响,多元线性回归模型用于计算各个自变量对因变量的影响程度,可以认为是对多维空间中的点做线性拟合。

    (2) 示例

    import statsmodels.api as sm 
    data = sm.datasets.ccard.load_pandas().data
    model = sm.OLS(endog = data['AVGEXP'], exog = data[['AGE','INCOME','INCOMESQ','OWNRENT']]).fit()
    print(model.summary())
    '''
    运行结果:
                                OLS Regression Results                            
    ==============================================================================
    Dep. Variable:                 AVGEXP   R-squared:                       0.543
    Model:                            OLS   Adj. R-squared:                  0.516
    Method:                 Least Squares   F-statistic:                     20.22
    Date:                Thu, 31 Jan 2019   Prob (F-statistic):           5.24e-11
    Time:                        15:11:29   Log-Likelihood:                -507.24
    No. Observations:                  72   AIC:                             1022.
    Df Residuals:                      68   BIC:                             1032.
    Df Model:                           4                                         
    Covariance Type:            nonrobust                                         
    ==============================================================================
                     coef    std err          t      P>|t|      [0.025      0.975]
    ------------------------------------------------------------------------------
    AGE           -6.8112      4.551     -1.497      0.139     -15.892       2.270
    INCOME       175.8245     63.743      2.758      0.007      48.628     303.021
    INCOMESQ      -9.7235      6.030     -1.613      0.111     -21.756       2.309
    OWNRENT       54.7496     80.044      0.684      0.496    -104.977     214.476
    ==============================================================================
    Omnibus:                       76.325   Durbin-Watson:                   1.692
    Prob(Omnibus):                  0.000   Jarque-Bera (JB):              649.447
    Skew:                           3.194   Prob(JB):                    9.42e-142
    Kurtosis:                      16.255   Cond. No.                         87.5
    ==============================================================================
    '''
    

    (3) 结果分析

     直接通过返回结果中各变量的P值与0.05比较,来判定对应的解释变量的显著性,P<0.05则认为自变量具有统计学意义,从上例中可以看到收入INCOME最有显著性。

    16. 逻辑回归

    (1) 用途

     当因变量Y为2分类变量(或多分类变量时)可以用相应的logistic回归分析各个自变量对因变量的影响程度。

    (2) 示例

    import statsmodels.api as sm
    data = sm.datasets.ccard.load_pandas().data
    data['OWNRENT'] = data['OWNRENT'].astype(int)
    model = sm.Logit(endog = data['OWNRENT'], exog = data[['AVGEXP','AGE','INCOME','INCOMESQ']]).fit()
    print(model.summary())
    '''
    运行结果:
    Optimization terminated successfully.
             Current function value: 0.504920
             Iterations 8
                               Logit Regression Results                           
    ==============================================================================
    Dep. Variable:                OWNRENT   No. Observations:                   72
    Model:                          Logit   Df Residuals:                       68
    Method:                           MLE   Df Model:                            3
    Date:                Fri, 01 Feb 2019   Pseudo R-squ.:                  0.2368
    Time:                        17:05:47   Log-Likelihood:                -36.354
    converged:                       True   LL-Null:                       -47.633
                                            LLR p-value:                 4.995e-05
    ==============================================================================
                     coef    std err          z      P>|z|      [0.025      0.975]
    ------------------------------------------------------------------------------
    AVGEXP         0.0002      0.001      0.228      0.820      -0.002       0.002
    AGE            0.0853      0.042      2.021      0.043       0.003       0.168
    INCOME        -2.5798      0.822     -3.137      0.002      -4.191      -0.968
    INCOMESQ       0.4243      0.126      3.381      0.001       0.178       0.670
    ==============================================================================
    '''
    

    (3) 结果分析

     直接通过返回结果中各变量的P值与0.05比较,来判定对应的解释变量的显著性,P<0.05则认为自变量具有统计学意义。

    展开全文
  • 数据统计分析方法

    万次阅读 2018-08-10 20:17:52
    数据统计分析方法: 描述统计、假设检验、相关分析、方差分析、回归分析、聚类分析、主成分与因子分析、时间序列分析、决策树。 回归分析 研究自变量与因变量之间的关系、可以用来预测因变量的值、 线性回归使用...

    数据统计分析方法:
    描述统计、假设检验、相关分析、方差分析、回归分析、聚类分析、主成分与因子分析、时间序列分析、决策树。
    回归分析
    研究自变量与因变量之间的关系、可以用来预测因变量的值、
    线性回归使用最佳的拟合直线(也就是回归线)在因变量(Y)和一个或多个自变量(X)之间建立一种关系。
    多元线性回归可表示为Y=a+b1X +b2X2+ e,其中a表示截距,b表示直线的斜率,e是误差项。
    简单线性回归,
    如果自变量X与因变量Y是直线型关系,则可以通过建立一元线性模型来描述它们之间的关系。而将所建立的一元线性模型称为一元回归模型或简单线性回归模型,
    Y=β0+β1Xi+εi
    回归模型分成两部分:一部分是由线性函数β0+β1Xi构成的确定性数值;另一部分就是随机误差εi。E(Yi)=β0+β1Xi称为回归函数。
    回归系数的估计
    回归分析的任务就是用恰当的方法估计出参数β0和β1。通过n对样本数据(Xi,Yi)可以得到回归函数E(Yi)=β0+β1Xi的估计,即:
    上式称为Y关于X的一元线性回归方程。
    β0和β1的估计值b0,b1可以通过最小二乘法计算得到。用Excel,SPSS进行一元线性拟合就是通过最小二乘法计算出b0和b1数值的。

    展开全文
  • 数据统计分析常用指标

    千次阅读 2020-05-13 14:12:28
    下面是数据统计分析常用的指标或术语:    1.平均数  一般指算术平均数。算术平均数是指全部数据累加除以数据个数。它是非常重要的基础性指标。  几何平均数:适用于对比率数据的平均,并主要用于计算数据平均...

           在进行数据分析时,经常会遇到一些分析指标或术语。这些术语是帮助我们打开思路,通过多个角度对数据进行深度解读,可以说是前人已经总结和使用的数据分析方法。下面是数据统计分析常用的指标或术语:
      
      1.平均数
      一般指算术平均数。算术平均数是指全部数据累加除以数据个数。它是非常重要的基础性指标。
      几何平均数:适用于对比率数据的平均,并主要用于计算数据平均增长(变化)率
      加权平均数:普通的算术平均数的权重相等,算术平均数是特殊的加权平均数(权重都是1)。
      例如,某人射击十次,其中二次射中10环,三次射中8环,四次射中7环,一次射中9环,那么他平均射中的环数为:(10×2+9×1+8×3+7×4)÷10=8.1

      2.绝对数与相对数
      绝对数是反映客观现象总体在一定时间、地点条件下的总规模、总水平的综合性指标,如GDP。此外,也可以表现在一定条件下数量的增减变化。
      相对数是指两个有联系的指标对比计算得到的数值,他是用以反映客观现象逐渐数量联系程度的综合指标。
      相对数=比较数值(比数)/基础数值(基数)
      基数:对比标准的指标数值。
      比数:是用作与基数对比的指标数值。

      3.百分比与百分点
      百分比表示一个数是另一个数的百分之几的数,也叫百分率。
      百分点是用以表达不同百分数之间的“算术差距”(即差)的单位。
      用百分数表达其比例关系,用百分点表达其数值差距。1个百分点=1%,表示构成的变动幅度不宜用百分数,而应该用百分点。
      举例说,0.05和0.2分别是数,而且可分别化为百分数(5%和20%)。于是比较这两个数值有几种方法:
      ①0.2是0.05的四倍,也就是说20%是5%的四倍,即百分之四百(400%)。
      ②0.2比0.05多三倍,也就是说20%比5%多三倍,即百分之三百(300%)。
      ③0.2比0.05多出0.15,也就是说20%比5%多十五个百分点。

      4.频数与频率
      频数是指一组数据中个别数据重复出现的次数。
      频数是绝对数,频率是相对数。

      5.比例与比率
      两者都是相对数。
      比例是指总体中各部分的数值占全部数值的比重,通常反映总体的构成和结构。
      比率是指不同类别数值的对比,它反映的不是部分与整体之间的关系,而是一个整体中各部分之间的关系。这一指标经常会用在社会经济领域。

      6.倍数与番数
      同属于相对数。倍数是一个数除以另一个数所得的商。A÷B=C,A就是C的倍数。(倍数一般是表示数量的增长或上升幅度,而不适用于表示数量的减少或下降。)
      番数是指原来数量的2的N次方倍。比如翻一番就是原来数的2倍,翻二番就是原来数乘以4,翻三番就是原来数乘以8。

      7.同比与环比
      同比是指与历史同时期进行比较得到的数据,该指标主要反映的是事物发展的相对情况。如2012年12月与2011年12月相比。英文翻译同比为year-on-year ratio。
      环比是指与前一个统计期进行比较得到的数值,该指标主要反映的是事物逐期发展的情况。2010年12月与2010年11月相比。环比英文可翻译为compare with the performance/figure/statistics last month。
      同比是与上年的同期水平对比,环比是同一年连环的两期对比。

      8.基线和峰值、极值分析
      峰值:增长曲线的最高点(顶点),如中国总人口2033年将达峰值15亿,性别比严重失衡。
      拐点:在数学上指改变曲线向上或向下方向的点。在统计学中指趋势开始改变的地方,出现拐点后的走势将保持基本稳定。

      9.增量与增速
      增量是指数值的变化方式和程度。如3增大到5,则3的增量为+2;3减少到1,则3的增量为-2。
      增速是指数值增长程度的相对指标。

    展开全文
  • 数据统计分析(1):数据分析流程

    千次阅读 多人点赞 2019-04-08 16:44:38
    任何事情都有一个目标,数据分析也不例外。如果目的明确,所有问题都可以迎刃而解。所以在开展数据分析之前,要想清楚:为什么要开展数据分析?通过这次数据分析我要解决什么问题?只有明确数据分析的目标,数据...
  • 4. 数据统计分析基础知识

    千次阅读 2018-06-10 18:31:05
    数据统计分析基础知识 数据统计分析基础知识 什么是数据分析 数据分析六步曲 明确分析目的和内容 数据收集 数据处理 数据分析 数据展现 报告撰写 Reference 什么是数据分析 专业 有针对性的收集、加工...
  • 基于云服务创建离线数据统计分析服务 离线数据统计分析 使用数据工厂、数据计算服务产品,可对多源数据(DB,FILE)整合分析,制定周期性的调度任务,提供任务监控及预警、数据统计分析等功能,可对接BI报表产品可视...
  • 基于云服务创建离线数据统计分析服务 离线数据统计分析 使用数据工厂、数据计算服务产品,可对多源数据(DB,FILE)整合分析,制定周期性的调度任务,提供任务监控及预警、数据统计分析等功能,可对接BI报表产品可视...
  • 数据统计分析0.0.1 测试版 我开发的一套数据统计分析用软件,其主要功能是对具备规则格式,对数据进行统计、对比、分析我开发的一套数据统计分析用软件
  • SPSS统计分析大全数据文件。。SPSS统计分析大全数据文件。。SPSS统计分析大全数据文件。。SPSS统计分析大全数据文件。。SPSS统计分析大全数据文件
  • 上期讲了金融数据的储存,这期讲解利用Python进行金融数据统计分析 下面运行环境没有的,请看第一期内容安装环境 本节重点: 分析HS300股票的市值和PE的统计规律 个股日收益率的统计规律研究 金融数据分析中...
  • 购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 Python数据分析(统计分析)视频培训课程概述:Python统计分析系列课程以Python爬虫为核心工具,结合其工具包进行统计分析实验。课程内容包括数据科学必备的几种...
  • 数据分析方法-描述性统计分析

    千次阅读 2020-04-14 09:56:53
    一、数据分析的分类与作用 二、数据分析方法-描述性统计分析
  • MATLAB-数据统计分析

    万次阅读 2019-08-17 15:39:12
    一、统计量 表示位置的统计量—平均值和中位数. 平均值(或均值,数学期望): 中位数:将数据由小到大排序后位于中间位置的那个数值. 2. 表示变异程度的统计量—标准差、方差和极差. 标准差: 它是各个...
  • Python数据分析之pandas统计分析

    万次阅读 多人点赞 2017-07-27 11:03:58
    pandas模块为我们提供了非常多的描述性统计分析的指标函数,如总和、均值、最小值、最大值等,我们来具体看看这些函数:1、随机生成三组数据import numpy as np import pandas as pdnp.random.seed(1234) d1 = pd....
  • 数据统计分析的归一化问题

    千次阅读 2015-05-05 21:04:55
    2、标准化的原因是:减去均值等同于坐标的移动,把原始数据点的重心移到和原点重合,这样利于很多表达,比如数据的协方差矩阵可以写成XX',若没有减去均值,则XX‘后面还要减去一些东西(还不明白可以参考多元统计...
  • 《基于r的统计分析数据挖掘》聚焦当今备受国内外数据分析师和数据应用者关注的r语言,关注如何借助r实现统计分析数据挖掘。它既不是仅侧重理论讲解的统计分析数据挖掘教科书,也不是仅侧重r编程操作的使用手册...
  • 常用的数据统计分析软件

    千次阅读 2015-03-23 11:59:23
    数据分析工具最常用的就是Excel,主要用于统计分析数据挖掘。Excel功能非常强大,几乎可以完成所有的统计分析工作。常用的数据分析工具有SPSS/Clementine/SAS/Origin/Matlab等等。 SPSS(IBM) SPSS是世界上最早...
  • MATLAB数据分析统计

    万人学习 2017-05-06 13:18:12
    全面学习MATLAB在数据统计分析领域中的知识
  • 数据描述的第一个维度是数据的集中趋势描述。数据的集中趋势描述是寻找反应事物特征的数据集合的代表值或中心值,这个代表值或中心值可以很好反映事物目前所处的位置和发展水平,通过对事物集中趋势指标的多次测量和...
  • 将mysql的数据转存到Hadoop实时统计分析,应该采用怎样的解决方案
  • 极差又被称为范围差或全距(Range),以R表示,是用来表示统计资料中的变异量数,其最大值与最小值之间的差距,即最大值减最小值后所得之数据。 它是标志值变动的最大范围,它是测定标志变动的最简单的指标。移动极...
  • SPSS中的数据分析—描述性统计分析【1】

    万次阅读 多人点赞 2020-06-17 10:52:57
    从今天开始,小白将深入给大家带来关于数据分析工具SPSS的使用和讲解,在这段时间里我会带着大家来一起学习了解如何使用SPSS进行描述性统计分析、假设检验、相关分析、回归分析、聚类分析、主成份分析、因子分析等。...
  • 单变量 因变量 连续变量 有序分类变量 无序分类变量 二分类变量 单自变量 ...相关分析 回归分析 ...单因素方差分析,结果解释时利用有序信息 秩相关分析、CMH x2 可将自/因变量交换后分析 可将自/因变
  • MATLAB统计分析-数据预处理

    千人学习 2019-09-04 20:35:32
    MATLAB数据分析数据预处理,包括缺失值的处理、异常值的处理、数据平滑和数据变换。
  • 如何利用MATLAB对数据统计分析

    千次阅读 多人点赞 2020-04-15 18:53:02
    本文是科学计算与MATLAB语言的专题6的第1小节总结笔记,并结合了自己一点的理解,看完本文,可以轻松借助MATLAB对数据进行分析,如求矩阵或向量的最大元素、最小元素、平均值、中值等等。 1 求最大元素与最小元素 ...
  • appstore自带的有数据统计分析,但那个太初级了,今天给各位ios/mac开发者推荐一款对appstore apps销售数据统计分析的软件Prismo,闲话少说,直接上图 1.键入你的apple ID 2.登陆后的Dashboard页面 图表 数据 ...
  • 数据分析师一定要掌握的基础——描述性统计分析

    千次阅读 多人点赞 2020-03-31 23:20:54
    以下博客内容讲解了描述性统计分析的所有知识点,以及利用鸢尾花数据集的分析加强对各个统计量的理解。 数理统计基础-描述性统计分析1、数理统计基础2、描述性统计分析概述(1)概念(2)变量的类型3、统计量(1)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 706,700
精华内容 282,680
关键字:

怎样做数据统计分析