這一篇其實一個多月前就該發的,但時間一拖自己也熊熊忘了。剛剛才想到所以稍微寫一下發表。
我過去這一年來在北卡大護理系接到最主要的統計諮詢案子是一個在護理系念了八年的超級大老級博士生,我們都叫她 Sue,老家在田納西。她本身就已經很有年紀了,可能比我媽還老,女兒好像也長大嫁人了。我剛進到護理系工作時,就曾被一個當年也在護理系念博班的學姐,同時也是她的「同梯」,帶去她家吃飯。結果現在那個學姐都回北醫當 faculty 好幾年了,但 Sue 卻還一直陷在自己論文的無底深淵裡面。
Sue 的研究是有關於人體疼痛後的反應,而資料是她自己一個一個慢慢找自願者接受測試收集得來的,樣本大概才六十幾人,但變數超多,所以好像收了好幾年才收完。收完後我光是幫她清資料就花了個把月,接著幫她架模式,中間也是折騰很久才弄完。結果在去年十月還是十一月的時候,她就偷偷地完成了 final defense 了。她口試這件事護理系聽說沒幾個人知道,連我跟她那麼熟的人都是之後才曉得。
但事情就這樣結束了嗎?當然不是,否則就不會有這篇文章了。在她號稱非常機密的 final defense 結束後,居然有口試委員不肯簽名,而有些已經簽名的口試委員則要求她要改善統計模式。OK,於是我就教她怎樣做 mixed model 的模式鑑定。結果做出來後,果然發現原先使用的模式違反了一些模式假設。而要解決的最簡單的方法就是去做 log transformation。
經過 log transformation 之後,模式果然好看了一點,雖然還不是相當完美。不過實證研究的統計分析本來就很難做出跟教科書裡面的範例一樣漂亮的結果,所以我並不意外。不過那段時間那些口試委員意見還是很多,所以 Sue 花了很多時間改模式。但改到後來,我發現她的模式已經很難拿去解釋她論文裡面的 research questions。我一直提醒她,過度配飾統計模式的結果,就已經不是在「用」統計,而是在「玩」統計了。而且,她現在要拿的是「護理博士」,不是「統計博士」,把統計分析的部分弄到那麼細那麼複雜,對她真正應該著重於「護理研究分析」上沒太大幫助。不過她還是沒有辦法抵抗口試委員的要求,畢竟我沒有辦法代替她的口試委員簽名,所以她只能聽口試委員的。不過後來我看有些口試委員要她補做的統計分析居然是錯誤地使用統計工具在不適用的資料上,當然程式還是會幫你跑出一堆報表出來,但在我的眼中都是無用的啊!
Whatever,她持續努力了一個多月,本來打算在去年十二月畢業的她,結果得拖到今年五月,這意味著她還要多付一個學期的學費,就只為了改論文。總之,當她終於把所有的模式作 log transformation 後,新的問題出現了。
在她博士論文裡面許多命題都是建立在實驗組和對照組的比較上,在一開始沒有經過變數變換的模式裡面,只需要輕鬆地在 SAS 的 PROC MIXED 程序裡面加上 contrast statement,並把 group 1 -1 這個比較係數帶入即可。這樣 SAS 會幫忙算出 E(Y_group1)-E(Y_group0) 的統計檢定。若用 estimate statement 則連組間比較的結果都算出來。但經過變數變換後,同一個 contrast statement 或 estimate statement 算出來的結果不再是 E(Y_group1)-E(Y_group2) 的假設檢定,而變成:
E(log(Y-group1))-E(log(Y_group0))
如果還記得這種簡單的運算的人應該知道,上式並不等於
E(log(Y_group1 - Y_group0))
而是
E(log(Y_group1/Y_group0))
白話之,就是 log(A)-log(B) 不等於 log(A-B) 而是等於 log(A/B)。因此,Sue 想要算出「組間差異值」(即 Y_group1 減 Y_group0)的命題是完全沒有辦法從這個經過 log transformation 後的模式解出。
針對這個問題,我和小老闆 Todd 討論之後得出來一個稍微可行的替代方案來解決這類問題。
在使用任何變數變換過後的統計模式做組間差異檢定,仍舊用 group 1 -1 這個比較係數帶入 SAS 運算,之後得到 E(log(Y_group1))-log(Y_group0))=E(log(Y_group1/Y_group0))=M 的統計檢定值。如果 p-value 小於顯著水準時,則可以下一個結論:Y_group1 的期望值顯著地高於 Y_group0 期望值的 M 倍。之後再用兩個 estimate statement 算出 E(log(Y_group1)) 和 E(log(Y_group0)) 兩個點估計量。假設分別是 A 和 B,則 Y_group1 減去 Y_group0 便是 Exp(A)-Exp(B)。但這個值並沒有辦法直接求得其統計量和 p-value,所以無法下結論說 Y_group1 是顯著地大於 Y_group0 多少。但由於之前已經下了「Y_group1 的期望值顯著地高於 Y_group0 期望值的 M 倍」的結論,因此也可以引伸出說 Y 在兩組間是有差距的(但沒有統計量和 p-value 輔助證實)。在製作表格方面,也要拆成兩個表格各自表述。
這是個相當特殊的案例,在此分享我們後來所使用的折衷方法給大家參考。
Recommend to Front page





功德無量啊
阿彌陀佛...
:P
這樣就得到A vs B的差異嗎? 還是要設dummy variable才可以? 請問您這篇有沒有參考什麼文獻呢?
急~
Y是發生event(1,0),C是另一個藥(1,0).請問用standardized logit coefficients將A,B的beta除以各別報表裡的SE,數字絕對值大表示y越重要(是這樣做嬤), 但仍不知這兩者有無差異呢? 而A,B藥非互斥, 個人可能同時用,這樣設dummy 就不適合了嗎? 請順便回信箱好嗎?非常謝謝然後以x=0為reference再跑OR, 但若有意義的話, 怎麼知道是x裡哪一個才會增加風險呢? 可以做事後比較嗎? 回到上一次問題, standardized estimate不是在比較不同Xi對y的影響嗎? 所以我想到這種做法看A or B對Y的影響, 但困擾的是drug A,B的單位是暴露有無, 這樣表示單位相同能用standardized estimate嗎? 謝謝!!
你什麼時候變正咩了...
:P
很羨慕啊
我只收過一堆色情簡訊而已
快要碩士論文口試了!
正要找書中. 請問照我這樣設計, 看x=1(A1B0)及x=2(A0B1)的OR誰大, 就可以回答這兩者藥有無差異嗎? 還是他們都以x=0為reference, 不能直接這樣比? 本來我假說是寫 AB藥對event risk 有無差異, 後來才想到寫錯, 原本式子是各以A=0, B=0 為reference, 所以只能設假說: 有用A (B)比沒用A(B)的風險無差異.就不能做comparative effectiveness study, 謝謝!是否把它轉換為
A B C P
LAIA 1 0 1 0
ILI 0 1 1 0
而ABCP就是我另外設一個x, 所以proc phreg; class x; model time*censor(0)=x; contrast 'pairwise' x 1 0 0 -1, x 1 0 -1 0, x 1 -1 0 0, x 0 1 -1 0,
x 0 -1 0 1 / estimate=exp; run;
因為我是用conditional logistic regression, not proc logistic;, 所以class, expb 沒有這個指令該怎麼辦呢?
Comment Permissions: Allow commenting