R數(shù)據(jù)分析:傾向性評(píng)分匹配實(shí)例操作

傾向性評(píng)分匹配是一種控制混雜的技巧班利,本文主要寫操作,具體原理大家自己摸索哈犀变。

propensity score matching (PSM) is a “statistical matching technique that attempts to estimate the effect of a treatment, policy, or other intervention by accounting for the covariates that predict receiving the treatment”.

實(shí)例描述

我現(xiàn)在想要研究某種疾病病人的健康相關(guān)生活質(zhì)量是不是比常人高妹孙,我有病人的數(shù)據(jù),也有常人的數(shù)據(jù)弛作,但是他們無論是人口統(tǒng)計(jì)學(xué)還是患病情況都不可比涕蜂,所以我很難得出疾病是不是會(huì)影響健康相關(guān)生活質(zhì)量,或者說我其實(shí)很難說明兩組人群健康相關(guān)生活質(zhì)量的差異是由疾病引起的映琳。

這個(gè)時(shí)候我們就可以給每個(gè)組計(jì)算其患病的傾向分机隙,把兩組人中傾向分相同的匹配在一起我們就可以說明問題了蜘拉。原理請(qǐng)參見相關(guān)文獻(xiàn)。

所以傾向性評(píng)分解決的問題是協(xié)變量的可比性問題有鹿,為了更好地說明此方法的強(qiáng)大旭旭,我們依然進(jìn)行模擬數(shù)據(jù)的前后比較:

數(shù)據(jù)模擬

我先模擬一個(gè)病人的數(shù)據(jù)集df.patients:

df.patients <- r_data_frame(n = 250, 
                            age(x = 30:78, 
                                name = 'Age'), 
                            sex(x = c("Male", "Female"), 
                                prob = c(0.70, 0.30), 
                                name = "Sex"))
df.patients$Sample <- as.factor('Patients')

df.patients這個(gè)數(shù)據(jù)集中有250個(gè)數(shù)據(jù),有年齡葱跋,性別持寄,兩個(gè)變量。

再模擬普通人群的數(shù)據(jù)集df.population:

df.population <- r_data_frame(n = 1000, 
                              age(x = 18:80, 
                                  name = 'Age'), 
                              sex(x = c("Male", "Female"), 
                                  prob = c(0.50, 0.50), 
                                  name = "Sex"))
df.population$Sample <- as.factor('Population')

df.population這個(gè)數(shù)據(jù)集中有1000個(gè)數(shù)據(jù)娱俺,也有年齡和性別兩個(gè)變量稍味。

然后把數(shù)據(jù)合并為一個(gè)大數(shù)據(jù)集,并且給他加上distress這個(gè)列荠卷,此時(shí)我還沒有進(jìn)行匹配:

mydata <- rbind(df.patients, df.population)
mydata$Group <- as.logical(mydata$Sample == 'Patients')
mydata$Distress <- ifelse(mydata$Sex == 'Male', 
                          age(nrow(mydata), x = 0:42),
                          age(nrow(mydata), x = 15:42))

此時(shí)我們把兩組未匹配時(shí)的變量做一下比較:

table1 <- CreateTableOne(vars = c('Age', 'Sex', 'Distress'), 
                         data = mydata, 
                         factorVars = 'Sex', 
                         strata = 'Sample')
table1 <- print(table1, 
                printToggle = FALSE, 
                noSpaces = TRUE)
kable(table1[,1:3], 
             format = "simple",
      align = 'c', 
      caption = 'Table 1: 匹配之前先來比一比')
R數(shù)據(jù)分析:傾向性評(píng)分匹配實(shí)例操作

可以發(fā)現(xiàn)模庐,未匹配時(shí)兩組性別是有差異的。

接下來我們對(duì)數(shù)據(jù)進(jìn)行傾向性評(píng)分匹配:

match.it <- matchit(Group ~ Age + Sex, data = mydata, method="nearest", ratio=1)
a <- summary(match.it)

其實(shí)做傾向性匹配的代碼就是上面的第一行油宜,非常簡單掂碱,在這行代碼中matchit函數(shù)默認(rèn)計(jì)算距離的方法就是logit,也就是計(jì)算傾向分時(shí)使用的邏輯回歸慎冤,所以matchit函數(shù)的distance參數(shù)我們不用管:

This argument specifies the method used to estimate the distance measure. The default is logistic regression, "logit". A variety of other methods are available.

運(yùn)行上面的代碼我們就匹配好了疼燥,我們想看看匹配效果:

kable(a$sum.matched[,c(1,2,3)], digits = 2, align = 'c', 
      caption = 'Table 3: 匹配完了再瞅瞅')
R數(shù)據(jù)分析:傾向性評(píng)分匹配實(shí)例操作

