• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      臨床試驗中定性指標統(tǒng)計分析報表的SAS宏實現(xiàn)

      2017-11-07 00:53:57孫瑞華郭銳敏虞康達吳婉玲王雨萌
      中國衛(wèi)生統(tǒng)計 2017年5期
      關鍵詞:卡方宏程序無序

      徐 凱 孫瑞華 李 歡 郭銳敏 肖 暢 虞康達 吳婉玲 黃 傲 王雨萌

      1.北京中醫(yī)藥大學管理學院(100029)

      2.中日友好醫(yī)院科研處

      △通信作者:孫瑞華,E-mail:sunruihua@263.net126.com

      ·計算機應用·

      臨床試驗中定性指標統(tǒng)計分析報表的SAS宏實現(xiàn)

      徐 凱1孫瑞華2△李 歡1郭銳敏1肖 暢1虞康達1吳婉玲1黃 傲1王雨萌1

      SAS軟件是業(yè)界公認的一款統(tǒng)計分析軟件,在臨床試驗的統(tǒng)計分析中應用十分廣泛。應用其強大的宏程序功能,可以高效快捷地實現(xiàn)報表的自動化輸出,使統(tǒng)計結果直接生成Word統(tǒng)計報表,避免了以往手工粘貼統(tǒng)計結果出現(xiàn)錯誤的問題[1-2]。根據統(tǒng)計分析報告中常用的格式,本文將編寫一套較為通用的定性指標(結果變量有序或者無序)的統(tǒng)計分析SAS宏程序。

      資料與統(tǒng)計方法

      根據統(tǒng)計學原理,常用頻數、百分比/構成比等指標對計數資料進行統(tǒng)計學描述。統(tǒng)計分析時,需根據資料是否有序,合理選擇統(tǒng)計分析方法。成組設計的列聯(lián)表資料,結果變量為無序時,組間比較需選用卡方檢驗,若樣本例數<40或理論頻數<5時則采用Fisher精確概率法;結果變量為多項且有序時,需根據計數資料的結果變量數目,合理選擇統(tǒng)計分析的方法。統(tǒng)計分析需選用兩組間Wilcoxon秩和檢驗進行比較[3]。為直接得到結果變量有序的表1和結果變量無序的表2所示的統(tǒng)計分析報表結果,結合SAS宏程序的強大功能,編寫相應的定性指標的統(tǒng)計分析SAS宏程序。

      表1 組間有效率分析

      表2 組間性別比較分析

      定義宏及宏變量

      在宏程序中定義了六個宏變量,即&dataset、&sfyx、&group、&yx、&position、&fmt,分別為分析數據集、結果變量有序判定、組別、待分析的結果變量、文件保存位置、定義輸出格式。

      %macro jishu(dataset,sfyx,group,yx,position,fmt);

      生成定性資料的統(tǒng)計描述結果

      利用SAS的數據傳輸系統(tǒng)(ods)將列聯(lián)表的統(tǒng)計描述數據輸入到指定的SAS數據集中,對指定數據集進行拆分后使每組統(tǒng)計描述結果處于一列,再進行橫向合并操作。

      /*利用freq程序輸出統(tǒng)計描述部分結果到CrossTabFreqs1 數據集中,并輸出卡方檢驗結果到chisq1數據集,將精確概率法結果輸出到fisherexact1數據集,并將CrossTabFreqs1 數據集拆分為psa和psb,經過處理后再橫向合并成ms數據集*/

      ods output CrossTabFreqs=CrossTabFreqs1 chisq=chisq1 fishersexact=fisherexact1;

      proc freq data=&dataset;

      tables &yx*&group/chisq expected fisher;

      /*對CrossTabFreqs1數據集分別拆分成A組描述數據集psa、B組描述數據集psb,并橫向組合處理*/

      data Crosstabfreqs;

      set Crosstabfreqs1;

      keep & yx&group Frequency colpercent;

      data psa psb;

      set Crosstabfreqs1;

      if&group="A" then output psa;else output psb;

      data psa;

      set psa;

      if colpercent=.then colpercent=100;

      if &yx=.then &yx=99;

      colpercent=round(colpercent,0.01);

      psa=cat(Frequency,"(",colpercent,")");

      keep &yx psa;

      data psb;

      set psb;where &group="B";

      if &yx=.then &yx=99;

      if colpercent=.then colpercent=100;

      colpercent=round(colpercent,0.01);

      psb=cat(Frequency,"(",colpercent,")");

      keep &yx psb;

      /*將A、B組的統(tǒng)計描述的結果合并在ms數據集中*/

      data ms;

      merge psa psb;

      by &yx;

      run;

      抓取樣本總例數和理想頻數的最小值

      利于在方法和結果的選擇,對前面生成的chisq1和fisherexact1數據集進行處理,生成卡方統(tǒng)計量及P值數據集chisq1,生成精確概率法P值數據集fisherexact。

      /*抓取總樣本例數和理想頻數最小值的宏變量*/

      data expected;

      set crosstabfreqs1;

      keep expected frequency;

      proc summary data=expected;

      var expected frequency;

      output out=expmin min(expected)=expmin max(frequency)=n;

      data expected;

      set expmin;

      call symput (′expmin′,expmin);

      call symput (′n′,n);

      /*處理chisq1數據集,挑選出卡方統(tǒng)計量和P值,生成chisq1數據集*/

      data chisq1;

      set chisq1;

      by table;

      if first.table;

      value=round(value,0.01);

      prob=round(prob,0.0001);

      value1=cat("卡方=",value);

      prob1=cat("P=",prob);

      keep value1 prob1;

      /*處理fisherexact1數據集,挑選出精確概率法的P值,生成fisherexact數據集*/

      data fisherexact;

      set fisherexact1;

      by table;

      if first.table;

      if label1^="" then label1="精確概率法";

      cvalue1=round(cvalue1,0.0001);

      cvalue=cat(label1,"=",cvalue1);

      keep cvalue;

      選擇統(tǒng)計方法及其對應的結果

      根據不同的條件,選擇合適的統(tǒng)計分析方法及其結果,需首先判斷結果變量有序與否。若結果變量為無序,則程序會根據樣本總例數和最小理論頻數輸出不同的統(tǒng)計分析結果。樣本總例數≥40且最小理論頻數≥5時,則會自動輸出卡方分析結果,否則輸出fisher精確概率法的結果。若結果變量為有序時,則程序會自動輸出兩組間Wilcoxon秩和檢驗的結果。

      /*結果變量為無序時,執(zhí)行以下輸出結果操作*/

      %if &sfyx="無序" %then %do;

      data kf;

      if & n>=40 and &expmin>=5 then do;

      merge ms chisq1;

      file & position mod;

      put @10 &yx @29 psa @53 psb @ 75 value1 @85 prob1;

      format & yx.&fmt..;

      end;

      else if &n<40 or &expmin<5 then do;

      merge ms fisherexact;

      file &position mod;

      put @10 &yx @29 psa @53 psb @75 cvalue;

      format &yx.&fmt..;end;

      run;

      %end;

      /*結果變量為有序時,用npar1way程序輸出統(tǒng)計分析結果到WilcoxonTest數據集中,執(zhí)行以下輸出結果操作*/

      %if &sfyx="有序" %then %do;

      Ods Output WilcoxonTest=WilcoxonTest1;

      proc npar1way wilcoxon data=&dataset;

      var &yx;

      class &group;

      run;

      data WilcoxonTest;

      set WilcoxonTest1;

      where Name1="Z_WIL" or Name1="P2_WIL";

      if Name1="P2_WIL" then Name1="P值";

      cvalue1=round(cvalue1,0.0001);

      cvalue=cat(name1,"=",cvalue1);

      keep cvalue;

      data kf;

      merge ms WilcoxonTest;

      file &position mod;

      put @10 &yx @29 psa @53 psb @ 75 cvalue;

      format &yx.&fmt..;

      run;

      %end;%mend jishu;

      輸出表頭、表尾及表格線

      %macro biaotou(title,position);

      data _null_;

      long="&title";left=int((96-length(long))/2);

      file &position mod;

      put #1@left "&title"

      #2 @2 97*′_′

      #3 @10 ′指標項′ @29 ′A組′ @53 ′B組′ @75 ′統(tǒng)計量和P值′

      #4 @2 97*′_′;

      run;

      %mend biaotou;

      %macro biaowei(position);

      data _null_;

      file &position mod;

      put @2 97*′_′;

      run;

      %mend biaowei;

      運行宏程序

      將以上所有宏程序提交運行,提交以下程序后,即可輸出表1和表2所示的統(tǒng)計分析三線表格。

      /*需事先設定好格式化,使結果變量更加直觀地輸出;設置title的表格名稱;人為判斷待分析的結果變量有序與否,若結果變量為有序則應將sfyx設置為“有序”,否則應將sfyx設置為“無序”;將所有的position設置,其代表的是:三線表格rtf文件名及其存儲的位置*/

      proc format;

      value fmt 1=′顯效 N(%)′ 2=′有效 N(%)′ 3=′無效 N(%)′ 99="合計";

      value sexf 1=′男 N(%)′ 2=′女 N(%)′ 99="合計";

      run;

      %biaotou(title=表格1 組間有效率分析,position=′test.rtf′);

      %jishu(dataset=data1,sfyx="有序",group=group,yx=yx,position=′test.rtf ′,fmt=fmt);

      %biaowei(position=′test.rtf′);

      %biaotou(title=表格2 組間性別比較分析,position=′test.rtf′);

      %jishu(dataset=data1,sfyx="無序",group=group,yx=sex,position=′test.rtf ′,fmt=sexf);

      %biaowei(position=′test.rtf′);

      討 論

      SAS有極其強大的統(tǒng)計分析功能,在國內外很多統(tǒng)計學專業(yè)人士采用SAS對新藥臨床試驗的數據進行數據管理和統(tǒng)計分析[4],加之SAS宏程序快捷方便,已成為業(yè)界公認的統(tǒng)計分析軟件之一。本文基于SAS自帶的ODS輸出傳送系統(tǒng)將統(tǒng)計分析結果以rtf富文本的格式輸出三線表。同時根據結果變量的有序與否,利用SAS宏程序的強大功能,使其能夠根據設置自動地選擇恰當的統(tǒng)計分析方法,并自動輸出相應的統(tǒng)計報表。本文介紹了簡單實用的SAS宏程序,其結果已經過驗證準確可靠,適合結果變量有序與否的定性資料的組間比較。

      [1] 李子建,苗青,劉元東.疫情Word報表的SAS編程實現(xiàn).解放軍預防醫(yī)學雜志,2005,23(3):216-218.

      [2] 王雨萌,孫瑞華,黃傲,等.單因素多水平臨床試驗定量指標統(tǒng)計分析報表的SAS宏實現(xiàn).中國衛(wèi)生統(tǒng)計,2016,33(4):712-714.

      [3] 孫振球.醫(yī)學統(tǒng)計學.第3版.北京:人民衛(wèi)生出版社,2010:141.

      [4] 童新元,張高魁,姚晨.定性指標的SAS統(tǒng)計分析報表——SAS軟件在新藥臨床試驗統(tǒng)計分析中的應用(一).中國衛(wèi)生統(tǒng)計,2003,20(1):50-51.

      (責任編輯:張 悅)

      猜你喜歡
      卡方宏程序無序
      卡方檢驗的應用條件
      卡方變異的SSA的FSC賽車轉向梯形優(yōu)化方法
      車身無序堆疊零件自動抓取系統(tǒng)
      卡方檢驗的應用條件
      橢球槽宏程序編制及其Vericut仿真
      智能制造(2021年4期)2021-11-04 08:54:44
      張博庭:煤電不能再這么無序發(fā)展下去了
      能源(2017年11期)2017-12-13 08:12:30
      高速路上右行規(guī)則與無序行駛規(guī)則的比較研究
      無序體系中的國際秩序
      基于Vericut的四軸數控加工宏程序仿真研究
      G代碼B類宏程序在數控切割參數化圖形庫中的應用
      焊接(2015年9期)2015-07-18 11:03:53
      龙川县| 清水河县| 什邡市| 洪江市| 麦盖提县| 泉州市| 阜平县| 西丰县| 宜州市| 黑山县| 镶黄旗| 津市市| 奈曼旗| 白银市| 伽师县| 婺源县| 玉林市| 隆子县| 旺苍县| 深圳市| 循化| 大丰市| 札达县| 仪征市| 资溪县| 邯郸县| 庄浪县| 犍为县| 万盛区| 安乡县| 霍山县| 禹州市| 吉水县| 隆尧县| 大同市| 监利县| 大港区| 佛冈县| 汾阳市| 和静县| 陆良县|