为您推荐:
精华内容
最热下载
问答
  • 5星
    1.73MB m0_52957036 2019-12-30 14:48:57
  • 5星
    592KB weixin_44510615 2021-07-08 10:33:15
  • 5星
    387KB weixin_44510615 2021-06-23 18:04:15
  • 5星
    1KB VampireCaptain 2021-04-23 10:07:12
  • 5星
    8.67MB GISuuser 2021-09-17 19:32:38
  • 5星
    353KB qq_41934573 2021-06-24 22:06:26
  • 5星
    9.13MB weixin_44510615 2021-06-27 16:54:33
  • 5星
    48.46MB weixin_44510615 2021-07-08 11:20:34
  • 5星
    464KB SKCQTGZX 2021-09-03 15:04:56
  • 5星
    295KB weixin_42696271 2021-09-11 10:16:50
  • 1.21MB qq_43286898 2021-05-09 13:50:03
  • 774KB weixin_38744270 2019-09-10 12:13:18
  • 数学建模的影响因素分析方法PCA主成分分析灰色关联分析AHP层次分析小结         如果赶时间可直接看小结部分,再返回看正文         作为萌新参加了数学建模,为解决影响...

    数学建模的影响因素分析方法

            如果赶时间可直接看小结部分,再返回看正文
            作为萌新参加了数学建模,为解决影响煤炭价格的主要因素的问题,通过网络搜索得到以下方法,简单概括后方便今后回顾。因为希望可以帮助到今后需要速成这些知识的人,本文语言会尽量简单,在便于理解的同时,不可避免的会失去部分准确度,因此仅供参考,如有错误,欢迎指出,并以专业论文为准。

    PCA主成分分析

            主成分分析法(Principal Component Analysis),是一种使用最广泛的数据降维算法。让我们愉快的忽略掉它的原理吧√
            这个算法实际应用中可以实现的是,将多个影响因素合并为较少的影响因素。
            例如,假设价格 f ( x ) f(x) f(x)是由因素 x 1 x_{1} x1 x 2 x_{2} x2 x 3 x_{3} x3所影响的,也就是说,现在对于价格 f ( x ) f(x) f(x)的影响因素有3个。而主成分分析法的数据降维的意思是,可以减少对于价格 f ( x ) f(x) f(x)的影响因素的数量。假设使用了主成分分析法后,得到了两个影响因素 y 1 y_{1} y1 y 2 y_{2} y2,那么就可以确定价格 f ( x ) f(x) f(x) y 1 y_{1} y1 y 2 y_{2} y2所影响,其中 y 1 = λ 1 x 1 + λ 2 x 2 + λ 3 x 3 y_{1}=\lambda_{1}x_{1}+\lambda_{2}x_{2}+\lambda_{3}x_{3} y1=λ1x1+λ2x2+λ3x3 y 2 = μ 1 x 1 + μ 2 x 2 + μ 3 x 3 y_{2}=\mu_{1}x_{1}+\mu_{2}x_{2}+\mu_{3}x_{3} y2=μ1x1+μ2x2+μ3x3 λ \lambda λ μ \mu μ为影响因素 x x x的系数。
            因此通过主成分分析法,我们就可以得到新的较少的影响因素,并且还可以减少个别影响因素的波动和噪声造成的影响,除此之外得到的原本影响因素在其中的相关度,也便于之后的数据处理和分析。
            如果要使用这种方法,所需要的是因变量(主成分,即上例中的价格)和自变量(即不同影响因素)的量化数据。当然好消息是,这种数据分析法是SPSS可以进行的!也就是说,只要有量化数据,只要轻轻一点,就可以看到结果啦!
    百度经验: spss进行主成分分析图文完整教程.

    灰色关联分析

            灰色关联分析法是根据因素间发展趋势的相似或相异程度,作为衡量因素间关联程度的一种方法。 同样的,让我们愉快的忽略掉原理吧√
            灰色关联分析法可以得出的是,各个因素间的相似关系(具体的关联度)。
            这个分析法可以理解为,将两个因素随时间(或其他变化量)变化的曲线画在折线图上,比较两个因素间变化的相似性,并且给出具体的关联度。用这种方法,将之前例子中的价格 f ( x ) f(x) f(x)跟影响因素 x 1 x_{1} x1 x 2 x_{2} x2 x 3 x_{3} x3之间分别进行灰色关联分析,即可得到三个关联度,分别反映了影响因素和价格变化的相似或相异程度,数值越大,可以说明其关联程度越大,反之,关联程度较小。
            灰色关联分析跟PCA分析法一样,需要具体的量化数据才可以进行。但是好像没有专业的软件可以进行,不过网上有很多用不同语言实现的代码,可以自行搜索。

    AHP层次分析

            层次分析法(Analytic Hierarchy Process)是一种解决多目标的复杂问题的定性与定量相结合的决策分析方法。
            用人话来说,就是将具体的可以量化的关系(如苹果价格是西瓜的两倍)与决策者的经验(如认为价格比品控重要)相结合,以此来做出决策的分析方法。
            层次分析法的关键步骤是,将不同的影响因素重要程度两两进行对比,并出于客观或者主观给出具体的量化关系;然后将不同计划中,不同影响因素的影响程度进行对比,同样出于客观或主观的因素给出具体的量化关系。然后通过计算可以得出最优解。
            所以可以理解为,这种分析方法应该用于的情况是,从多种备选方案中得出最优方案,而不是一种得出主要影响因素及其关联度的方法。但是这种方法可以避免许多因素无法很好的量化的问题,将这种方法的思路与其他分析法相结合,就可以实现对于无法量化的因素的分析。

    小结

            总的来说,三种分析方法都有不同的偏向。主成分分析法偏向于化简影响因素,从而达到优化计算的效果;灰色关联分析是得到不同因素之间关联度的一种方法。这两种方法都是需要具体的量化数据才能够进行分析。与这两种不同,层次分析法是一种做出优秀决策的分析方法,并且可以实现量化主观因素的效果,将它与其他方法结合可以实现较好的分析。

    展开全文
    qq_38961968 2020-05-11 16:07:37
  • 保证金、手续费、当日平仓、是否有灾害天气、是否消费旺季这几个影响因素之间是否有关联? 数据下载地址: ...

    EverydayOneCat

    📦🙀正方?圓滾?

    🛏️💤🐈💨

    img

    知识点

    1.笔记

    image-20200715180412598

    2.两个正态总体的检验

    例:某小麦品种经过4代选育,从第5代和第6代中分别抽出10株得到它们株高的观测值分别为66,65,66,68,62,65,63,66,68,62和64,61,57,65,65,63,62,63,64,60,试检验株高这一性状是否已达到稳定(α=0.05)?

    思路:先检验方差后检验均值

    SAS代码:

    data ex;
    input c$ x@@; 
    cards; 
    a 66 a 65 a 66 a 68 a 62 a 65 a 63 a 66 a 68 a 62
    b 64 b 61 b 57 b 65 b 65 b 63 b 62 b 63 b 64 b 60
    ;
    proc ttest;class c;var x;
    run;
    

    ttest表示T检验,检验两个水平的,每个水平的都符合正态分布。
    class表示分类变量(属性)

    先看方差检验image-20200714152255750

    Pr>F概率大于0.05,接受原假设H0:方差相等

    再看均值检验image-20200714152736104

    T检验概率比0.05小,拒绝原假设,认为两均值不等,第五代和第六代株高有显著性差异,说明株高性状没有达到稳定。

    3.两组样本非参数检验

    非参数检验(non-parametric test)又称为分布自由检验,一种与总体分布状况无关的检验方法,它不依赖于总体分布的形式。

    3.1配对样本数据符号检验法

    例1 甲乙两人分析同一物质中某成份的含量,得到观测数据(单位:g)为
    甲14.7,15.0,15.2,14.8,15.5,14.6,14.9,14.8,15.1,15.0
    乙14.6,15.1,15.4,14.7,15.2,14.7,14.8,14.6,15.2,15.0
    试在显著性水平为0.05时用符号检验法检验两人的分析无显著差异.

    SAS代码:

    data ex; /*ex为数据名*/
    input x1 x2 @@;
    y=x1-x2; /*y用于存放x1和x2的差值*/
    cards; /*数据卡*/
    14.7 14.6 15.0 15.1 15.2 15.4 14.8 14.7 15.5
    15.2 14.6 14.7 14.9 14.8 14.8 14.6 15.1 15.2
    15.0 15.0
    ;
    proc univariate;/*proc univariate表示调用模块
    univariate*/
    var y; /*var y表示调用变量y*/
    run; /*执行命令*/
    

    image-20200714154944835

    结果分析: 由Tests for Location: Mu0=0表可知,M(Sign)的值为05,pr>M的值为1.00>0.05,未落在拒绝域里,故接受原假设H,认为两人的分析无显著差异。

    3.2总体中位数的符号检验法

    为了判断某个总体的中位数是否与已知数m有显著的差异

    例2 试验品种猪在17个试验点的月增重(单位:kg)见表:image-20200714155348649

    试问,月增重与35是否有显著性差异?

    SAS代码:

    data ex;
    input x @@;
    y=x-35; /*x的值与35的差值作为观测变量值*/
    cards;
    51 40 43 48 23 26 30 34
    25 40 41 39 42 40 43 30
    34
    ;
    proc univariate;var y;
    run;
    
    image-20200714155427479

    结果分析:M(Sign)的值为1.5,Pr >= |M|值为0.6291>0.05,故未落在拒绝域里,因此接受原假设,认为该品种猪月增重的中位数与35无显著差异。

    3.3成组样本数据的秩和检验法

    例3 测定两个马铃薯品种的淀粉含量(%),得到A品种的观测值为12.6, 12.4,B品种的观测值为12.4,12.1,12.5,12.7,12.6,13.1试在显著性水平为0.05时用秩和检验法检验两品种的淀粉含量无显著差异。

    这里一个2个一个6个不是一一配对,我们用到秩和检验法。

    SAS代码:

    data ex;
    do a=1 to 2;
    	input n @@;/*a因素有两个水平,由于每个水平样本个数不等,故先输入表示样本个数的变量n*/
    	do i=1 to n;input x @@;/*每个水平样本从1输到n,再输入数据x*/
    		output;
    	end;
    end; /*计算公式两连加号*/
    cards;
    2 12.6 12.4
    6 12.4 12.1 12.5 12.7 12.6 13.1
    ;
    proc npar1way wilcoxon;
    /*调用模块npar1way,数据对因素a的秩和检验模型*/
    class a;
    var x;
    run;
    

    image-20200714160526073

    结果分析:

    Kruskal-Wallis Test这一部分,自由度DF为1,Chi-Square value 为Chi-Square且Prob > Chi-Square 为0.7358>0.05,接受原假设H0,认为两品种的淀粉含量没有显著性差异,淀粉含量相同。

    4.单因素方差分析

    例4《切胚乳试验》用小麦种子进行切胚乳试验,设计分3种处理,同期播种在条件较为一致的花盆内,出苗后每盆选留2株,成熟后测量每株粒重(单位:g),得到数据如下:

    处理每株粒重
    未切去胚乳21,29,24,22,25,30,27,26
    切去一半胚乳20,25,25,23,29,31,24,26,20,21
    切去全部胚乳24,22,28,25,21,26

    分析粒重和处理方式是否有关。

    SAS代码:

    data ex;do a=1 to 3;input n @@;
    do i=1 to n; input x @@;
    Output;end;end;
    Cards;
    8 21 29 24 22 25 30 27 26
    10 20 25 25 23 29 31 24 26 20 21
    6 24 22 28 25 21 26
    ;
    proc anova; class a;model x=a;
    means a/duncan;run;
    

    image-20200715103902339

    根据此做出来表格:

    image-20200715104517660

    F值为0.32,Pr>F概率大于0.05,接受原假设:均值相等

    image-20200715104323739

    都归属于A类,没有显著性差异,认为不同的处理方式对粒重并无明显影响。

    5.双因素方差分析

    5.1不考虑交互作用

    image-20200715110419416

    SAS代码:

    data ex;do a=1 to 4;do b=1 to 5;
    input x @@;output;end;end;
    cards;
    53 56 45 52 49 47 50 47 47 53 57 63 54 57 58 45 52
    42 41 48
    ;
    proc anova;class a b;model x=a b;
    means a/duncan;means b/duncan;run;
    
    image-20200715110558984 image-20200715111320460 image-20200715110916972 image-20200715111025910

    5.2考虑交互作用

    image-20200715112115832

    要是研究交互作用,每个交叉处至少有两个值。

    data ex;do a=1 to 4;do b=1 to 3;do i=1 to 2;
    input x @@;output;end;end;end;
    cards;
    58.2 52.6 56.2 41.2 65.3 60.8
    49.1 42.8 54.1 50.5 51.6 48.4
    60.1 58.3 70.9 73.2 39.2 40.7
    75.8 71.5 58.2 51 48.7 41.4
    ;
    proc anova;class a b;model x=a b a*b;
    means a/duncan;means b/duncan;run;
    
    image-20200715112400052 image-20200715114515316

    6.多组独立样本的非参数检验

    多组独立样本的H检验法(又称为Kruskal -Wallis单向秩次方差分析法),是检验多组独立样本是否来自同分布总体最常用、功效最强的非参数检验方法。

    例 用3种不同的药剂处理水稻种子,发芽后观测到苗高(单位:cm)的观测值如下,试作单向秩次方差分析。

    image-20200715143801902
    data ex;do a=1 to 3;
    do i=1 to 4;input x @@;
    output;end;end;
    cards;
    21 24 27 20 20 18 19 15 22 25 27 22
    ;
    proc npar1way wilcoxon;
    /*参数第一种方式检验*/
    class a;var x;run;
    

    7.独立性检验

    image-20200715144143257

    原假设H0:是否使用预防措施与患感冒情况相互独立。

    编写程序如下:

    data ex;do a=1 to 2;do b=1 to 3; /*两行三列*/
    input f @@;output;end;end; /*输入样本数*/
    cards;
    224 136 140 252 145 103
    ;
    proc freq;weight f;
    tables a*b/chisq; /*chisq表示检验*/
    run;
    

    image-20200715144301276

    第二部分Statistics for Table of a by b才是检验结果。其中主要看Chi-Square(卡方)这一行,其自由度为2,χ2(Chi-Square value)=7.5691,且Prob值为0.0227<0.05,故落在拒绝域,接受备择假设,即预防与感冒这两因素之间不是相互独立的,即措施对患感冒是有关系的。

    8.协方差分析

    如果在单因素、双因素或多因素试验中有无法控制的因素x影响试验的结果Y,且x可以测量、x与Y之间又有显著的线性回归时,常常利用线性回归来矫正Y的观测值、消去x的差异对Y的影响。

    例如,研究施肥对苹果树产量的影响,由于苹果树的长势不齐,必须消去长势对产量的影响。又如,研究饲料对动物增重的影响,由于动物的初重不同,必须消去初重对增重的影响。

    8.1单因素协方差分析

    image-20200715174111343

    SAS代码:

    data ex; do a=1 to 3;do i=1 to 8;
    input x y @ @;output ;end;end;
    cards;
    47 54 58 66 53 63 46 51 49 56 56 66 54 61 44 50 52 54 53 53 64 67
    58 62 59 62 61 63 63 64 66 69 44 52 48 58 46 54 50 61 59 70 57
    64 58 69 53 66
    ;
    proc glm;class a;model y=x a/solution;
    lsmeans a/stderr pdiff;run;
    

    image-20200715174445521

    image-20200715174512111

    x对应的Pr>F概率小于0.05,拒绝原假设H0:x对y没有影响,说明x差异显著,所以我们要把x差异性抹掉。

    image-20200715174737275

    施用三种肥料的产量矫正后有极显著的差异(有影响)。

    8.2双因素协方差分析

    8.2.1不考虑交互作用

    image-20200715175212450
    data ex;do a=1 to 3 ;do b=1 to 5 ;
    input x y @ @;output; end; end;
    cards;
    8 2.85 10 4.24 12 3.00 11 4.94 10 2.88
    10 3.14 12 4.50 7 2.75 12 5.84 10 4.06
    12 3.88 10 3.86 9 2.82 10 4.94 9 2.89
    ;
    proc glm;class a b ;model y=x a b/solution;
    lsmeans a b/stderr pdiff;run;
    
    image-20200715175244959

    x对应的Pr>F概率小于0.05,差异性显著,所以要抹除x的影响。
    a对应的Pr>F概率大于0.05,说明不同的小区对产量没有影响。

    image-20200715175611804

    各小区的产量矫正后没有显著的差异,各品种的产量矫正后有极显著的差异。

    8.2.2考虑交互作用

    image-20200715175724633
    data ex; do a=1 to 4; do b=1 to 2;
    do i=1 to 2;input x y@@;output;end;end;end;
    cards;
    14.6 97.8 12.1 94.2 19.5 113.2 18.8
    110.1 13.6 100.3 12.9 98.5 18.5 119.4
    18.2 114.7 12.8 99.2 10.7 89.618.2
    122.2 16.9 105.3 12.0 102.1 12.4 103.8
    16.4 117.2 17.2 117.9
    proc glm; class a b;model y=x a b
    a*b/solution;lsmeans a b/stderr pdiff;
    run;
    
    image-20200715175830047 image-20200715175844475

    A与B的交互作用矫正后不显著,促生长剂之间的差异极显著,试验批次间的差异不显著

    作业

    期货交易数据主要来源于某商品交易所,包括某水果期货上市以来的换手率、涨跌幅度、保证金、交易手续费、当日平仓手续费等,其它数据如灾害性天气状况等来源于网络资料。

    换手率是期货表现热度的晴雨表,一般来讲,换手率越高,表明该产品越受到消费者青睐。请你查阅相关文献,研究本数据表,通过建立数学模型或统计分析方法,回答下列问题。

    1. 研究换手率的变化规律。

    2. 研究哪些因素对换手率是有影响的,哪些是没有影响的。

    3. 保证金、手续费、当日平仓、是否有灾害天气、是否消费旺季这几个影响因素之间是否有关联?

    数据下载地址:

    https://pluto-1300780100.cos.ap-nanjing.myqcloud.com/download/%E7%AC%AC9%E6%AC%A1%E4%BD%9C%E4%B8%9A%E6%95%B0%E6%8D%AE.xlsx

    1.第一问

    研究数据的变化规律我们主要从数据的周期、数据的趋势、数据的随机性、以及数据内部的传递性四个方面来研究

    编写SAS代码:

    data a;
    input x@@;
    time=_n_;
    cards;
    1.9393939 
    1.5531915 
    0.4479495 
    0.1027190 
    0.1460055 
    0.0303030 
    0.0027624 
    0.0217984 
    0.0189189 
    0.1195652 
    0.0803109 
    0.0401003 
    0.0148883 
    0.1724138 
    0.0722101 
    0.4933862 
    0.3757030 
    0.6139410 
    0.2022090 
    0.5193165 
    0.1047904 
    0.4113009 
    0.2120098 
    0.6241173 
    0.4927114 
    0.5597057 
    0.5261997 
    0.4409524 
    0.9422921 
    0.4413395 
    0.6832524 
    0.3633678 
    0.3216830 
    0.3055872 
    0.3648144 
    0.3870395 
    0.2108352 
    0.1683833 
    0.2786482 
    0.1587838 
    0.1848568 
    0.3312333 
    0.5001322 
    0.3252688 
    0.4822900 
    0.3515249 
    0.4836197 
    0.3796296 
    0.2374334 
    0.2439367 
    0.1602456 
    0.2312500 
    0.8488216 
    0.8472093 
    1.0440485 
    0.9208815 
    0.9387877 
    1.1929144 
    1.7572786 
    0.9151355 
    1.2559558 
    1.1759934 
    1.7465747 
    2.4862373 
    2.4405618 
    3.4839917 
    5.7556963 
    3.3591598 
    3.3471258 
    6.5572674 
    3.8542786 
    4.4468939 
    4.4002278 
    4.6747778 
    4.2003163 
    5.2316854 
    6.1956928 
    9.2880570 
    5.2759323 
    5.6891960 
    3.5593666 
    1.9292312 
    2.6713994 
    1.8885801 
    1.8040694 
    1.7526615 
    2.0106814 
    1.6252591 
    1.8017329 
    1.4488495 
    1.2168779 
    2.0032830 
    1.1555587 
    1.0751166 
    2.2721227 
    1.6036624 
    2.0975010 
    1.9572098 
    1.6813667 
    1.5758161 
    1.9966546 
    2.4764227 
    2.8488007 
    2.6637306 
    2.8162721 
    2.6001077 
    1.5894797 
    2.1950105 
    1.6263468 
    1.8976734 
    1.6096398 
    1.5009201 
    1.5783214 
    1.3981174 
    1.1690259 
    0.9194704 
    1.0540232 
    1.1763860 
    1.5252878 
    1.1742093 
    3.8136751 
    2.0073488 
    2.7448852 
    1.7984086 
    1.9759923 
    1.5409623 
    2.3586512 
    1.4594724 
    1.3989078 
    1.2159621 
    1.4583811 
    1.5540499 
    1.4569306 
    1.7132759 
    1.8280245 
    2.4647509 
    2.1774181 
    2.0933134 
    1.4973353 
    1.2432843 
    1.5350945 
    1.3863774 
    1.5953973 
    1.8658197 
    2.7395673 
    1.8784120 
    1.7965255 
    2.8155407 
    2.3215706 
    1.8111513 
    1.6633678 
    1.5670568 
    1.9503250 
    1.6817802 
    1.6820488 
    2.3459841 
    1.7021874 
    1.6720504 
    1.5629485 
    1.1998658 
    1.1092371 
    1.5260981 
    1.3209728 
    1.2159580 
    1.2582135 
    1.0660533 
    2.2136745 
    1.0290641 
    1.1133371 
    2.0062529 
    1.1895146 
    2.0715051 
    1.7548775 
    1.0554558 
    1.1839372 
    1.3777651 
    1.0361367 
    2.0423229 
    2.0586479 
    2.3740129 
    1.6712147 
    1.7715363 
    2.3964418 
    1.3733103 
    1.3112867 
    1.3697364 
    1.1895383 
    2.5241314 
    1.2212908 
    1.6053514 
    0.9989995 
    1.2968232 
    1.3770413 
    0.9131243 
    1.4921420 
    0.9540247 
    1.0605178 
    0.7622555 
    0.8025549 
    1.0871273 
    0.8945853 
    0.7594745 
    1.3254880 
    0.5804381 
    0.4918341 
    0.6856156 
    0.7278238 
    0.3679483 
    0.7141156 
    0.6593457 
    0.8554738 
    0.9600813 
    0.5534354 
    0.6820879 
    0.5855344 
    0.3507366 
    0.3299955 
    0.4699115 
    0.2322538 
    0.2629292 
    0.1586035 
    0.4082599 
    0.4575238 
    0.2716628 
    0.1468593 
    0.6918954 
    0.3657791 
    0.4294517 
    0.2246681 
    0.4752675 
    0.2789720 
    0.7303103 
    8.6850394 
    1.1205674 
    0.3065134 
    0.3596491 
    0.2870370 
    0.0970874 
    0.0920245 
    0.1953125 
    0.2035398 
    0.3000000 
    ;
    proc gplot;
    plot x*time;
    symbol c=black i=join v=star;
    proc arima;
    identify var=x;
    run;
    

    得到时序图:

    image-20200715150428236

    从图中我们可以看出数据大致可以判断为是不具有周期性波动的,且数据波动性较大,故初步判断该数据不是平稳的。然而由于根据时序图的判断严谨性不高,于是根据自相关图进行进一步的判断。

    image-20200715150611312

    随着时间平移长度的增大,自相关系数的数值的变化并未呈周期性变化。从图片右半边的表示自相关系数的图也可以看出:自相关系数并不是是呈周期性波动。综合时序图的分析以及自相关图的分析,得到以下结论:该数据并不具有周期性且不平稳。

    由于原始数据不具有平稳性我们需要对原始数据进行差分运算,故对原始数据进行一阶差分运算并且需要对运算后得出的数据进行平稳性检验,检验结果如下。

    image-20200715155227846

    将数据一阶差分后按照月份做出来的时序图,从图中我们可以看出运算后数据大致可以判断为是在一条水平线上下波动,故初步判断该序列是平稳的。然而由于根据时序图的判断严谨性不高,于是根据自相关图进行进一步的判断。

    image-20200715155251970

    在时间平移长度较小时,自相关系数的数值较大,当时间平移长度扩大时,自相关系数的数值总体来说是在逐渐趋近于0,由此可以得出自相关系数具有拖尾性。从图片右半边的表示自相关系数的图也可以看出:自相关系数在0.0 这条线的左右波动。综合时序图的分析以及自相关图的分析,得到以下结论:该数据具有平稳性。由于通过一阶差分使得数据平稳,故该数据中具有线性趋势。

    已知该序列在进行差分运算后是平稳的,要选择选择适当模型拟合该序列的发展还需要证明该序列在差分运算后是非白噪声的。白噪声检
    验结果如下。

    image-20200715155341570

    延迟6 期、延迟12 期、延迟18 期、延迟24 期的p值分别为<.0001、<.0001、<.0001、0.0005,都远小于0.05,故拒绝原假设,数据之间存在相关性,该数据在差分运算后是非白噪声的,故该数据不具有随机波动。

    综合以上分析,得出以下结论:换手率的变化不具有周期性,具有线性趋势,数据内部具有相关性,不具有随机波动。

    2.第二问

    第二问要求对换手率有影响的因素,要研究的是变量和多个分类变量之间的关系,因此选择应用多组独立样本的H检验法进行研究。

    SAS代码:

    data ex;
    input x a b c d e@@;
    cards;
    1.9393939 	0.07	0.5	0	0	0
    1.5531915 	0.07	0.5	0	0	0
    0.4479495 	0.07	0.5	0	0	0
    0.1027190 	0.07	0.5	0	0	0
    0.1460055 	0.07	0.5	0	0	0
    0.0303030 	0.07	0.5	0	0	0
    0.0027624 	0.07	0.5	0	0	0
    0.0217984 	0.07	0.5	0	0	0
    0.0189189 	0.07	0.5	0	0	0
    0.1195652 	0.07	0.5	0	0	0
    0.0803109 	0.07	0.5	0	0	0
    0.0401003 	0.07	0.5	0	0	0
    0.0148883 	0.07	0.5	0	0	1
    0.1724138 	0.07	0.5	0	0	1
    0.0722101 	0.07	0.5	0	0	1
    0.4933862 	0.07	0.5	0	0	1
    0.3757030 	0.07	0.5	0	0	1
    0.6139410 	0.07	0.5	0	0	1
    0.2022090 	0.07	0.5	0	0	1
    0.5193165 	0.07	0.5	0	0	1
    0.1047904 	0.07	0.5	0	0	1
    0.4113009 	0.07	0.5	0	0	1
    0.2120098 	0.07	0.5	0	0	1
    0.6241173 	0.07	0.5	0	0	1
    0.4927114 	0.07	0.5	0	0	1
    0.5597057 	0.07	0.5	0	0	1
    0.5261997 	0.07	0.5	0	0	1
    0.4409524 	0.07	0.5	0	0	0
    0.9422921 	0.07	0.5	0	0	0
    0.4413395 	0.07	0.5	0	1	0
    0.6832524 	0.07	0.5	0	0	0
    0.3633678 	0.07	0.5	0	0	0
    0.3216830 	0.07	0.5	0	0	0
    0.3055872 	0.07	0.5	0	0	0
    0.3648144 	0.07	0.5	0	0	0
    0.3870395 	0.07	0.5	0	0	0
    0.2108352 	0.07	0.5	0	0	0
    0.1683833 	0.07	0.5	1	0	0
    0.2786482 	0.07	0.5	1	0	0
    0.1587838 	0.07	0.5	1	0	0
    0.1848568 	0.07	0.5	1	0	0
    0.3312333 	0.07	0.5	1	0	0
    0.5001322 	0.07	0.5	1	0	0
    0.3252688 	0.07	0.5	1	0	0
    0.4822900 	0.07	0.5	1	0	0
    0.3515249 	0.07	0.5	1	0	0
    0.4836197 	0.07	0.5	1	0	0
    0.3796296 	0.07	0.5	1	0	0
    0.2374334 	0.07	0.5	1	0	0
    0.2439367 	0.07	0.5	1	0	0
    0.1602456 	0.07	0.5	1	0	0
    0.2312500 	0.07	0.5	1	0	0
    0.8488216 	0.07	0.5	1	1	0
    0.8472093 	0.07	0.5	1	0	0
    1.0440485 	0.07	0.5	1	0	0
    0.9208815 	0.07	0.5	1	0	0
    0.9387877 	0.07	0.5	1	0	0
    1.1929144 	0.07	0.5	1	0	0
    1.7572786 	0.07	0.5	1	0	0
    0.9151355 	0.07	0.5	1	0	0
    1.2559558 	0.07	0.5	1	0	0
    1.1759934 	0.07	0.5	1	0	0
    1.7465747 	0.07	0.5	1	0	0
    2.4862373 	0.07	0.5	1	0	0
    2.4405618 	0.07	0.5	1	0	0
    3.4839917 	0.07	0.5	1	0	0
    5.7556963 	0.07	0.5	1	0	0
    3.3591598 	0.07	0.5	1	0	0
    3.3471258 	0.07	0.5	1	0	0
    6.5572674 	0.07	0.5	1	0	0
    3.8542786 	0.07	0.5	1	0	0
    4.4468939 	0.07	0.5	1	0	0
    4.4002278 	0.07	0.5	1	0	0
    4.6747778 	0.07	0.5	1	0	0
    4.2003163 	0.07	0.5	1	0	0
    5.2316854 	0.07	0.5	1	0	0
    6.1956928 	0.07	0.5	1	1	0
    9.2880570 	0.07	0.5	1	0	0
    5.2759323 	0.07	0.5	3	0	0
    5.6891960 	0.07	0.5	3	0	0
    3.5593666 	0.07	0.5	3	0	0
    1.9292312 	0.07	0.5	20	0	0
    2.6713994 	0.07	0.5	20	0	0
    1.8885801 	0.07	0.5	20	0	0
    1.8040694 	0.07	0.5	20	0	0
    1.7526615 	0.07	0.5	20	0	0
    2.0106814 	0.07	0.5	20	1	0
    1.6252591 	0.07	0.5	20	0	0
    1.8017329 	0.07	0.5	20	0	0
    1.4488495 	0.07	0.5	20	0	0
    1.2168779 	0.07	0.5	20	0	0
    2.0032830 	0.07	0.5	20	0	0
    1.1555587 	0.07	0.5	20	0	0
    1.0751166 	0.07	0.5	20	0	0
    2.2721227 	0.07	0.5	20	0	0
    1.6036624 	0.07	0.5	20	0	0
    2.0975010 	0.07	0.5	20	0	0
    1.9572098 	0.07	0.5	20	1	0
    1.6813667 	0.09	10	20	0	0
    1.5758161 	0.09	10	20	0	0
    1.9966546 	0.09	10	20	0	0
    2.4764227 	0.09	10	20	0	0
    2.8488007 	0.09	20	20	0	0
    2.6637306 	0.09	20	20	0	0
    2.8162721 	0.09	20	20	0	0
    2.6001077 	0.09	20	20	0	0
    1.5894797 	0.09	20	20	0	0
    2.1950105 	0.11	20	20	1	0
    1.6263468 	0.11	20	20	0	0
    1.8976734 	0.11	20	20	0	0
    1.6096398 	0.11	20	20	0	0
    1.5009201 	0.11	20	20	0	0
    1.5783214 	0.11	20	20	0	0
    1.3981174 	0.11	20	20	0	0
    1.1690259 	0.11	20	20	0	0
    0.9194704 	0.11	20	20	0	0
    1.0540232 	0.11	20	20	0	0
    1.1763860 	0.11	20	20	0	0
    1.5252878 	0.11	20	20	0	0
    1.1742093 	0.11	20	20	0	0
    3.8136751 	0.11	20	20	0	0
    2.0073488 	0.11	20	20	0	0
    2.7448852 	0.11	20	20	0	0
    1.7984086 	0.11	20	20	0	0
    1.9759923 	0.11	20	20	0	0
    1.5409623 	0.11	20	20	0	0
    2.3586512 	0.11	20	20	0	0
    1.4594724 	0.11	20	20	0	0
    1.3989078 	0.11	20	20	0	0
    1.2159621 	0.11	20	20	0	0
    1.4583811 	0.11	20	20	0	0
    1.5540499 	0.11	20	20	0	0
    1.4569306 	0.11	20	20	0	0
    1.7132759 	0.11	20	20	0	0
    1.8280245 	0.11	20	20	0	0
    2.4647509 	0.11	20	20	0	0
    2.1774181 	0.11	20	20	0	0
    2.0933134 	0.11	20	20	0	0
    1.4973353 	0.11	20	20	0	0
    1.2432843 	0.11	20	20	0	0
    1.5350945 	0.11	20	20	0	0
    1.3863774 	0.11	20	20	0	0
    1.5953973 	0.11	20	20	0	0
    1.8658197 	0.11	20	20	0	0
    2.7395673 	0.11	20	20	0	0
    1.8784120 	0.11	20	20	0	0
    1.7965255 	0.11	20	20	0	0
    2.8155407 	0.11	20	20	0	0
    2.3215706 	0.11	20	20	0	0
    1.8111513 	0.11	20	20	0	0
    1.6633678 	0.11	20	20	0	0
    1.5670568 	0.11	20	20	0	0
    1.9503250 	0.11	20	20	0	0
    1.6817802 	0.11	20	20	0	0
    1.6820488 	0.11	20	20	0	0
    2.3459841 	0.11	20	20	0	0
    1.7021874 	0.11	20	20	0	0
    1.6720504 	0.11	20	20	0	0
    1.5629485 	0.11	20	20	0	0
    1.1998658 	0.11	20	20	0	0
    1.1092371 	0.11	20	20	0	0
    1.5260981 	0.11	20	20	0	0
    1.3209728 	0.11	20	20	0	0
    1.2159580 	0.11	20	20	0	0
    1.2582135 	0.11	20	20	0	0
    1.0660533 	0.11	20	20	0	0
    2.2136745 	0.11	20	20	0	0
    1.0290641 	0.11	20	20	0	0
    1.1133371 	0.11	20	20	0	0
    2.0062529 	0.11	20	20	0	0
    1.1895146 	0.11	20	20	0	0
    2.0715051 	0.11	20	20	0	0
    1.7548775 	0.11	20	20	0	0
    1.0554558 	0.11	20	20	0	1
    1.1839372 	0.11	20	20	0	1
    1.3777651 	0.11	20	20	0	1
    1.0361367 	0.11	20	20	0	1
    2.0423229 	0.11	20	20	0	1
    2.0586479 	0.11	20	20	0	1
    2.3740129 	0.11	20	20	0	1
    1.6712147 	0.11	20	20	0	1
    1.7715363 	0.11	20	20	0	1
    2.3964418 	0.11	20	20	0	1
    1.3733103 	0.11	20	20	0	1
    1.3112867 	0.11	20	20	0	1
    1.3697364 	0.11	20	20	0	1
    1.1895383 	0.11	20	20	0	1
    2.5241314 	0.11	20	20	0	1
    1.2212908 	0.11	20	20	0	1
    1.6053514 	0.11	20	20	0	1
    0.9989995 	0.11	20	20	0	1
    1.2968232 	0.11	20	20	0	1
    1.3770413 	0.11	20	20	0	1
    0.9131243 	0.11	20	20	0	1
    1.4921420 	0.11	20	20	0	1
    0.9540247 	0.11	20	20	0	1
    1.0605178 	0.11	20	20	0	1
    0.7622555 	0.11	20	20	0	1
    0.8025549 	0.11	20	20	0	1
    1.0871273 	0.11	20	20	0	1
    0.8945853 	0.11	20	20	0	1
    0.7594745 	0.11	20	20	0	1
    1.3254880 	0.15	20	20	0	1
    0.5804381 	0.15	20	20	0	1
    0.4918341 	0.15	20	20	0	1
    0.6856156 	0.15	20	20	0	1
    0.7278238 	0.15	20	20	0	1
    0.3679483 	0.15	20	20	0	1
    0.7141156 	0.15	20	20	0	1
    0.6593457 	0.15	20	20	0	1
    0.8554738 	0.15	20	20	0	1
    0.9600813 	0.15	20	20	0	1
    0.5534354 	0.15	20	20	0	1
    0.6820879 	0.2	20	20	0	0
    0.5855344 	0.2	20	20	0	0
    0.3507366 	0.2	20	20	0	0
    0.3299955 	0.2	20	20	0	0
    0.4699115 	0.2	20	20	0	0
    0.2322538 	0.2	20	20	0	0
    0.2629292 	0.2	20	20	0	0
    0.1586035 	0.2	20	20	0	0
    0.4082599 	0.2	20	20	0	0
    0.4575238 	0.2	20	20	0	0
    0.2716628 	0.2	20	20	0	0
    0.1468593 	0.2	20	20	0	0
    0.6918954 	0.2	20	20	0	0
    0.3657791 	0.2	20	20	0	0
    0.4294517 	0.2	20	20	0	0
    0.2246681 	0.2	20	20	0	0
    0.4752675 	0.2	20	20	0	0
    0.2789720 	0.2	20	20	0	0
    0.7303103 	0.2	20	20	0	0
    8.6850394 	0.2	20	20	0	0
    1.1205674 	0.2	20	20	0	0
    0.3065134 	0.2	20	20	0	0
    0.3596491 	0.2	20	20	0	0
    0.2870370 	0.2	20	20	0	0
    0.0970874 	0.2	20	20	0	0
    0.0920245 	0.2	20	20	0	0
    0.1953125 	0.2	20	20	0	0
    0.2035398 	0.2	20	20	0	0
    0.3000000 	0.2	20	20	0	0
    ;
    proc npar1way wilcoxon;class a;var x;
    proc npar1way wilcoxon;class b;var x;
    proc npar1way wilcoxon;class c;var x;
    proc npar1way wilcoxon;class d;var x;
    proc npar1way wilcoxon;class e;var x;
    run;
    

    最后得到如下结果:(按abcde排序)

    image-20200715153010791image-20200715153022633image-20200715153030832image-20200715153042717image-20200715153048345

    可以做成如下表格:

    保证金因素手续费因素当日平仓因素是否有灾害天气因素是否消费旺季因素
    Chi-Square65.68847.943729.39562.16236.6572
    DF42211
    Pr > Chi-Square<.00010.0188<.00010.14140.0099

    可以看出保证金因素、手续费因素、当日平仓因素、是否消费旺季因素这四个因素的P值均小于0.05,落在拒绝域中,拒绝原假设,认为样本分布与换手率的样本分布不同,因此认为以上四个因素对换手率没有显著的影响;而是否有灾害天气因素的P值为0.1414大于0.05,接受原假设,认为认为样本分布与换手率的样本分布相同,因此认为是否有灾害天气因素对换手率有显著的影响。

    3.第三问

    第三问要求的是多个分类变量之间的关系,因此选用独立性检验来研究变量之间的关系。

    SAS代码:

    data ex;
    input x a b c d e@@;
    cards;
    /*与上面数据相同*/
    ;
    proc freq;
    tables a*b/chisq;
    tables a*c/chisq;
    tables a*d/chisq;
    tables a*e/chisq;
    tables b*c/chisq;
    tables b*d/chisq;
    tables b*e/chisq;
    tables c*d/chisq;
    tables c*e/chisq;
    tables d*e/chisq;
    run;
    

    image-20200715154414939

    得到很多表,综合下来我们做出一张表:

    image-20200715154840320

    保证金和手续费之间自由度为8,χ2 (Chi-Square value)=345.7143,且Prob值<0.0001<0.05,故落在拒绝域,接受备择假设,即保证金和手续费这两因素之间不是相互独立的,即保证金对手续费是有关系的,同理可知,保证金和当日平仓,保证金和是否消费旺季,手续费和当日平仓,手续费和是否消费旺季,当日平仓和是否消费旺季这些因素的Prob值均小于0.05,故落在拒绝域,接受备择假设,所以认为这些因素之间不是相互独立的,即保证金和对当日平仓,保证金对是否消费旺季,手续费对当日平仓,手续费对是否消费旺季都是有关系的,相反可以知道,保证金和是否有灾害天气,手续费和是否有灾害天气,当日平仓和是否有灾害天气,是否有灾害天气和是否消费旺季这些因素的Prob值均大于0.05,故落在接受域,接受原假设,所以认为这些因素之间是相互独立的,即保证金对是否有灾害天气,手续费对是否有灾害天气,当日平仓对是否有灾害天气,是否有灾害天气对是否消费旺季是没有影响的。

    结语

    溃疡好了,👴没理由再偷懒了,555555555

    展开全文
    JYplute 2020-07-15 19:37:53
  • 206KB weixin_44492968 2019-01-11 16:41:51
  • 465KB weixin_38621630 2020-02-10 07:47:43
  • 317KB u013883025 2021-07-15 22:02:20
  • 因素分析模型解决方法Finally, all data were cleansed and ready to analyze. Andy started overenthusiastically to visualize the data to get a first impression of the data. He had many dimensions and ...

    多因素分析模型解决方法

    Finally, all data were cleansed and ready to analyze. Andy started overenthusiastically to visualize the data to get a first impression of the data. He had many dimensions and variables such that he spent several days visually analyzing them and determining the best methods to apply. At the end of that week, the team manager told him that he would need a draft presentation about the outcomes next Tuesday because the team manager had to present it in one week to a steering committee.

    最后,所有数据都已清洗并准备分析。 Andy热情洋溢地开始可视化数据以获得对数据的第一印象。 他具有许多维度和变量,因此他花了几天的时间对它们进行可视化分析并确定最佳的应用方法。 在该周结束时,团队经理告诉他,下周二他将需要一份关于结果的演示文稿草稿,因为团队经理必须在一周内将其提交给指导委员会。

    Andy told him that he has no results yet. But there was no space for negotiations. On Tuesday, conclusions had to be delivered and integrated into a PowerPoint presentation.

    安迪告诉他,他还没有结果。 但是没有谈判的空间。 在星期二,必须提交结论并将其集成到PowerPoint演示文稿中。

    Hastily, Andy produced some regression analyses and integrated them into the presentation.

    仓促地,安迪进行了一些回归分析并将其整合到演示中。

    After the steering committee meeting, the team manager told him that the project would not be carried on.

    在指导委员会会议之后,团队经理告诉他该项目将不会继续进行。

    Andy was very frustrated. That was his second project, and the second time it ended with the same decision. He has chosen this position because of the potential for doing great data science work on a large amount of data available.

    安迪非常沮丧。 那是他的第二个项目,第二次以相同的决定结束。 他之所以选择此职位,是因为他有潜力对大量可用数据进行出色的数据科学工作。

    This story is a real case, and it is not an atypical situation in corporations. I assume that some of you have already experienced a similar situation, too.

    这个故事是真实的案例,在公司中不是典型情况。 我想你们当中有些人也已经经历过类似的情况。

    The reason that this happens is not your skills.

    发生这种情况的原因不是您的技能。

    When thrown into a data science project in a corporate environment, the situation is different from the previous learning context.

    在公司环境中投入数据科学项目时,情况与以前的学习环境不同。

    My experience is that most data scientists struggle to manage the project, given the many corporate constraints and expectations.

    我的经验是,鉴于许多公司的限制和期望,大多数数据科学家都在努力管理项目。

    More than a few data scientists are disappointed and frustrated after the first projects and looking for another position.

    在进行第一个项目并寻找另一个职位后,许多数据科学家感到失望和沮丧。

    Why?

    为什么?

    They are trained in handling data, technical methods, and programming. Nobody ever taught them in project, stakeholder, or corporate data management or educated them about corporate business KPIs.

    他们接受过处理数据,技术方法和编程方面的培训。 没有人曾在项目,利益相关者或公司数据管理方面教过他们,也没有教过他们有关公司业务KPI的知识。

    It is the lack of experience with unspoken corporate practices.

    这是缺乏对潜行企业实践的经验。

    Unfortunately, there are more potential pitfalls in that area than with all your technical skills.

    不幸的是,与您所有的技术技能相比,该领域存在更多的潜在陷阱。

    If you know the determining factors, you can plan your data science tasks accordingly, pursue satisfying projects, and steer your work.

    如果您知道决定因素,则可以相应地计划数据科学任务,追求令人满意的项目并指导工作。

    In the following, I give you the eight most important drivers for the model approach selection in the corporate environment and how to mitigate them.

    在下文中,我为您提供了在企业环境中选择模型方法以及如何减轻它们的八个最重要的驱动因素。

    1.时间,时间表和截止日期 (1. Time, timelines, and deadlines)

    What you need to know

    你需要知道的

    Corporations have defined project processes. Stage-gate or steering committee meetings are part of that where outcomes must be presented. Presentations have to be submitted a few days in advance and must contain certain expected information. Also, corporates are always under pressure to deliver financial results. That leads to consistently tight deadlines. These processes are part of the corporate culture, unspoken, and supposed that the employee knows them.

    公司已经定义了项目流程。 阶段性会议或指导委员会会议是必须提出成果的会议的一部分。 演示文稿必须提前几天提交,并且必须包含某些预期的信息。 而且,企业总是承受着交付财务成果的压力。 这导致持续的时间紧迫。 这些流程是企业文化的一部分,是不言而喻的,并且假定员工知道它们。

    How to address it?

    如何解决?

    Ask, ask, ask. Ask about the milestones, e.g., the meeting dates where project decisions will be made.

    问,问,问。 询问里程碑,例如制定项目决策的会议日期。

    Set up a time budget. Start at the milestone’s date and calculate backward a project schedule.

    设置时间预算。 从里程碑的日期开始,然后向后计算项目进度表。

    Include not only your tasks but also the surrounding actions, like coordination meetings, presentations, and deadlines for submitting the presentations. Do not forget that there is a review round for each presentation, and you have to consider adding a few days in advance of submission. Include time margins for unexpected tasks and troubleshooting.

    不仅包括您的任务,还包括周围的动作,例如协调会议,演示文稿以及提交演示文稿的截止日期。 别忘了每个演示文稿都有一个审核回合,您必须考虑在提交前几天添加。 包括用于意外任务和故障排除的时间余量。

    Only then, choose the approaches for the ability to perform it within the determined schedule. Choose methods that can be run quickly and where you are familiar. After having a few successful results, and hopefully, still time, start experimenting with more complex and new methods.

    只有这样,才能在确定的时间表内选择执行该功能的方法。 选择可以在您熟悉的地方快速运行的方法。 在取得了一些成功的结果之后,希望还有时间,可以开始尝试使用更复杂和新的方法。

    Example

    Human Resources (HR) urgently needed the patterns of HR management’s key success factors towards the business departments and people. Setting up the schedule based on the deadline, we decided only to perform simple linear regression without considering any interdependencies of such key success factors, e.g., the level of education and the attended training pieces. We focused on fitting accurately simpler models and having single contribution factors with high reliability identified.

    人力资源部(HR)迫切需要人力资源管理模式对业务部门和人员的关键成功因素。 根据截止日期制定时间表,我们决定只进行简单的线性回归,而没有考虑这些关键成功因素之间的相互依赖性,例如教育水平和参加的培训项目。 我们专注于精确拟合更简单的模型,并确定具有高可靠性的单一贡献因子。

    2.模型和结果所需的准确性 (2. Accuracy needed of the models and the results)

    What you need to know

    你需要知道的

    The available and ready to use data determine the accuracy of a model. So, the level of detail of a model and the granularity of the data must match. The same is true for the expectations of the granularity of the outcome. The method must match expectations. Any mismatch will give unreliable results.

    可用和准备使用的数据确定模型的准确性。 因此,模型的详细程度和数据的粒度必须匹配。 对于结果粒度的期望也是如此。 该方法必须符合期望。 任何不匹配都会导致不可靠的结果。

    How to address it?

    如何解决?

    Select the model according to the granularity of the available data. Do not waste your time to fit a very detailed and accurate model when there is no proper data. Aggregating data and using a less granular model gives more reliable results when not having good quality data.

    根据可用数据的粒度选择模型。 如果没有适当的数据,请不要浪费时间来拟合非常详细和准确的模型。 当没有高质量的数据时,聚合数据并使用粒度较小的模型可以提供更可靠的结果。

    When the level of accuracy needed for decision making does not match the level that can be achieved by the data, you have to escalate it as early as possible. Do not try to make something up. Only transparent communication helps, prevent surprises, and manages expectations. Otherwise, you will be blamed.

    当决策所需的准确度与数据所能达到的准确度不匹配时,您必须尽早升级。 不要试图弥补。 只有透明的沟通才能帮助,防止意外并管理期望。 否则,您将受到责备。

    Example

    When we analyzed the influencing patterns for nursing homes’ profitability, the granular data had been too inhomogeneous, and the results made no economic sense. So, we aggregated the data and applied simpler models. Based on the results, the authority could already make essential decisions and put guidelines in place for future data management and collection.

    当我们分析养老院盈利能力的影响模式时,粒度数据太不均匀,结果没有经济意义。 因此,我们汇总了数据并应用了更简单的模型。 根据结果​​,主管部门可能已经做出了重要决定,并为将来的数据管理和收集制定了指导方针。

    3.方法的相关性 (3. The relevance of the methods)

    What you need to know

    你需要知道的

    The right problem must be solved with a suitable method. The question to be answered must be clear. It should not permit any ambiguity. Also, the form of the outcomes must be comparable with other internal and external analyses. Both point the direction of the relevant methodology that should be used.

    正确的问题必须用适当的方法解决。 必须回答的问题必须清楚。 它不应该有任何歧义。 而且,结果的形式必须与其他内部和外部分析具有可比性。 两者都指出了应使用的相关方法的方向。

    How to address it?

    如何解决?

    Make sure that you understand the question that has to be answered. Please do not assume it! Ask! It does not help when you have a solution with the most accurate method but to the wrong question.

    确保您了解必须回答的问题。 请不要假设! 问! 如果您有使用最准确方法的解决方案,但是对于错误的问题,则无济于事。

    Based on that, you can determine if it falls into the descriptive, predictive, or prescriptive field. If the most influential factors are looked for, choose descriptive methods. When the question is to forecast, choose a predictive approach, and only when optimized decision-making under the various effects is the aim, choose prescriptive models. Do not try to be creative. My experience is that it goes in most cases wrong.

    基于此,您可以确定它是否属于描述性,预测性或规范性字段。 如果寻找最有影响力的因素,请选择描述性方法。 当要预测问题时,请选择一种预测方法,只有当在各种影响下优化决策为目标时,才选择规定性模型。 不要尝试发挥创造力。 我的经验是,在大多数情况下,这是错误的。

    Example

    Three years ago, my former team opposed heavily against me and had pushed to implement a new trendy time series method for asset return forecasts. Finally, they just executed it — oh yeah, I was angry, but we could not move back because of the deadline. For three years, they struggled to get adequate results without making a lot of adjustment efforts. Recently, one of my former team members told me that they finally moved back to the old model because the new model had included several features not relevant for the outcome but added to much noise.

    三年前,我的前团队强烈反对我,并推动实施一种新的趋势时间序列方法来进行资产收益预测。 最后,他们只是执行了它-哦,是的,我很生气,但是由于截止日期,我们不能退缩。 三年来,他们一直在不进行大量调整的情况下努力获得足够的结果。 最近,我的一位前团队成员告诉我,他们终于回到了旧模型,因为新模型具有与结果无关的几个功能,但增加了很多噪音。

    4.数据准确性 (4. Accuracy of data)

    What you need to know

    你需要知道的

    The accuracy of the data restricts the pool of possible methods. Very accurate methods do not bring any value when used with less accurate data. The error term will be high. Again, the accuracy of the data and the accuracy of methods must match. Bad quality affects the results — garbage in, garbage out.

    数据的准确性限制了可能方法的集合。 当使用不太准确的数据时,非常准确的方法不会带来任何价值。 错误项将很高。 同样,数据的准确性和方法的准确性必须匹配。 不良的质量会影响结果-垃圾进场,垃圾出场。

    How to address it?

    如何解决?

    Understand the data as well as the requirements of the models. Do not just apply methods for try and error reasons. Do not just replicate methods because it has given excellent results in other, similar cases. You need to tailor them to the requirements of the data accuracy.

    了解数据以及模型的要求。 不要仅出于尝试和错误原因而应用方法。 不要仅仅复制方法,因为它在其他类似情况下也能提供出色的结果。 您需要根据数据准确性的要求定制它们。

    Example

    In optimizing the operating room capacities of two hospitals, we had to apply two different approaches. In one hospital, granular data for every time point of action, e.g., beginning of anesthesia, entering the operating room, beginning of the surgery, and so on, were available. The data was of good quality because of real-time electronic recording.

    为了优化两家医院的手术室容量,我们不得不采用两种不同的方法。 在一家医院中,可以获得每个动作时间点的详细数据,例如麻醉开始,进入手术室,手术开始等。 由于实时电子记录,因此数据质量很高。

    In the other hospital, the data was recorded manually and sometimes with hours of delays, and thus, the data was very imprecise. E.g., the data has shown eight surgeries in six operating rooms in parallel.

    在另一家医院中,数据是手动记录的,有时会有数小时的延迟,因此,数据非常不准确。 例如,数据显示在六个手术室中并行进行了八次手术。

    In the first case, we could fit the granular time series and agent-based models and consider the data’s seasonality. In contrast, in the second case, we had to rebuild the models and work with regression analysis and smoothing out inconsistencies before using them as an input for a less granular agent-based model.

    在第一种情况下,我们可以拟合粒度时间序列和基于代理的模型,并考虑数据的季节性。 相反,在第二种情况下,我们不得不重建模型并进行回归分析并消除不一致性,然后才将它们用作基于粒度较小的基于代理的模型的输入。

    5.数据可用性和使数据可立即使用的成本 (5. Data availability and cost to make data ready to use)

    What you need to know

    你需要知道的

    How often I have heard ‘we would have the perfect model when we could have this and this data, but unfortunately, we cannot access them in due time.’ A fact is that today, corporates are only able to use between 12% and about 30% of their data. In the discussions I have, companies state mostly, that they are using around 20% of their data. The cost to access them is, in most cases, too high, and no equivalent business case is available. If no business case covers the cost of making the data available, you will not get the data in due time.

    我经常听到“我们拥有完善的模型,而我们可以拥有这些数据,但是不幸的是,我们无法在适当的时候访问它们”。 一个事实是,如今,企业只能使用其12%30%的数据。 在我进行的讨论中,公司大多声明他们正在使用大约20%的数据。 在大多数情况下,访问它们的成本太高,并且没有等效的业务案例可用。 如果没有任何商业案例可以负担使数据可用的成本,则您将无法在适当的时候获得数据。

    How to address it?

    如何解决?

    Before having all your thoughts around the fancy models, you could apply, clarify, what data is available in due time, and the cost of getting them. Just because ‘the data is available’ in a company, it does not mean that it is available in a reasonable time frame and at a reasonable cost.

    在对奇特的模型有所有想法之前,您可以应用,澄清,在适当的时候可用的数据以及获取它们的成本。 仅仅因为“数据可以在公司中使用”,并不意味着可以在合理的时间范围内以合理的成本获得数据。

    Prioritize the data based on the other seven drivers given in this article, and make in each case a cost-benefit analysis: what is the additional benefit from the business perspective when having the data compared to what is the cost of getting them. Never ask, ‘can you give me all data?’. It shows that you have no understanding of the corporate’s business processes, and you will be de-prioritized when you need support, e.g., from IT.

    根据本文中给出的其他七个驱动因素对数据进行优先级排序,并分别进行成本效益分析:从业务角度来看,获取数据的额外好处是什么?与获取数据的成本相比,这是什么? 永远不要问,“您能给我所有数据吗?”。 它表明您不了解公司的业务流程,并且在需要支持时(例如,从IT部门获得支持),您将失去优先权。

    Example

    We had been unexpectedly faced with storage format issues in the pattern recognition work on a global bank’s intra-day liquidity data. The data of one of the required data sets of transactions from the prior year were archived on magnetic tapes. Thus, it would have taken several months until the data had been available due to release cycles and transformation into accessible formats. We had to assess alternative data and adjust the models.

    在一家全球银行的日内流动性数据的模式识别工作中,我们曾出乎意料地面临存储格式问题。 上一年所需的交易数据集之一的数据已存储在磁带上。 因此,由于发布周期和转换为可访问的格式,可能要花几个月的时间才能获得数据。 我们必须评估替代数据并调整模型。

    6.数据隐私和机密性 (6. Data privacy and confidentiality)

    What you need to know

    你需要知道的

    Customer data are often confidential. Data privacy is regulated by laws, e.g., the GDPR in the EU or the CCPA in the State of California. Financial institutions have their own regulations to protect so-called CID data — client identifying data. Access to such data have only authorized people, and data scientists are rarely amongst them. The data can only be used in anonymized, encrypted, or aggregated forms and after approval from the data owners, security officer, and legal counsel.

    客户数据通常是机密的。 数据隐私受法律规范,例如欧盟的GDPR或加利福尼亚州的CCPA。 金融机构有自己的法规来保护所谓的CID数据-客户识别数据。 只有经过授权的人员才能访问此类数据,而数据科学家很少在其中。 数据只能以匿名,加密或聚合的形式使用,并且必须经过数据所有者,安全员和法律顾问的批准。

    How to address it?

    如何解决?

    Before you start with the project, clarify if any personal data that fall under these restrictions are involved in your data science project. If yes, address it as early as possible, on one side with the IT, because they have eventually already encryption tools to deal with that, on the other side with the legal counsel. Only after having all approvals, and appropriate encryption, work with the data. I have seen many projects that could not be performed not because of the data privacy acts but because it was addressed to late and there was not enough time to get the approvals and encrypt the data in due time.

    在开始该项目之前,请弄清楚数据科学项目中是否涉及任何受这些限制的个人数据。 如果是,请尽早在IT部门解决此问题,因为他们最终已经拥有加密工具来处理该问题,而在另一方面与法律顾问联系。 仅在获得所有批准和适当的加密之后,才能使用数据。 我已经看到许多无法执行的项目不是因为数据隐私行为,而是因为它已经解决了,而且没有足够的时间来获得批准并在适当的时候对数据进行加密。

    Example

    In a project where credit card transaction data had to be used for third party service analytics, the lawyers needed seven months to clarify and approve the data use. The clarification contained not only the legal aspects but also the way of encryption, the aggregation level that should be used, and technical requirements like access rights and containerization of software.

    在一个必须将信用卡交易数据用于第三方服务分析的项目中,律师需要七个月的时间来澄清和批准数据使用。 澄清不仅包含法律方面,还包含加密方式,应使用的聚合级别以及诸如访问权限和软件容器化之类的技术要求。

    7.资源,基础架构和工具可用性 (7. Resources, infrastructure, and tools availability)

    What you need to know

    你需要知道的

    Projects in a corporate environment have many different departments involved: IT, the business, an innovation team, or an internal consulting group. All are involved in several projects in parallel, and their time is limited.

    公司环境中的项目涉及许多不同部门:IT,业务,创新团队或内部咨询小组。 所有这些都同时参与多个项目,并且时间有限。

    You need storage and computational power. Corporate rules about software installation are in place, and corresponding approvals are required. If a tool costs and needs a license, a corporate approval process exists. As a data scientist, you do not only need Python and Jupyter Notebook but most probably other tools like Tableau or Alteryx. Some companies require containers like Docker. And some tools are not permitted per corporate policy.

    您需要存储和计算能力。 有关软件安装的公司规则已到位,并且需要相应的批准。 如果工具成本高昂且需要许可证,则存在公司批准流程。 作为数据科学家,您不仅需要Python和Jupyter Notebook,而且还可能需要其他工具,例如Tableau或Alteryx。 一些公司需要像Docker这样的容器。 并且某些公司政策不允许使用某些工具。

    How to address it?

    如何解决?

    Clarify the tools and infrastructure before you start with the actual project. Estimate the storage and computational power needed, and ensure that it will be available. Clarify the corporate’s policy about data science software, and what tools are available. Inform the people from the other departments early about the upcoming support needed to plan some dedicated time. When working in an already existing data science team, you can clarify this first with your line manager. But even in an established data science team, do not assume that everything you will need for a project is in place.

    在开始实际项目之前,请先弄清工具和基础结构。 估计所需的存储和计算能力,并确保将可用。 阐明公司有关数据科学软件的政策以及可用的工具。 尽早通知其他部门的人们有关计划一些专用时间所需的即将到来的支持。 在已经存在的数据科学团队中工作时,您可以先与您的直属经理进行澄清。 但是,即使在已建立的数据科学团队中,也不要假设项目所需的一切都已经就绪。

    Example

    While working on a large amount of transactional data in a bank, we needed more computational and storage power. We worked in a private cloud environment, and typically, it takes only a few minutes to a few hours until the capacity is added. However, because we worked with client identifying data, in a so-called red zone environment, a virtual zone with very restrictive security, the infrastructure needs to be ‘red zone’ certified by the security officer. And this has then taken two weeks.

    在银行中处理大量交易数据时,我们需要更多的计算和存储能力。 我们在私有云环境中工作,通常只有几分钟到几小时才能添加容量。 但是,由于我们与客户识别数据一起使用,因此在所谓的红色区域环境中,即具有非常严格的安全性的虚拟区域,因此基础架构需要经过安全人员的“红色区域”认证。 然后这花了两个星期。

    8.公司的产品和项目管理关键绩效指标 (8. Product and project management KPIs of the company)

    What you need to know

    你需要知道的

    Corporates measure the product and project management with KPIs. There are quantitative measures like a net present value for short-term projects or a break-even point for products. And there are qualitative benefits like a shortened time to market, the learning of a project that can be leveraged to other projects, etc. Decisions and approvals of projects are based on such metrics.

    企业使用KPI衡量产品和项目管理。 有一些量化指标,例如短期项目的净现值或产品的收支平衡点。 并且具有质量上的好处,例如缩短上市时间,学习可以被其他项目利用的项目等。项目的决策和批准均基于此类指标。

    How to address it?

    如何解决?

    It does no matter how great the results of your data science work are; it should always be translated into the company’s KPIs. So, clarify with your line manager what are the steering measures of the company. Translate your outcomes into these metrics and communicate what the benefits for the company are. My experience is that the decision-makers stop fewer projects, more are implemented into the company’s processes, and finally, it builds a lot of trust in the data science team’s work.

    无论您的数据科学工作成果多么出色,它都没有关系。 应始终将其转换为公司的KPI。 因此,请与您的直线经理一起说明公司的指导措施是什么。 将您的结果转化为这些指标,并传达给公司带来什么好处。 我的经验是,决策者停止了较少的项目,在公司的流程中实施了更多的项目,最后,它对数据科学团队的工作赢得了很大的信任。

    Example

    One department of a life sciences company tried for months to get internal funding for their intended data science projects, even thought, data, and data science are pillars in the company’s strategy. They finally ask me to support them. We found out that the finance department has investment templates for projects, including the company’s metrics. So, we asked them for that template and assembled all the data science blueprints into such temples. After the next presentation round, they got 60% of all their projects approved. The trigger was that the executive committee could now compare it with the company’s KPIs and other projects’ performance.

    一家生命科学公司的一个部门几个月来一直在努力为其预期的数据科学项目获得内部资金,甚至思想,数据和数据科学也是公司战略的Struts。 他们终于要我支持他们。 我们发现财务部门具有用于项目的投资模板,包括公司的指标。 因此,我们要求他们提供该模板,并将所有数据科学蓝图组装到这样的模板中。 在下一轮演示之后,他们获得了所有项目的60%的批准。 触发因素是执行委员会现在可以将其与公司的KPI和其他项目的绩效进行比较。

    连接点 (Connecting the Dots)

    Many data scientists are not aware that working in a corporate environment involves up to 80% of other tasks than setting up models and analyze data. And you are eventually, a bit frustrated when you read all my comments.

    许多数据科学家并不了解在企业环境中进行工作除了建立模型和分析数据外还涉及多达80%的其他任务。 当您阅读我的所有评论时,最终您会感到沮丧。

    But knowing the above factors and addressing them early enough, and pro-actively puts you back into the driver seat and avoids bad surprises. The goal is to gain as much freedom as possible for our tasks. It increases project success, and you can keep free time for doing experiments with more complex and new approaches.

    但是了解上述因素并及早解决它们,并主动将您带回驾驶员座位,并避免出现意外情况。 目标是为我们的任务获得尽可能多的自由。 它可以提高项目的成功率,并且您可以保留空闲时间来使用更复杂和新的方法进行实验。

    Data scientists are not trained in managing such factors and often do not expecting them. Managing them properly is more important than all your detailed technical knowledge.

    数据科学家没有接受过管理此类因素的培训,并且往往不期望它们。 正确管理它们比您所有详细的技术知识更重要。

    All my tips and tricks to address these determining factors are neither rocket science nor a secret. But it is vital to raise your awareness of them. I hopefully can enable you to have more control and more fun with your projects.

    我针对这些决定性因素的所有技巧都不是火箭科学也不是秘密。 但是,提高对它们的认识至关重要。 我希望可以使您对项目有更多的控制权和更多的乐趣。

    翻译自: https://towardsdatascience.com/8-determining-factors-for-the-selection-of-the-model-approach-7d06d893d0ca

    多因素分析模型解决方法

    展开全文
    weixin_26642481 2020-09-05 05:45:09
  • 833KB weixin_38707061 2021-01-14 17:46:15
  • 财政收入影响因素分析及预测模型

    财政收入影响因素分析及预测模型

    背景

    在我国现行的分税制财政管理体制下,地方财政收入不仅是国家财政收入的重要组成部分,还具有其相对独立的构成内容。如何有效地利用地方财政收入,合理地分配来促进地方的发展,提高市民的收入和生活质量是每个地方政府需要考虑的首要问题。因此,对地方财政收入进行预测,不但是必要的,而且是可能的。科学、合理地预测地方财政收入,对于克服年度地方预算收支规模的随意性和盲目性,正确处理地方财政与经济的相互关系具有十分重要的意义。某市作为改革开放的前沿城市,其经济发展在全国经济中的地位举足轻重。目前,该市在财政收入规模、结构等方面与北京、深圳和上海等城市仍有一定差距,存在不断完善的空间。

    目标

    本案例旨在通过研究,发现影响该市目前以及未来地方财源建设的因素,并对其进行深入分析,提出对该市地方财源优化的具体建议,供政府决策参考,同时为其他经济发展较快的城市提供借鉴。

    考虑到数据的可得性,本案例所用的财政收入分为地方一般预算收入和政府性基金收入。

    地方一般预算收入包括:1.税收收入,主要包括企业所得税和地方所得税中中央和地方共享的40%,地方享有的25%的增值税、营业税和印花税等;2.非税收入,包括专项收入、行政事业费收入、罚没收入、国有资本经营收入和其他收入等。政府性基金收入是国家通过向社会征收以及出让土地、发行彩票等方式取得的收入,并专项用于支持特定基础设施建设和社会事业发展的收入。由于1994年财政体制重大改革,所以1994年前后不具有可比性,仅对1994年后的进行分析,本案例数据来自《某市统计年鉴》(1995-2014)

    挖掘目标

    梳理影响地方财政收入的关键特征,分析、识别影响地方财政收入的关键特征的选择模型。结合目标1的因素分析,对某市2015年的财政总收入及各个类别收入进行预测。

    分析

    在以往的文献中,对影响财政收入的因素的分析大多采用普通最小二乘法来对回归模型的系数进行估计,预测变量的选取采用的则是逐步回归。然而,不论是最小二乘法还是逐步回归,都有其不足之处。它们一般都局限于局部最优解而不是全局最优解。如果预测变量过多,子集选择的计算过程具有不可实行性,且子集选择具有内在的不连续性,从而导致子集选择极度多变。

    Lasso是近年来被广泛使用于参数估计和变量选择的方法之一,并且在确定的条件下,使用Lasso方法进行变量选择已经被证明是一致的。案例选用Adaptive-Lasso方法来探究地方财政收入与各因素之间的关系。(该方法不在数学上具体叙述)

    在Adaptive-Lasso变量选择的基础上,鉴于灰色预测对小数据量数据预测的优良性能,对单个选定的影响因素建立灰色预测模型,得到它们在2014年及2015年的预测值。由于神经网络较强的适用性和容错能力,对历史数据建立训练模型,把灰色预测的数据结果代入训练好的模型中,就得到了充分考虑历史信息的预测结果,即2015年某市财政收入及各个类别的收入。

    下面是基于数据挖掘技术的财政收入分析预测模型流程

    1. 从某市统计局网站以及各统计年鉴搜集到该市财政收入以及各类别收入相关数据。
    2. 利用步骤1)形成的已完成数据预处理的建模数据,建立Adaptive-Lasso变量选择模型。
    3. 在步骤2)的基础上建立单变量的灰色预测模型以及人工神经网络预测模型。
    4. 利用步骤3)的预测值代入构建好的人工神经网络模型中,从而得到2014/2015年某市财政收入及各个类别的收入。

    处理过程

    • 数据获取
      • 已提供。
    • 数据探索
      • 描述分析
      • 相关分析
    • 数据预处理
      • 处理好的数据给出了。
    • 数据挖掘建模
      • Adaptive-Lasso变量选择模型
        • sklearn中Adaptive-Lasso模型已经删除了。
      • 财政收入及各类别收入预测模型
        • 某市财政收入预测模型
          • 真实值与预测值对比
        • 增值税预测模型
          • 真实值与预测值对比
        • 营业税预测模型
          • 真实值与预测值对比
        • 企业所得税预测模型
          • 真实值与预测值对比
        • 个人所得税预测模型
          • 真实值与预测值对比
        • 政府性基金收入预测模型
          • 真实值与预测值对比

    代码

    import pandas as pd
    import numpy as np
    from GM11 import GM11
    
    
    def adaptiveLasso():
        '''
        Adaptive-Lasso变量选择模型
        :return:
        '''
        inputfile = 'data/data1.csv'
        data = pd.read_csv(inputfile)
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import LassoLars
        model = LassoLars()
        model.fit(data.iloc[:, 0:13], data['y'])
        print(model.coef_)
    
    
    def huise():
        '''
        地方财政收入灰色预测
        :return:
        '''
        inputfile = 'data/data1.csv'
        outputfile = 'data/data1_GM11.xls'
        data = pd.read_csv(inputfile)
        data.index = range(1994, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']
        for i in l:
            f = GM11(data[i][np.arange(1994, 2014)].values)[0]
            # 2014年预测结果
            data[i][2014] = f(len(data) - 1)
            # 2015年预测结果
            data[i][2015] = f(len(data))
            data[i] = data[i].round(2)
    
        data[l + ['y']].to_excel(outputfile)
        print(data)
    
    
    def yuce():
        '''
        地方财政收入神经网络预测模型
        :return:
        '''
        inputfile = 'data/data1_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/revenue.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/1-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)
        feature = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']  # 特征所在列
    
        data_train = data.loc[range(1994, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=6, units=12))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=12, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=10000, batch_size=16)  # 训练模型,学习一万次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def adaptiveLasso2():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
    
        inputfile = 'data/data2.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
        # 导入AdaptiveLasso算法,新版本已经删除
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:6], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise2():
        '''
        增值税灰色预测
        :return:
        '''
        inputfile = 'data/data2.csv'  # 输入的数据文件
        outputfile = 'data/data2_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(1999, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x3', 'x5']
        for i in l:
            f = GM11(data[i][np.arange(1999, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round(6)  # 保留六位小数
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce2():
        '''
        增值税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data2_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/VAT.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/2-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x1', 'x3', 'x5']  # 特征所在列
    
        data_train = data.loc[np.arange(1999, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=3, units=6))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=6, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=10000, batch_size=16)  # 训练模型,学习一万次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round(2)
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    
    def adaptiveLasso3():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
        inputfile = 'data/data3.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
    
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:10], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise3():
        '''
        营业税灰色预测
        :return:
        '''
        inputfile = 'data/data3.csv'  # 输入的数据文件
        outputfile = 'data/data3_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(1999, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x3', 'x4', 'x6', 'x8']
        for i in l:
            f = GM11(data[i][np.arange(1999, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round()  # 取整
    
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce3():
        '''
        营业税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data3_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/sales_tax.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/3-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x3', 'x4', 'x6', 'x8']  # 特征所在列
    
        data_train = data.loc[range(1999, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=4, units=8))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=8, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=10000, batch_size=16)  # 训练模型,学习一万次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round(2)
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def adaptiveLasso4():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
        inputfile = 'data/data4.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
    
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:10], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise4():
        '''
        企业所得税灰色预测
        :return:
        '''
        inputfile = 'data/data4.csv'  # 输入的数据文件
        outputfile = 'data/data4_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(2002, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x2', 'x3', 'x4', 'x6', 'x7', 'x9', 'x10']
        for i in l:
            f = GM11(data[i][np.arange(2002, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round(2)  # 保留两位小数
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce4():
        '''
        企业所得税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data4_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/enterprise_income.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/4-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x1', 'x2', 'x3', 'x4', 'x6', 'x7', 'x9', 'x10']  # 特征所在列
    
        data_train = data.loc[range(2002, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=8, units=6))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=6, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=5000, batch_size=16)  # 训练模型,学习五千次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round()
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def adaptiveLasso5():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
        inputfile = 'data/data5.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
    
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:7], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise5():
        '''
        个人所得税灰色预测
        :return:
        '''
        inputfile = 'data/data5.csv'  # 输入的数据文件
        outputfile = 'data/data5_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(2000, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x4', 'x5', 'x7']
        for i in l:
            f = GM11(data[i][np.arange(2000, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round()  # 取整
    
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce5():
        '''
        个人所得税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data5_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/personal_Income.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/5-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x1', 'x4', 'x5', 'x7']  # 特征所在列
    
        data_train = data.loc[range(2000, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=4, units=8))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=8, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=15000, batch_size=16)  # 训练模型,学习一万五千次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round()
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def huise6():
        '''
        政府性基金收入灰色预测
        :return:
        '''
        x0 = np.array([3152063, 2213050, 4050122, 5265142, 5556619, 4772843, 9463330])
        f, a, b, x00, C, P = GM11(x0)
        print(u'2014年、2015年的预测结果分别为:\n%0.2f万元和%0.2f万元' % (f(8), f(9)))
        print(u'后验差比值为:%0.4f' % C)
        p = pd.DataFrame(x0, columns=['y'], index=range(2007, 2014))
        p.loc[2014] = None
        p.loc[2015] = None
        p['y_pred'] = [f(i) for i in range(1, 10)]
        p['y_pred'] = p['y_pred'].round(2)
        p.index = pd.to_datetime(p.index, format='%Y')
    
        import matplotlib.pylab as plt
        p.plot(style=['b-o', 'r-*'], xticks=p.index)
        plt.show()
    
    
    if __name__ == '__main__':
        # adaptiveLasso()
        # huise()
        # yuce()
        # adaptiveLasso2()
        # huise2()
        # yuce2()
        # adaptiveLasso3()
        # huise3()
        # yuce3()
        # adaptiveLasso4()
        # huise4()
        # yuce4()
        # adaptiveLasso5()
        # huise5()
        # yuce5()
        huise6()
    
    

    后续处理

    应用模型进行推理。

    补充说明

    案例参考书《Python数据分析与挖掘实战》,与原书有借鉴,但是较大改动代码,修复了原书一些旧版本代码错误,具体数据集和代码可以查看我的Github,欢迎star或者fork。再次补充,相关数据集的获取直接clone整个仓库即可。

    展开全文
    zhouchen1998 2019-02-14 19:52:01
  • u012470887 2019-10-07 12:18:47
  • zhangyangfeiyu 2018-01-24 19:43:57
  • 695KB weixin_38744207 2019-09-20 17:06:05
  • 308KB weixin_38535848 2020-01-16 02:16:51
  • qq_42374697 2021-03-04 16:36:15
  • y1535766478 2017-09-15 15:48:04
  • m0_49263811 2021-12-12 14:36:10
  • 295KB weixin_38679277 2020-01-16 06:32:14
  • 327KB weixin_38686557 2021-05-27 00:45:15
  • 60.8MB qq_43371778 2020-06-09 18:23:28
  • 264KB weixin_38526650 2020-02-03 15:35:09
  • 287KB weixin_38633157 2020-04-26 17:13:18
  • 466KB index61index 2011-07-10 22:27:57
  • You_are_blind 2020-07-16 22:15:02
  • 412KB weixin_38694355 2021-04-25 20:09:45
  • 384KB weixin_38599537 2020-05-17 16:20:23
  • LuYi_WeiLin 2019-05-13 01:12:27
  • 308KB weixin_38531788 2021-04-28 18:06:58
  • 389KB weixin_38500572 2020-07-07 23:51:43
  • Baby_bye 2019-06-15 17:50:08

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,928
精华内容 54,771
关键字:

影响因素分析模型