看到?jīng)]我們匹配之后兩組誤差小于0.01哇,很棒蚁堤!

我們甚至還可以畫出來傾向分的分布圖:

plot(match.it, type = 'jitter', interactive = FALSE)
R數(shù)據(jù)分析:傾向性評(píng)分匹配實(shí)例操作

最后一步就是把我們匹配好的數(shù)據(jù)存下來做后續(xù)的分析醉者,因?yàn)槲覀儾∪私M只有250個(gè)人,1:1匹配披诗,那么總的數(shù)據(jù)集就是500人:

df.match <- match.data(match.it)[1:ncol(mydata)]

在匹配好的數(shù)據(jù)中我們?cè)僮鲆淮巫畛醯姆治觯?/p>

table4 <- CreateTableOne(vars = c('Age', 'Sex', 'Distress'), 
                         data = df.match, 
                         factorVars = 'Sex', 
                         strata = 'Sample')
table4 <- print(table4, 
                printToggle = FALSE, 
                noSpaces = TRUE)
kable(table4[,1:3],  
      align = 'c', 
      caption = 'Table 4: 匹配之后再比比')

R數(shù)據(jù)分析:傾向性評(píng)分匹配實(shí)例操作

看到?jīng)]湃交,之前未匹配時(shí)有顯著差異的性別變量已經(jīng)沒有差異啦,也就是說我們兩組間除過疾病不同其他的協(xié)變量均是可比的藤巢,這么樣,如果兩組之間的健康相關(guān)生活質(zhì)量在匹配后的數(shù)據(jù)集中再有差異我們就可以放心地說這個(gè)差異是由疾病造成的息罗。

小結(jié)

今天給大做了一個(gè)傾向性評(píng)分匹配掂咒,感謝大家耐心看完,自己的文章都寫得很細(xì)迈喉,代碼都在原文中绍刮,希望大家都可以自己做一做,也歡迎大家的意見和建議挨摸。

如果你是一個(gè)大學(xué)本科生或研究生孩革,如果你正在因?yàn)槟愕慕y(tǒng)計(jì)作業(yè)、數(shù)據(jù)分析得运、論文膝蜈、報(bào)告锅移、考試等發(fā)愁,如果你在使用SPSS,R饱搏,Python非剃,Mplus, Excel中遇到任何問題,都可以聯(lián)系我推沸。因?yàn)槲铱梢越o您提供最好的备绽,最詳細(xì)和耐心的數(shù)據(jù)分析服務(wù)。

如果你對(duì)Z檢驗(yàn)鬓催,t檢驗(yàn)肺素,方差分析,多元方差分析宇驾,回歸倍靡,卡方檢驗(yàn),相關(guān)飞苇,多水平模型菌瘫,結(jié)構(gòu)方程模型,中介調(diào)節(jié)等等統(tǒng)計(jì)技巧有任何問題布卡,請(qǐng)私信我雨让,獲取最詳細(xì)和耐心的指導(dǎo)。

If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.

Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??

Then Contact Me. I will solve your Problem...

加油吧忿等,打工人栖忠!

往期內(nèi)容:

R數(shù)據(jù)分析:傾向性評(píng)分匹配完整實(shí)例(R實(shí)現(xiàn))

R數(shù)據(jù)分析:探索性因子分析

R數(shù)據(jù)分析:ROC曲線與模型評(píng)價(jià)實(shí)例

R數(shù)據(jù)分析:如何用R做驗(yàn)證性因子分析及畫圖,實(shí)例操練

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贸街,一起剝皮案震驚了整個(gè)濱河市庵寞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌薛匪,老刑警劉巖捐川,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逸尖,居然都是意外死亡古沥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門娇跟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岩齿,“玉大人,你說我怎么就攤上這事苞俘№锷颍” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵吃谣,是天一觀的道長乞封。 經(jīng)常有香客問我做裙,道長,這世上最難降的妖魔是什么歌亲? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任礼旅,我火速辦了婚禮倔既,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己芒珠,他們只是感情好饰抒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布雁乡。 她就那樣靜靜地躺著姑荷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪飞蚓。 梳的紋絲不亂的頭發(fā)上滤港,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音趴拧,去河邊找鬼溅漾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛著榴,可吹牛的內(nèi)容都是我干的添履。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼脑又,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼暮胧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起问麸,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤往衷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后严卖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體席舍,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年哮笆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俺亮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疟呐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出东且,到底是詐尸還是另有隱情启具,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布珊泳,位于F島的核電站鲁冯,受9級(jí)特大地震影響拷沸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜薯演,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一撞芍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧跨扮,春花似錦序无、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至璃氢,卻和暖如春哟玷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背一也。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國打工巢寡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人椰苟。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓抑月,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尊剔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子爪幻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容