zoukankan      html  css  js  c++  java
  • 统计学的统一(1)

    很久之间就看过https://bbs.pinggu.org/thread-2736449-1-1.html 这篇帖子,感觉很有意思,最近正好研究广义估计方程,就把这套理论用sas实现以下。

    受到该启发后,认真再复习GLM的相关资料,得到更加重要的总结如下(来自高惠璇SAS/STAT软件使用手册,实际是SAS8.2的User's guide的中文版,但是目前SAS 9.2,9.3的User's guide关于GLM模型的介绍中已经删去了这么经典的总结,实在可惜,倒让人看不到GLM的真正长处了):
    如果X1-X3,Y1-Y2为连续性变量,Y3为分类变量,a-c为分类变量,time为时间变量,目前我们熟悉的模型可以简单概括如下:
    (1) y1= x1    简单回归
    (2) y1= x1 x2 x3  多重回归(multiple regression)
    (3) y1 y2=x1 x2   多元回归(multivariate regression)
    (4) y1= a   单因素方差分析
    (5) y1= a b   (析因设计的)主效应分析
    (6) y1= a b  a*b (析因设计的)主效应加交互项分析
    (7) y1= a x1   协方差分析
    (8) y3= a   单因素logistic回归
    (9) y3= a b c x1 x2 x3   多因素logistic回归
    (10) y3(time) =a   单因素cox回归
    (11) y3(time) = a b c x1 x2 x3  多因素cox回归

    1-7采用SAS的一般线性模型GLM都能实现,而1-9采用SAS的广义线性模型GENMOD都能实现。

    转载请注明出处:https://www.cnblogs.com/SSSR/p/11006749.html 

    以下为两组的t检验(没做正态性和方差齐性),为例
    data a;
    input group y;
    cards;
    1 11.1
    1 8.17
    1 12.73
    1 15.83
    1 15.6
    1 17.2
    1 5.45
    1 11.3
    2 23.73
    2 18.86
    2 26.65
    2 16.72
    2 17.33
    2 18.08
    2 16.55
    2 17.87
    ;
    run;
    PROC TTEST DATA=a;
    TITLE "T-test Example";
    CLASS GROUP;
    VAR y;
    RUN;

    方法方差自由度t 值Pr > |t|
    汇总 等于 14 -3.78 0.0020
    Satterthwaite 不等于 13.89 -3.78 0.0021

    proc anova data=a;
    class group;
    model y=group;
    means group;
    means group/hovtest;
    run;
    quit;

    自由度Anova 平方和均方F 值Pr > F
    group 1 213.2330063 213.2330063 14.28 0.0020

    F值=t值的平方


    proc reg;/*调用回归模块*/
    model y=group/cli; /*对y关于x1做回归,/cli表示求预测值与预测区间*/
    run;
    quit;

    参数估计
    变量自由度参数
    估计
    标准
    误差
    t 值Pr > |t|
    Intercept1 4.87125 3.05506 1.59 0.1331
    group1 7.30125 1.93219 3.78 0.0020


    proc genmod data=a;
    class group(ref=first);
    model y=group;
    run;

    最大似然参数估计的分析
    参数 自由度估计标准
    误差
    Wald 95% 置信限Wald 卡方Pr > 卡方
    Intercept  1 12.1725 1.2780 9.6676 14.6774 90.72 <.0001
    group2 1 7.3013 1.8074 3.7588 10.8437 16.32 <.0001
    group1 0 0.0000 0.0000 0.0000 0.0000 . .
    尺度  1 3.6148 0.6390 2.5563 5.1116  

    这里参数估计是一样的,但是用的是卡方做检验,不知道卡方值和T值 F值之间有没有什么关系?????

    proc gam data=a;
    model y=param(group);
    run;

    gam是线性可加模型,用来判断自变量与因变量之间是否存在非线性关系的,这里使用param则表示不进行多项式判断。得到的结果reg一致。

    回归模型分析
    参数估计
    参数参数
    估计
    标准
    误差
    t 值Pr > |t|
    Intercept 4.87125 3.05506 1.59 0.1331
    group 7.30125 1.93219 3.78 0.0020

    再用一个例子,对比一下gam、genmod和reg之间的关系

    title 'Patterns of Diabetes';
    data diabetes;
    input Age BaseDeficit CPeptide @@;
    logCP = log(CPeptide);
    datalines;
    5.2 -8.1 4.8 8.8 -16.1 4.1 10.5 -0.9 5.2
    10.6 -7.8 5.5 10.4 -29.0 5.0 1.8 -19.2 3.4
    12.7 -18.9 3.4 15.6 -10.6 4.9 5.8 -2.8 5.6
    1.9 -25.0 3.7 2.2 -3.1 3.9 4.8 -7.8 4.5
    7.9 -13.9 4.8 5.2 -4.5 4.9 0.9 -11.6 3.0
    11.8 -2.1 4.6 7.9 -2.0 4.8 11.5 -9.0 5.5
    10.6 -11.2 4.5 8.5 -0.2 5.3 11.1 -6.1 4.7
    12.8 -1.0 6.6 11.3 -3.6 5.1 1.0 -8.2 3.9
    14.5 -0.5 5.7 11.9 -2.0 5.1 8.1 -1.6 5.2
    13.8 -11.9 3.7 15.5 -0.7 4.9 9.8 -1.2 4.8
    11.0 -14.3 4.4 12.4 -0.8 5.2 11.1 -16.8 5.1
    5.1 -5.1 4.6 4.8 -9.5 3.9 4.2 -17.0 5.1
    6.9 -3.3 5.1 13.2 -0.7 6.0 9.9 -3.3 4.9
    12.5 -13.6 4.1 13.2 -1.9 4.6 8.9 -10.0 4.9
    10.8 -13.5 5.1
    ;


    proc gam data=diabetes;
    model logCP = spline(Age) spline(BaseDeficit);
    run;

    回归模型分析
    参数估计
    参数参数
    估计
    标准
    误差
    t 值Pr > |t|
    Intercept 1.48141 0.05120 28.93 <.0001
    Linear(Age) 0.01437 0.00437 3.28 0.0024
    Linear(BaseDeficit) 0.00807 0.00247 3.27 0.0025

    proc genmod data=diabetes;
    model logcp=age basedeficit;
    run;

    最大似然参数估计的分析
    参数自由度估计标准
    误差
    Wald 95% 置信限Wald 卡方Pr > 卡方
    Intercept 1 1.4829 0.0576 1.3700 1.5957 663.41 <.0001
    Age 1 0.0150 0.0049 0.0054 0.0247 9.32 0.0023
    BaseDeficit 1 0.0090 0.0028 0.0035 0.0144 10.42 0.0012
    尺度 1 0.1247 0.0134 0.1009 0.1540    

    proc reg data=diabetes;
    model logcp=age basedeficit;
    run;

    大家可以看到三者的结果是一致的。知识genmod的检验方法不同而已。

    参数估计
    变量自由度参数
    估计
    标准
    误差
    t 值Pr > |t|
    Intercept1 1.48285 0.05969 24.84 <.0001
    Age1 0.01502 0.00510 2.95 0.0054
    BaseDeficit1 0.00896 0.00288 3.11 0.0034
  • 相关阅读:
    appium之adb常用命令
    测试基础之等价类
    selenium之CSS定位
    括号序列的最小代价
    Spark相对于MapReduce的优势
    Cache系统设计
    [京东2017实习生笔试] 终结者C
    [京东2017实习生笔试] 通过考试
    [hihoCoder] 1078. 线段树的区间修改
    [转载] 一步一步理解线段树
  • 原文地址:https://www.cnblogs.com/SSSR/p/11006749.html
Copyright © 2011-2022 走看看