99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時代SPSS操作:輕松實現(xiàn)1:1傾向性評分匹配(PSM)
SPSS操作:輕松實現(xiàn)1:1傾向性評分匹配(PSM)
2017-07-12
收藏

SPSS操作:輕松實現(xiàn)1:1傾向性評分匹配(PSM)

談起臨床研究,如何設(shè)立一個靠譜的對照,有時候成為整個研究成敗的關(guān)鍵。對照設(shè)立的一個非常重要的原則就是可比性,簡單說就是對照組除了研究因素外,其他的因素應(yīng)該盡可能和試驗組保持一致,這里就不得不提隨機對照試驗。眾所周知,隨機對照試驗中研究對象是否接受干預(yù)是隨機的,這就保證了組間其他混雜因素均衡可比。

但是有些時候并不能實現(xiàn)隨機化,比如說觀察性研究。這時候傾向性評分匹配(propensity score matching, PSM)可以有效降低混雜偏倚,并且在整個研究設(shè)計階段,得到類似隨機對照研究的效果,想看實例趕快戳:隊列研究常用的傾向評分,到底是個啥?。與常規(guī)匹配相比,傾向性評分匹配能考慮更多匹配因素,提高研究效率。

這么“高大上”的傾向性評分匹配,是不是超級難學(xué)?錯矣!今天就帶大家輕松搞定1:1傾向性評分匹配。作為“稀罕”大招,并不是在所有版本的SPSS都可以實現(xiàn)傾向性評分匹配,僅在SPSS22及以上自帶簡易版PSM,對于其他版本或者想要體驗完整版功能,就不得不去安裝相應(yīng)的軟件(R軟件、SPSS R插件、PS matching插件。。。超級難安裝!那是需要運氣和耐心的!感興趣的小伙伴可以私聊~~~)。

本次使用SPSS22為大家演示1:1傾向性評分匹配。

一、問題與數(shù)據(jù)

某研究小白想搞明白吸煙和高血壓之間的關(guān)系,準備利用某項調(diào)查的資料進一步隨訪研究吸煙和高血壓的關(guān)聯(lián),該項研究包括233名吸煙者,949 名不吸煙者。如果全部隨訪,研究小白感覺鴨梨山大,所以打算從中選取部分可比的個體進行隨訪。

這兩組人群一些主要特征的分布存在顯著差異(見表1),現(xiàn)準備采用PS最鄰近匹配法選取可比的個體作為隨訪對象。

表1. 兩組基線情況比較(匹配前)

二、SPSS分析方法

1. 數(shù)據(jù)錄入

(1) 變量視圖

(2) 數(shù)據(jù)視圖

2. 傾向性評分匹配

選擇Data→Propensity Score Matching,就進入傾向性評分匹配的主對話框。

將分組變量Smoke放入Group Indicator中(一般處理組賦值為“1”,對照組賦值為“0”);將需要匹配的變量放入Predictors中;Name for Propensity Variable為傾向性評分設(shè)定一個變量名PS;

Match Tolerance用來設(shè)置傾向性評分匹配標準(學(xué)名“卡鉗值”),這里設(shè)定為0.02,即吸煙組和不吸煙組按照傾向性評分±0.02進行1:1匹配(當然,卡鉗值設(shè)置的越小,吸煙組和不吸煙組匹配后可比性越好,但是凡事有個度,太小的卡鉗值也意味著匹配難度會加大,成功匹配的對子數(shù)會減少,需要綜合考慮~~~);

Case ID確定觀測對象的ID;Match ID Variable Name設(shè)定一個變量,用來明確對照組中匹配成功的Match_ID;Output Dataset Name這里把匹配的觀測對象單獨輸出一個數(shù)據(jù)集Match。


3. Options設(shè)置

Variable for Number of Eligible Cases設(shè)定一個變量,用來明確病例組中某一個觀測對象,在對照組中有多少個觀測對象滿足與其匹配的條件,比如說病例組有一個觀測對象PS=0.611,對照組可能有一個0.610,一個0.612。

Sampling默認為不放回抽樣。

Give priority to exact matches 優(yōu)先考慮精確匹配,也就說病例組有一個觀測對象PS=0.611,對照組也應(yīng)該找到一個0.611。

Maximize execution performance 執(zhí)行最優(yōu)化操作,即系統(tǒng)會綜合考慮精確匹配和模糊匹配(基于設(shè)定的卡鉗值范圍內(nèi)匹配),系統(tǒng)默認勾選。

