杰瑞科技汇

实用SAS统计分析教程该怎么学?

实用SAS统计分析教程

前言:为什么学习SAS?

SAS (Statistical Analysis System) 是一款功能强大的商业智能、数据分析 and 报告软件,它在金融、医疗、制药、政府和学术界等领域应用广泛,被誉为数据分析领域的“行业标准”之一。

实用SAS统计分析教程该怎么学?-图1
(图片来源网络,侵删)

学习SAS的优势:

  • 功能全面:从数据管理、统计分析到数据可视化、报告生成,一站式解决。
  • 稳定可靠:作为商业软件,其计算结果和过程经过严格验证,适合处理大规模、高要求的数据。
  • 就业导向:掌握SAS是许多数据分析、生物统计、数据科学岗位的硬性要求。

第一部分:SAS基础入门

第1章:认识SAS

  1. SAS界面简介

    • SAS增强型编辑器:编写和修改SAS代码的主要窗口,支持语法高亮、自动缩进。
    • 日志窗口:显示代码执行过程、警告、错误和信息,是调试代码的关键。
    • 输出窗口:展示程序运行产生的结果(如统计表格、图表)。
    • 结果窗口:以树状结构管理输出窗口的内容,方便导航和查看。
    • 资源管理器:类似于Windows的文件资源管理器,用于管理SAS数据集(.sas7bdat)和其他文件。
  2. SAS程序的基本结构 一个完整的SAS程序通常由两个主要部分构成:

    • DATA步:用于创建、修改、处理数据集,可以理解为数据的“输入和加工”车间。
    • PROC步:用于对数据集进行分析、报表生成和绘图,可以理解为数据的“分析和展示”车间。

    基本语法规则:

    实用SAS统计分析教程该怎么学?-图2
    (图片来源网络,侵删)
    • 每条SAS语句都以一个分号
    • SAS对大小写不敏感dataDATA 效果相同),但为了可读性,通常关键字大写,变量名小写。
    • 空格和换行不影响程序执行,但良好的缩进和格式是编程好习惯。

第二部分:核心技能掌握

第2章:数据步 - 数据的加工厂

数据步是SAS的灵魂,它像一条流水线,对数据进行读取、清洗、转换、合并等操作。

  1. 创建数据集 最常用的方式是直接在代码中输入数据。

    /* 示例:创建一个名为 students 的数据集 */
    DATA students;
        /* 使用 INPUT 语句定义变量名 */
        /* $ 表示字符型变量 */
        INPUT id name $ gender $ score1 score2;
        /* 使用 CARDS 语句开始数据输入 */
        CARDS;
    1 张三 男 85 90
    2 李四 女 92 88
    3 王五 男 78 85
    4 赵六 女 88 92
    ;
    RUN; /* RUN 语句执行 DATA 步 */
  2. 数据清洗与处理

    • 选择变量KEEPDROP 语句。
      /* 只保留 id, name, score1 变量 */
      DATA students_keep;
          SET students; /* SET 语句读取 students 数据集 */
          KEEP id name score1;
      RUN;
    • 选择观测(行)IFWHERE 语句。
      /* 只保留 score1 大于 85 的学生 */
      DATA students_high;
          SET students;
          IF score1 > 85;
      RUN;
    • 创建新变量:直接赋值。
      /* 计算平均分 */
      DATA students_avg;
          SET students;
          average = (score1 + score2) / 2;
      RUN;
    • 处理缺失值IF ... THEN ... ELSEMISSING() 函数。
      /* score2 缺失,则用 0 填充 */
      DATA students_fill;
          SET students;
          IF missing(score2) THEN score2 = 0;
      RUN;

第3章:PROC步 - 分析的展示台

PROC步调用SAS内置的“过程”(Procedure)来执行特定的分析任务,格式通常是 PROC 过程名 [选项]; ... RUN;

实用SAS统计分析教程该怎么学?-图3
(图片来源网络,侵删)
  1. 基础描述性统计

    • PROC MEANS:计算数值变量的描述性统计量(均值、标准差、最大值、最小值等)。
      /* 计算 score1 和 score2 的均值、标准差、最大值、最小值 */
      PROC MEANS DATA=students N MEAN STD MAX MIN;
          VAR score1 score2;
      RUN;
    • PROC FREQ:对分类变量进行频数分析。
      /* 统计男女学生的人数 */
      PROC FREQ DATA=students;
          TABLES gender;
      RUN;
  2. 数据可视化

    • PROC SGPLOT:现代、灵活的绘图过程,功能强大。
      • 直方图:展示数据分布。
        PROC SGPLOT DATA=students;
            HISTOGRAM score1;
        RUN;
      • 散点图:展示两个变量间的关系。
        PROC SGPLOT DATA=students;
            SCATTER X=score1 Y=score2;
            XAXIS LABEL='第一次考试成绩';
            YAXIS LABEL='第二次考试成绩';
        RUN;
      • 箱线图:比较不同组别数据的分布。
        PROC SGPLOT DATA=students;
            VBOX score1 / CATEGORY=gender;
            XAXIS LABEL='性别';
            YAXIS LABEL='第一次考试成绩';
        RUN;

