天天看點

r語言 回歸分析 分類變量_R語言下的PSM分析分類變量處理與分析步驟

最近學習了PSM,我選擇了用R去跑PSM,在這過程中遇到了許多問題,最後也都一一解決了,寫下這個也是希望大家在遇到相同問題的時候能夠得到幫助和啟發,别的應該不會遇到太難的問題了哈哈。最近我也沒做什麼,錄資料,或者說還在調整心态,最近遇到的事情也比較多,又或者說最近的心态比較亂,晚上也睡不好導緻白天也比較煩躁,是以可能還是需要一段時間去好好調整,是以最近更新的也比較慢。不過還是會堅持的。

問題闡述:

1.   對于PSM分析,首先你要做的是将所有的協變量變成二分類變量。舉個例子,比如你要比較不同處理方式的患者(處理方式A和B)的生存OS,由于是回顧性研究,是以會導緻病人的基線水準不一緻,是以需要選用PSM處理患者的基線水準,如性别,年齡,BMI,有無糖尿病等基礎疾病,生化名額等,那麼你就要将生化名額正常與否改成分類變量0和1,同樣的,有無基礎疾病也是0和1,這是做PSM的第一步,當然,年齡不需要做修改,性别還是要改成二分類變量的。

2.   對于惡性良性腫瘤患者的一些名額,比如癌症的分期,TNM分期,分化程度,他不能簡單的視為二分類變量,這個時候怎麼處理呢?一方面,你可以将T0,T1,T2,T3,T4這麼多分成二分類,如T0和T1為0,T2,T3,T4為1,這麼處理是可以的,但是呢如果一定要準确分類每一個類型呢,這時候就要給這些值做一些處理,下面是我的代碼。

library(MatchIt)  #加載MatchIt程式包

library(foreign)  #加載foreign程式包

library(tableone)

library(nonrandom)

mydata1=read.csv("PSM-4-2.csv")  #讀取資料到mydata

names(mydata1)  #檢視資料變量名

mydata1$AR=factor(mydata1$AR)

mydata1$RAS=factor(mydata1$RAS)

mydata1$number=factor(mydata1$number)

mydata1$LOBE=factor(mydata1$LOBE)

mydata1$location=factor(mydata1$location)

mydata1$DFS=factor(mydata1$DFS)

mydata1$CEA=factor(mydata1$CEA)

mydata1$size=factor(mydata1$size)

mydata1$N=factor(mydata1$N)

View(mydata1)

stable print(stable,showAllLevels = TRUE)

m.out = matchit(LOBE~SIZEr+NUMBER,data = mydata1, method ="nearest",ratio = 1)

#比對過程,method包括"exact" (exactmatching), "full" (full matching), "genetic" (geneticmatching), "nearest" (nearest neighbor matching), "optimal"(optimal matching), "subclass" (subclassification) are available.預設為"nearest".

#ratio可設定比對比例;

summary(m.out)  #檢視比對情況

plot(m.out, type ="jitter")  #檢視比對前後貨币評分分布圖

m.data1 write.csv(m.data1, file="B:/psm19-4-2(1-5)-2.csv")  #導出比對資料成CSV格式,供後續分析使用.

按照這樣的格式,你就可以完成分類變量的比對,否則他會以為你是數值型,你就比較難的能比對到想要的患者。明天還要考試,自然辯證法,一臉懵逼,現在準備回去準備準備,畢竟明天到考場什麼都寫不出來總不行吧!禮拜一踢足球摔了一跤,真的慘,走路到現在還疼,但還是要多運動多玩玩,不能每天都悶着不出去活動。

之前介紹了非常厲害的一個科研達人,今天介紹一下NB白富美,NB白富美現在在武漢開會,是一名内科醫生,這名内科醫生醫術怎麼樣我不知道,王者榮耀還是蠻會玩的,可惜不知道她是專一還是能力有限,每次隻玩一個英雄,不過水準要比YJ高一個level,非常不錯,希望今後能看到她使用不同的英雄,在戰場上飛馳。至于我,好像好久沒玩了。。。

r語言 回歸分析 分類變量_R語言下的PSM分析分類變量處理與分析步驟

繼續閱讀