Randomize case order when drawing matches整個匹配過程中,如果對照組有多個滿足匹配條件的觀測對象,那么SPSS會默認隨機將其與病例組觀測對象匹配。但是因為SPSS默認每次操作給對照組的隨機數(shù)字不同,所以如果不特殊設(shè)定,每次實際匹配成功的對子是不一樣的,也就說這一次對照組A匹配給病例組B,下一次就可能匹配給病例組C。所以需要自行設(shè)置,并且在Random Number Seed設(shè)定一個隨機數(shù)種子,確保匹配過程可以重復(fù)。

三、結(jié)果解讀

1. 匹配結(jié)果

表2以吸煙(1=吸煙;0=不吸煙)為因變量,以需要調(diào)整的變量為自變量構(gòu)建logistic回歸模型(表2),求出每個研究對象的PS值。

表2. logistic回歸模型

表3顯示,精確匹配45對,模糊匹配114對,共計匹配成功159對。

表3. 匹配結(jié)果


表4主要是匹配過程。首先是精確匹配(即PS完全一致),匹配33663次,大約1%匹配成功;其次在精確匹配成功的前提下,進行PS的模糊匹配(PS±0.02,即最開始設(shè)定的卡鉗值為0.02),匹配33618次,大約3.3%匹配成功。

表4.  匹配容許誤差


2. 匹配后數(shù)據(jù)庫

輸出的數(shù)據(jù)集Match中出現(xiàn)之前設(shè)定的幾個新變量:E_case表示對照組中有幾個符合匹配條件的觀測對象(如圖,吸煙組ID=2,有2個對照組觀測對象符合匹配條件);PS是基于logistic回歸模型計算出的傾向性評分;match_id表示匹配成功的ID。


3. 數(shù)據(jù)庫整理

A.  篩選匹配成功的對子:選擇Data→Select Cases→If condition is satisfied:設(shè)定match_id≥1,篩選出匹配成功的對子→Output中輸出新的數(shù)據(jù)集Analysis。


B.  確定匹配成功標識:match_id為吸煙組和不吸煙組相互匹配成功的ID,這里將不吸煙組match_id變量轉(zhuǎn)換為ID變量,這時候相同的match_id即為匹配成功的對子。具體操作:將Analysis數(shù)據(jù)集中,不吸煙組match_id替換成ID編號:Transform→Compute Variable→if smoke=0, match_id=ID→OK


C.  選擇Data→Sort cases→按照匹配標識match_id排序(相同的match_id即為匹配成功的對子)→OK→Save(你的鼠標手一定要點保存?。。。?

傾向性評分匹配就搞定了,再來看看匹配情況。表5顯示,原吸煙組233例,最后共有159例匹配成功(這次我們限定PS≤0.02,但可根據(jù)實際情況選擇合適的限定,增加匹配成功數(shù)?。?,各匹配因素在兩組間都均衡可比。

表5. 兩組基線情況比較(匹配后)

四、總結(jié)和拓展

PSM一般分為三種類型:

1、PS最鄰近匹配:是PSM最基本的方法,即直接從對照中尋找一個或多個與處理組個體PS值相同或相近的個體作為配比對象。本次我們就采用的是這個方法。

2、分層PSM:PS最鄰近匹配盡管可以使協(xié)變量總體趨于平衡,但不能保證每個協(xié)變量分布完全一致。可以根據(jù)某個重要變量(如性別)分層后,分別對每層人群進行PS最鄰近匹配,然后再將配比人群合并,這樣就可以保證該重要變量在組間分布完全一致。

3、與馬氏配比結(jié)合的PSM:PSM與馬氏配比結(jié)合后可以增加個別重點變量平衡能力,實現(xiàn)過程比較復(fù)雜。

對于1:m PS匹配和與馬氏配比結(jié)合的PSM,目前SPSS22及以上版本自帶的PSM并不能實現(xiàn),后面會介紹基于SAS軟件復(fù)雜傾向性評分匹配,敬請期待~~~


想深入學(xué)習(xí)統(tǒng)計學(xué)知識,為數(shù)據(jù)分析筑牢根基?那快來看看統(tǒng)計學(xué)極簡入門課程!

學(xué)習(xí)入口:https://edu.cda.cn/goods/show/3386?targetId=5647&preview=0

課程由專業(yè)數(shù)據(jù)分析師打造,完全免費,60 天有效期且隨到隨學(xué)。它用獨特思路講重點,從數(shù)據(jù)種類到統(tǒng)計學(xué)體系,內(nèi)容通俗易懂。學(xué)完它,能讓你輕松入門統(tǒng)計學(xué),還能提升數(shù)據(jù)分析能力。趕緊點擊鏈接開啟學(xué)習(xí),讓自己在數(shù)據(jù)領(lǐng)域更上一層樓!

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }