国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

大樣本數(shù)據(jù)標(biāo)準(zhǔn)化率的SAS宏實(shí)現(xiàn)*

2018-09-20 06:48:12夏雷震HeziFu劉紅波
關(guān)鍵詞:結(jié)節(jié)病置信區(qū)間參數(shù)設(shè)置

夏雷震 Hezi Fu 金 城 缐 偉 劉紅波△

流行病學(xué)研究過程中,經(jīng)常會(huì)遇到率的比較問題,當(dāng)各組觀測(cè)的內(nèi)部構(gòu)成,諸如年齡、性別等存在較大差異時(shí),直接比較各組的粗率(合計(jì)率)是不合理的,通常應(yīng)該對(duì)其進(jìn)行標(biāo)準(zhǔn)化來消除內(nèi)部構(gòu)成不同的影響。對(duì)于小樣本數(shù)據(jù),一般只涉及幾組率的比較而不是多組率的比較或者是內(nèi)部構(gòu)成簡(jiǎn)單(比如只有年齡這一混雜因素),通常結(jié)合統(tǒng)計(jì)相關(guān)教材借助Excel就能較容易、簡(jiǎn)單的計(jì)算出標(biāo)準(zhǔn)化率;但在這個(gè)信息化時(shí)代,我們經(jīng)常會(huì)遇到復(fù)雜嵌套關(guān)系下的多層次組群結(jié)構(gòu)的海量數(shù)據(jù),如各省市疾病預(yù)防控制中心的傳染病報(bào)告數(shù)據(jù)、疾病死亡數(shù)據(jù),某疾病各年份患病情況等,對(duì)這種含有多個(gè)混雜因素、多分組的數(shù)據(jù),利用教材里公式和Excel的統(tǒng)計(jì)匯總功能來計(jì)算標(biāo)準(zhǔn)化率常常會(huì)遇到很大的困難,且計(jì)算過程繁瑣容易出錯(cuò)[1-2],這時(shí)我們最好借助統(tǒng)計(jì)軟件來完成[3]。SAS是最常用的數(shù)據(jù)處理和統(tǒng)計(jì)分析的軟件之一,本研究通過編寫SAS宏程序?qū)崿F(xiàn)大樣本數(shù)據(jù)率的標(biāo)準(zhǔn)化,希望能夠幫助科研工作者更加方便快捷的解決標(biāo)準(zhǔn)化率的計(jì)算問題。

基本原理

率的標(biāo)準(zhǔn)化法就是在指定的標(biāo)準(zhǔn)構(gòu)成條件下計(jì)算標(biāo)準(zhǔn)化率,以便于對(duì)多組率進(jìn)行對(duì)比。對(duì)于標(biāo)準(zhǔn)人群的選擇有三種方法,分別是任選一個(gè)對(duì)比組的人群、各組人群之和以及有代表性的、穩(wěn)定的、數(shù)量大的人群,如全國(guó)、全省的數(shù)據(jù)[4],選擇前兩種人群的標(biāo)準(zhǔn)化法稱為直接法,選擇后一種人群稱為間接法。無論是直接法還是間接法,它們標(biāo)準(zhǔn)化的基本思想是先計(jì)算出標(biāo)準(zhǔn)人群的內(nèi)部構(gòu)成比例(比如年齡構(gòu)成比)當(dāng)作權(quán)重qi,再計(jì)算出各組別(比如各地區(qū))各年齡段的率Pij,最后對(duì)各地區(qū)計(jì)算各年齡段的加權(quán)算術(shù)平均數(shù)∑qiPij[5]。一般情況下,對(duì)標(biāo)準(zhǔn)人群的選擇會(huì)選擇后兩種,即以各組人群的總和為標(biāo)準(zhǔn)人群計(jì)算直接法標(biāo)準(zhǔn)化率和以具有代表性的全國(guó)人口為標(biāo)準(zhǔn)人群計(jì)算間接法的標(biāo)準(zhǔn)化率,所以本研究以這兩種人群作為標(biāo)準(zhǔn)人群對(duì)率分別進(jìn)行直接標(biāo)準(zhǔn)化法和間接標(biāo)準(zhǔn)化法。

