• 相关分析sas


    相关分析是对进一步分析的很多帮助的一种分析方法,通过简单的散点图可以直观的看出两个变量之间的关系

    1:corr procedure解决两个连续变量间的关系

    2:列联表分析一般研究离散变量或定性变量间是否存在相关关系,通过proc freq实现

    2.1:两个定性变量(其中一个无序)之间有无关系可以通过卡方分布检验

    2.2:两个定性变量之间有无因果关系可以通过趋势检验

    /***********************************************proc corr****************************************************************/

    PROC CORR <options> ;

    BY variables ;

    FREQ variable ;

    ID variables ;

    PARTIAL variables ;

    VAR variables ;

    WEIGHT variable ;

    WITH variables ; 

    proc corr data=renmin.fitness pearson spearman nosimple; *利用不同相关系数做的相关性分析 nosimple,去除不必要的统计量;
        var weight Oxygen runtime; *得出的结果所有可能结合的相关性度量以及是否有相关性的假设检验;
    with var1-var10;*计算var中的每个变量分别与var1-var10的每个变量间的关系,即组与组之间的关系;
    run;
    *偏相关分:析假设我们需要计算X和Y之间的相关性,Z代表其他所有的变量,X和Y的偏相关系数可以认为是X和Z线性回归得到的残差Rx与Y和Z线性回归得到的残差Ry之间的简单相关系数,即pearson相关系数;
    proc
    corr data=corr_eg; var height weight; partial age; *移除partial的影响后,看height 和 weight的关系强度; run;

    /***********************************************proc freq****************************************************************/

    proc freq的研究两个离散变量间的相关性功能

    PROC FREQ <options> ;

    TABLES requests </ options> ;

    TEST options ;

    WEIGHT variable </ option> ;  *当我们不希望输入很多观测行时,可用weight作为权重进行计算,freq规定weight的列,在列联表中相应的显示出来;

    weight的例子
    data test; input
    group$ outcome$ count; datalines; drug alive 90 drug dead 10 placebo alive 80 placebo dead 20 ; run; proc freq data=test; table group*outcome / chisq norow nocol nopercent; weight count;*如果没有weight,那么列联表中就全为1了; run;

    proc format;
       value purfmt 1 = "$100 +"
                    0 = "< $100"
                      ;
    run;
    *无序的定性双变量分析;
    proc freq data=double.b_sales_inc;
       tables gender*purchase
              / chisq expected cellchi2 nocol nopercent; *chisq是关键,看卡方统计量;
       format purchase purfmt.;
       title1  'Association between GENDER and PURCHASE';
    run;
    data double.b_sales_inc;
       set double.b_sales;
       inclevel = 1*(income='Low') + 2*(income='Medium')
                    + 3*(income='High');
    run;
    
    proc format;
       value purfmt 1 = "$100 +"
                    0 = "< $100"
                      ;
    run;
    proc format;
       value incfmt 1='Low Income'
                    2='Medium Income'
                    3='High Income';
    run;
    *有序的定性双变量分析;
    proc freq data=double.b_sales_inc;
      tables inclevel*purchase / chisq trend measures cl;*看mantel-haenszel卡方,再看趋势检验;
      format inclevel incfmt. purchase purfmt.;
      title1 'Ordinal Association between INCLEVEL and PURCHASE?';
     run;
  • 相关阅读:
    常用查找算法总结
    cout<<endl 本质探索
    C语言字符串操作函数实现
    Shell编程实例
    Linux搭建SVN服务器
    Linux下搭建gtk+2.0开发环境
    Cairo编程
    DirectFB编程
    Ubuntu安装与配置
    Android学习之仿QQ側滑功能的实现
  • 原文地址:https://www.cnblogs.com/yican/p/4060758.html
Copyright © 2020-2023  润新知