第三部分:常用统计分析

这是将SAS应用于实际研究问题的核心部分。

第4章:T检验

用于比较两组数据的均值是否存在显著差异。

  1. 单样本T检验

    • 问题:全班学生的平均分是否等于 85 分?
      PROC TTEST DATA=students H0=85;
      VAR score1;
      RUN;
  2. 独立样本T检验

    • 问题:男生的平均分是否与女生的平均分有差异?
      PROC TTEST DATA=students;
      CLASS gender; /* 指定分组变量 */
      VAR score1;   /* 指定分析变量 */
      RUN;
  3. 配对样本T检验

    • 问题:学生的第一次和第二次考试成绩是否有显著差异?
      PROC TTEST DATA=students;
      PAIRED score1*score2;
      RUN;

第5章:方差分析

用于比较三组或以上数据的均值是否存在显著差异。

  • 问题:不同专业的学生(假设我们有 major 变量)的平均分是否有差异?
    /* 假设数据集中有 major 变量 */
    PROC ANOVA DATA=students;
        CLASS major;
        MODEL score1 = major;
        MEANS major / TUKEY; /* 使用 Tukey 法进行两两比较 */
    RUN;

第6章:卡方检验

用于分析分类变量之间是否存在关联。

  • 问题:性别和是否通过考试(假设我们有 pass 变量,Y/N)之间是否有关联?
    /* 假设数据集中有 pass 变量 */
    PROC FREQ DATA=students;
        TABLES gender * pass / CHISQ;
    RUN;
    /* 输出结果中的 Chi-Square 值和 p-value 用于判断关联性 */

第7章:相关与回归

  1. 相关分析

    • 问题:第一次和第二次考试成绩之间是否存在线性相关关系?
      PROC CORR DATA=students;
      VAR score1 score2;
      RUN;
  2. 线性回归

    • 问题:用第一次考试成绩来预测第二次考试成绩。
      PROC REG DATA=students;
      MODEL score2 = score1; /* score2 是因变量,score1 是自变量 */
      OUTPUT OUT=reg_output P=predicted R=residuals; /* 输出预测值和残差 */
      RUN;
      QUIT; /* PROC REG 后最好用 QUIT 结束 */

第四部分:实用技巧与资源

第8章:实用技巧

  1. 使用 LIBNAMELIBNAME 是SAS的“盘符”,用于指定数据存储的路径。

    /* 将 D:\SASData\ 定义为 mylib */
    LIBNAME mylib "D:\SASData\";
    /* 将创建的数据集保存到 mylib 中 */
    DATA mylib.students;
        SET students;
    RUN;
    /* 调用 mylib 中的数据集 */
    PROC MEANS DATA=mylib.students;
        RUN;
  2. :用于重复执行相同的代码块,提高效率。

    %MACRO print_means(var);
        PROC MEANS DATA=students;
            VAR &var;
        RUN;
    %MEND print_means;
    /* 调用宏,分析 score1 和 score2 */
    %print_means(score1);
    %print_means(score2);
  3. 输出控制:使用 ODS (Output Delivery System) 将输出导出为PDF、HTML、Excel等格式。

    ODS PDF FILE="C:\MyReports\Analysis_Report.pdf";
    /* 在这里放置你的所有分析代码 */
    PROC MEANS DATA=students;
        VAR score1 score2;
    RUN;
    PROC TTEST DATA=students;
        CLASS gender;
        VAR score1;
    RUN;
    ODS PDF CLOSE; /* 关闭输出文件 */

第9章:学习资源推荐

  • 官方文档:SAS官方文档是最权威、最全面的资料,搜索 "SAS Documentation" 即可找到。
  • 在线课程
    • Coursera / edX:搜索 "SAS Programming" 或 "Statistical Analysis with SAS",有顶尖大学和SAS官方提供的课程。
    • SAS官方学习平台:SAS提供了大量的免费教程和认证路径。
  • 书籍推荐
    • 《The Little SAS Book》:经典入门书籍,语言通俗易懂,适合零基础读者。
    • 《SAS Programming for Statistical Data Analysis》:更侧重于统计分析应用。
  • 社区与论坛
    • SAS Support Communities:官方技术社区,可以提问和查阅解决方案。
    • Stack Overflow:使用 sas 标签提问,有大量活跃的SAS开发者。

学习SAS是一个循序渐进的过程,请遵循以下路径:

  1. 熟悉环境:掌握SAS界面的基本操作。
  2. 掌握DATA步:这是所有工作的基础,务必熟练数据清洗和转换。
  3. 学习PROC步:从 MEANS, FREQ, SGPLOT 开始,逐步过渡到T检验、方差分析、回归等核心统计过程。
  4. 勤加练习:找一份公开数据集(如Kaggle、UCI Machine Learning Repository),尝试用SAS完成一个完整的数据分析项目。
  5. 善用资源:遇到问题时,先查阅日志,再搜索官方文档和社区。

祝您学习顺利,早日成为SAS数据分析高手!

分享:
扫描分享到社交APP
上一篇
下一篇