實(shí)例分析和SAS宏實(shí)現(xiàn)

實(shí)例:結(jié)節(jié)病是一種免疫系統(tǒng)疾病,其發(fā)病機(jī)制和病因不明確。文獻(xiàn)報(bào)道結(jié)節(jié)病的發(fā)生和死亡與年齡、性別有關(guān),也表現(xiàn)出地域性差別。某研究者欲了解結(jié)節(jié)病的發(fā)病特征,調(diào)查了2014年的5個(gè)地區(qū)的47780名在職及退休職工,記錄結(jié)節(jié)病患病情況,原始數(shù)據(jù)std.sar形式如表1。

表1 實(shí)例中原始數(shù)據(jù)的形式

*area:1~5代表5個(gè)區(qū);age:1~6代表6個(gè)年齡段;gender:1=男,0=女;outcome:1=患病,0=不患病

1.選擇所有地區(qū)的人口作為標(biāo)準(zhǔn)人群做直接法的標(biāo)準(zhǔn)化率

SAS宏命令如下:

%macro direct_std(data=,outcome=,group=,confounder=,confounder_=);

data standardization;

set &data.;

keep &outcome.&group.&confounder.;

run;/*提取數(shù)據(jù)中有用的信息*/

proc summary data=standardization nway;

class &group.;

var &outcome.;

output out=crude(drop=_:) n=N sum=cases;

run; /*匯總原始數(shù)據(jù)五個(gè)地區(qū)的總?cè)藬?shù)N,發(fā)病人數(shù)cases*/

data crude;

set crude;

crude=cases/n;lower_CI=crude-1.96*sqrt(crude*(1-crude)/n);upper_CI=crude+1.96*sqrt(crude*(1-crude)/n);

run;/*計(jì)算粗率crude及應(yīng)用二項(xiàng)分布的正態(tài)近似法計(jì)算置信區(qū)間[5-7]*/

proc summary data=standardization nway;

class &group.&confounder.;

var &outcome.;

output out=summary(drop=_:) n=N sum=cases;

run; /*匯總原始數(shù)據(jù)各地區(qū)各性別年齡別的人數(shù)N,發(fā)病人數(shù)cases*/

data summary;

set summary;

p=cases/n;

run;/*計(jì)算各地區(qū)各性別年齡別的發(fā)病率p */

proc sort data=summary out=summary;

by &confounder.;

run;

proc sql;

create table summary as select *,sum(n) as totall from summary group by &confounder_.;

quit;/*此命令group by后面的變量間需要逗號(hào)隔開,故而重復(fù)設(shè)置了confounder_宏參數(shù)*/

proc sql;

create table summary as select *,sum(n) as total2 from summary ;

quit;

data summary;

set summary;

ratio=total1/total2;

run;/*計(jì)算以各組人群的總和為標(biāo)準(zhǔn)人群的內(nèi)部構(gòu)成(性別年齡別)的構(gòu)成比ratio */

data summary;

set summary;

rate=p*ratio;

run;

proc summary data=summary nway; class &group.; var rate; output out=adj_rate(drop=_:) sum=adj_rate;

run; /*對(duì)各地區(qū)按照構(gòu)成比ratio為權(quán)重計(jì)算各年齡性別組發(fā)病率p的加權(quán)算術(shù)平均數(shù)adj_rate,即為標(biāo)準(zhǔn)化率*/

data adjust;

merge crude adj_rate;

drop cases crude lower_ci upper_ci;

run;

data adjust;

set adjust;adj_cases=n*adj_rate;adj_lower_CI=adj_rate-1.96*sqrt(adj_rate*(1-adj_rate)/n);adj_upper_CI=adj_rate+1.96*sqrt(adj_rate*(1-adj_rate)/n);run;/*計(jì)算標(biāo)準(zhǔn)化率adj_rate的置信區(qū)間*/

data adjust;

retain area N adj_cases adj_rate adj_lower_CI adj_upper_CI;set adjust;

run;

title “粗率及其置信區(qū)間”;

proc print data=crude;run;

title “標(biāo)準(zhǔn)化率及其置信區(qū)間”;

proc print data=adjust;run;

%mend;

消除年齡和性別的影響計(jì)算各地區(qū)結(jié)節(jié)病標(biāo)準(zhǔn)化患病率的宏參數(shù)設(shè)置如下:

%direct_std(data=std.sar,outcome=outcome,group=%str(area),confounder=%str(age gender),confounder_=%str(age,gender));

結(jié)果輸出為:

所有結(jié)果也可在文件work.crude和work.adjust中查看和導(dǎo)出。如果想消除年齡的的影響計(jì)算各地區(qū)分性別的結(jié)節(jié)病標(biāo)準(zhǔn)化患病率的宏參數(shù)設(shè)置如下:

%direct_std(data=std.sar,outcome=outcome,group=%str(area gender),confounder=%str(age),confounder_=%str(age));

以此類推。

在實(shí)際工作中,有時(shí)收集不到原始數(shù)據(jù)std.sar,

只有匯總數(shù)據(jù)std.sar2,同樣可以計(jì)算標(biāo)準(zhǔn)化率,數(shù)據(jù)形式為:

表2 匯總數(shù)據(jù)的形式

*:不同地區(qū)各年齡性別的總?cè)藬?shù); #不同地區(qū)各年齡性別的患病人數(shù)

SAS宏及宏參數(shù)設(shè)置如下(其中省略部分與上文SAS宏對(duì)應(yīng)位置一致):

%macro direct_std(data=,group=,confounder=,confounder_=,n=,cases=);

data standardization;

set &data.;

keep &group.&confounder.&n.&cases.;

run;

proc summary data=standardization nway;

class &group.;

var &n.;

output out=crude1(drop=_:) sum=n;

run;

proc summary data=standardization nway;

class &group.;

var &cases.;

output out=crude2(drop=_:) sum=cases;

run;

data crude;

merge crude1 crude2;

run;

data crude;set crude;crude=cases/n;lower_CI=crude-1.96*sqrt(crude*(1-crude)/n);upper_CI=crude+1.96*sqrt(crude*(1-crude)/n);run;

data summary;

set standardization;

p=cases/n;

run;

proc sort data=summary out=summary;

by &confounder.;

run;

%mend;

%direct_std(data=std.sar2,group=%str(area),confounder=%str(age gender),confounder_=%str(age,gender),n=n,cases=cases);

2.以全省人口作為標(biāo)準(zhǔn)人群做間接法的標(biāo)準(zhǔn)化率

SAS宏命令及宏參數(shù)設(shè)置如下:

%macro indirect_std(data=,group=,confounder=,n=,cases=,ratio_data=,ratio=);

data standardization;

set &data.;

keep &group.&confounder.&n.&cases.;

run;

proc summary data=standardization nway;

class &group.;

var &n.;

output out=crude1(drop=_:) sum=n;

run;

proc summary data=standardization nway;

class &group.;

var &cases.;

output out=crude2(drop=_:) sum=cases;

run;

data crude;

merge crude1 crude2;

run;

data crude;

set crude;

crude=cases/n;lower_CI=crude-1.96*sqrt(crude*(1-crude)/n);upper_CI=crude+1.96*sqrt(crude*(1-crude)/n);

run;/*以上為計(jì)算粗率及其置信區(qū)間的代碼,與前文一致,不贅述*/

proc sort data=&data.out=standardization; by &confounder.; run;

proc sort data=&ratio_data.out=std; by &confounder.; run;

data summary; merge standardization std; by &confounder.;run;/*合并匯總數(shù)據(jù)與標(biāo)準(zhǔn)人群構(gòu)成比數(shù)據(jù),注意兩個(gè)數(shù)據(jù)相同的變量名設(shè)置要一樣,比如都為age、gender*/

data summary; set summary; rate=&ratio.*&cases./&n.; run;

proc summary data=summary nway;

class &group.;var rate;

output out=adj_rate(drop=_:) sum=adj_rate;

run; /*對(duì)各地區(qū)按照構(gòu)成比ratio為權(quán)重計(jì)算各年齡性別組的加權(quán)算術(shù)平均數(shù)adj_rate,即為標(biāo)準(zhǔn)化率*/

data adjust;

merge crude adj_rate;

drop cases crude lower_ci upper_ci;

run;

data adjust;

set adjust;

adj_cases=n*adj_rate;adj_lower_CI=adj_rate-1.96*sqrt(adj_rate*(1-adj_rate)/n);adj_upper_CI=adj_rate+1.96*sqrt(adj_rate*(1-adj_rate)/n);

run;

data adjust;

retain area N adj_cases adj_rate adj_lower_CI adj_upper_CI;set adjust;

run;

title “粗率及其置信區(qū)間”;

proc print data=crude;run;

title “標(biāo)準(zhǔn)化率及其置信區(qū)間”;

proc print data=adjust;run;

%mend;

%indirect_std(data=std.sar2,group=%str(area),confounder=%str(age gender),n=n,cases=cases,ratio_data=std.ratio,ratio=ratio);

其中,數(shù)據(jù)集std.sar2為匯總數(shù)據(jù)的形式,如果要對(duì)原始數(shù)據(jù)std.sar運(yùn)行此宏,只需對(duì)原始數(shù)據(jù)運(yùn)行如下命令:

proc summary data=std.sar nway;

class area age gender;

var outcome;

output out=std.sar2(drop=_:) n=N sum=cases;

run;

數(shù)據(jù)集std.ratio為全省人群年齡性別構(gòu)成比,數(shù)據(jù)形式如下:

表3 某省人群年齡性別構(gòu)成比

結(jié)果輸出為:

結(jié) 語

率的標(biāo)準(zhǔn)化是在疾病的流行病學(xué)研究中經(jīng)常會(huì)遇到的問題,而大部分教材只介紹了按照公式計(jì)算的方法[5],但在實(shí)際工作中,經(jīng)常會(huì)遇到多層次組群結(jié)構(gòu)的大樣本復(fù)雜數(shù)據(jù),公式的計(jì)算常常會(huì)有較大的困難,常用的數(shù)據(jù)處理軟件也沒有專門的模塊來解決這個(gè)問題。因此,我們通過上述實(shí)例系統(tǒng)的解決了對(duì)率進(jìn)行直接標(biāo)準(zhǔn)化和間接標(biāo)準(zhǔn)化問題,讀者可以根據(jù)實(shí)際情況選擇相應(yīng)的SAS宏,通過宏參數(shù)設(shè)置相應(yīng)的需要比較的組別和需要消除的混雜因素,并且調(diào)整好數(shù)據(jù)形式就可以簡(jiǎn)單、快捷的計(jì)算出標(biāo)準(zhǔn)化率。

猜你喜歡
結(jié)節(jié)病置信區(qū)間參數(shù)設(shè)置
18F-FDG PET/CT在結(jié)節(jié)病診斷中的應(yīng)用價(jià)值
定數(shù)截尾場(chǎng)合三參數(shù)pareto分布參數(shù)的最優(yōu)置信區(qū)間
p-范分布中參數(shù)的置信區(qū)間
多個(gè)偏正態(tài)總體共同位置參數(shù)的Bootstrap置信區(qū)間
結(jié)節(jié)病合并隱球菌病的研究進(jìn)展
列車定位中置信區(qū)間的確定方法
蟻群算法求解TSP中的參數(shù)設(shè)置
皮下結(jié)節(jié)型結(jié)節(jié)病1例
動(dòng)車環(huán)境下U900異頻切換參數(shù)設(shè)置探討
結(jié)節(jié)病診斷方法的研究進(jìn)展
稷山县| 夏河县| 荃湾区| 廊坊市| 高台县| 会东县| 瑞金市| 墨玉县| 祁东县| 两当县| 旌德县| 甘孜县| 丰原市| 江都市| 宁德市| 神农架林区| 保德县| 云霄县| 崇阳县| 来凤县| 高青县| 乐昌市| 宜城市| 上高县| 奉新县| 新巴尔虎左旗| 新野县| 东辽县| 沽源县| 易门县| 玉山县| 乌海市| 长寿区| 中宁县| 原阳县| 宣威市| 深水埗区| 林口县| 界首市| 巴林右旗| 图们市|