2009年8月8日

[轉貼-科景]醫學:幽靈寫手:生醫論文背後的利益結構

[Aug 08, 2009]

醫學:幽靈寫手:生醫論文背後的利益結構
(http://www.sciscape.org/news_detail.php?news_id=2454)

編輯 六百 報導

經過超過半年的調查,最近公開的法院文件揭露了美國惠氏 (Wyeth) 藥廠炮製論文以支持其荷爾蒙替代療法的手法。至少二十六篇相關論文係由惠氏主導寫成,且這樣的角色並未在論文中詳實揭露。相關人士目前依舊否認這些論文在科學上有任何蓄意的造假,但這種隱藏的利益關係已經對科學家的互信以及科學論文對大眾的威信造成相當的衝擊。

事件的主角是惠氏藥廠的女性荷爾蒙替代療法藥物,商品名為 Premarin 與 Prempro. 此藥物在 2001 年為惠氏帶來二十億美元以上的進帳,可說是金雞母產品。然而在 2002 年,美國聯邦政府對其安全性進行了大規模的研究以後發現此藥物會顯著增加其使用者罹患乳癌與失智症的機率。

由於聯邦研究結果與過去學術論文結論的衝突,甚至聯邦研究結果發表之後,依舊有重要的學術論文主張相反的結論,因而引起了國會對於這些論文公正性的注意。雖然關於藥廠操弄學術論文的傳聞雖然由來已久,而對於此一案例,則直到 2008 年底,美國聯邦參議員 Charles E. Grassley 取得惠氏藥廠相關內部文件並正式展開國會調查以後才漸漸明朗。

本次公開的法院文件系由控告惠氏藥廠的律師提供,並當庭在 PLoS Medicine 以及紐約時報的要求下公開予大眾。根據這份資料,幽靈寫手牽涉的利益結構十分龐大。僅僅是 Premarin 與 Prempro 方面就至少有二十六篇論文與幽靈寫手有關,相關資料更暗示了惠氏藥廠的其他產品甚是是其他藥廠的產品都牽涉其中。

這些幽靈論文多是 review article, 也就是並非第一手研究結果,而是彙整現有論文資料,對特定主題作出回顧與評估的論文。幽靈寫手炮製論文的流程大致是這樣:
首先由惠氏藥廠以及受雇的 DesignWrite 公司構思該篇論文想要傳達的主要訊息。然後由 DesignWrite 寫出大綱。接著惠氏與 DesignWrite 重新審閱修改大綱以後,就開始尋找願意為此論文背書的專家作為掛名作者。其後論文會由 DesignWrite 寫出,參酌惠氏與掛名作者的修改意見修改完畢以後投稿至不知情的期刊。經過學界標準的同儕審閱程序以後,修改意見也是交由 DesignWrite 主筆修改。最後刊出的論文並沒有揭露惠氏藥廠在開始撰寫這篇論文以及提供經濟援助方面扮演的角色。

參與幽靈寫手的調查的紐約州西奈山醫學院 (Mount Sinai School of Medicine in New York) 的助理教授 Joseph S. Ross 博士對紐約時報形容此事件:"就像是棒球界的類固醇。你不知道誰有用藥誰又沒有,你也不知到哪篇論文背景不乾淨哪篇沒問題。"

和純學術論文不同,臨床醫師經常透過閱讀這類醫學論文來獲得最新的醫療技術知識,因此這些論文很可能足以影響醫師在選擇療法/藥物時的判斷,卻不知道自己已經受到了藥廠的操弄。

惠氏藥廠的發言人指出藥廠雇用的醫學寫作人員協助科學家撰寫論文草稿是十分正常的事情。然而,根據此自揭露的資料中的以下案例,受雇寫作人員參與的程度顯然不只是 "協助" 而以:
2003 年,DesignWrite 的員工寫了一篇長達十四頁的論文 "大綱",作者為 "待定"。同年七月,這篇大綱被送到紐澤西州 Robert Wood Johnson 醫學院的婦產科學教授 Gloria Bachmann 博士手中。Bachmann 博士在回覆的電子郵件中盛讚 "大綱極佳,跟寫好了一樣" (Outline is excellent as written)。同年九月,DesignWrite 將初稿以電子郵件寄給 Bachmann 博士,他同樣盛讚該稿件極佳,並表示自己只認為有一處需要修改。該論文於 2005 年已幾乎是草稿原封不動的型式刊登於 The Journal of Reproductive Medicine, Bachmann 博士名列第一作者。在該論文的致謝中對數名醫學寫手提供的 "編輯協助" 表示感謝,但並未提到這些人是 DesignWrite 的員工,而惠氏藥廠為了這篇論文支付 DesignWrite 兩萬五千美金的報酬。

Bachmann 博士於訪問中對紐約時報表示她確實認同該論文反映了他的看法。她也強調電子郵件的通聯紀錄不足以顯現她透過電話以及面對面討論等型式對該論文作出的貢獻。

惠氏的發言人 Doug Petkus 則指出該論文立論在科學上並無瑕疵,且通過了學界標準的同儕審閱。代表惠氏的律師 Stephen Urbanczyk 也強調從 2006 年開始惠氏的新政策要求作者必須參與論文的早期規劃,並且在最終發表的論文中揭露惠氏提供的經濟援助或是論文寫作公司提供的寫作協助。

DesignWrite 的總經理 Michael Platt 則回應紐約時報的詢問表示:"Designwrite 不曾,亦不會參與任何論文的發表,除非它以現有資料為基礎下對該論文的科學正確性有著完全的信心"。

為了因應幽靈寫手的問題,越來越多期刊要求投稿時列出每一位作者對該論文的詳細貢獻內容。但這樣的作法尚未成為學界標準,也使得幽靈論文繼續有著存在的空間。

參考來源:


2009年7月19日

使用SAS 9.2 繪製ROC曲線和比較


在2008年4月的時候,曾經寫過一篇繪製ROC曲線和比較兩條ROC曲線下面積的小文章,這篇是以MACRO來畫圖和比較,而在新版的SAS 9.2中已經可以於PROC LOGISTICS直接繪製高品質的ROC曲線(Receiver Operating Characteristic Curves, ROC Curves)。

在SAS 9.2中ODS GRAPHICS支援的程序增加許多,其中也包括PROC LOGISTICS。

先產生一筆虛擬的資料 data Age_data;
input disease age bw@@;
datalines;
0 50 65  0 39 61  0 21 70  0 61 67
0 30 55  0 35 63  0 25 52  0 41 66
0 43 52  0 36 54  0 37 46  0 25 61
0 41 53  0 62 55  0 28 70  0 33 68
1 52 45  1 49 61  1 47 42  1 62 31
1 55 67  1 70 61  1 75 55  1 77 52
1 81 68  1 64 53  1 62 41  1 39 57
1 61 51  1 61 55  1 57 49  1 79 67
;
run;


接下來就直接套用繪製的ROC曲線的語法 ods graphics on;
proc logistic data=age_data plots(only)=(roc) rocoptions(id=prob) ;
model disease (event='1')=age;
run;
ods graphics off;


ods graphics on為宣告要繪製ods graphics的圖,而ods graphics off宣告結束,幾乎ods系列的語法都是類似的語法。
plots(only)=(roc):在proc logistic程序中,新增了幾個選項,plots為宣告要繪製統計圖,括號中的only為要求SAS只要畫出所需的圖就好,而在後面的【 (roc) 】和SAS說我們需要的圖為ROC曲線。
rocoptions(id=prob)表示在圖形上的點要放哪些資訊,目前有兩種可以選擇,【prob】為predicted probability ,而【obs】為observation number。
這幾個簡單的指令便可畫出高品質的ROC曲線。 而且還順便秀出AUC(Area Under Curve)的值。


ROCCurve32 

如果在model後面多放一個變項(BW),則畫出此模型(age和bw的模型)的ROC曲線。 ods graphics on;
proc logistic data=age_data plots(only)=(roc) rocoptions( id=prob) ;
model disease (event='1')=age bw;
run;
ods graphics off;

此模型的ROC曲線為下圖:

ROCCurve41

不過也許大家比較想看到的是,單圖age或bw的圖,或是一張圖裡面同時有age和bw「個別」的ROC曲線,而不是模型的結果。

ods graphics on;
proc logistic data=age_data plots(only)=(roc) rocoptions( id=prob) ;
model disease (event='1')=age bw;
roc '年齡' age;
roc '體重' bw;
run;
ods graphics off;

roc:個別宣告要繪製哪些變項的圖形,這裡我想個別看age及bw的ROC曲線。有單引號包住的文字,為宣告此圖形中變項的名稱,分別為「年齡」及「體重」。不過如果只使用這個語法的話,SAS同時還會多給一張model的圖,和age+bw+model的圖。

ROCCurve42 ROCCurve35 ROCCurve44

ROCOverlay15

上面這張圖,雖然多了一個model的曲線,但這不一定是每次都想見到的,我的經驗,大多臨床工作者,都不太瞭解model這條曲線的意義,即使解釋了很久都還是不會用,因此單純的age和bw的比較也許就很足夠了。這個時候將程式修改成下面的寫法即可。

ods graphics on;
proc logistic data=age_data plots(only)=(roc) rocoptions( id=prob) ;
model disease (event='1')=age bw/nofit;
roc '年齡' age;
roc '體重' bw;
run;
ods graphics off;

其實就只是多了一【nofit】,這會讓SAS不要做整個model估計,只分別對age和bw做兩個logisitc regression,此時Log視窗也會提醒,「NOTE: The NOFIT option is specified.  No parameters are estimated and all other MODEL statement options (except FIRTH ,LINK= ,NOINT ,OFFSET= ,ROC ,and TECHNIQUE=) are ignored.」。結果如下圖:

ROCOverlay16

最後就是比較age和bw的AUC有無統計上的差異了。

ods graphics on;
proc logistic data=age_data plots(only)=(roc) rocoptions( id=prob  ) ;
model disease (event='1')=age bw/nofit;
roc '年齡' age;
roc '體重' bw;
roccontrast  reference('體重')/ estimate e;
run;
ods graphics off;

roccontrast:比較ROC曲線。結果如下:

未命名 - 1

SAS 9.2此項新功能,我自己覺得使用上比MACRO直覺許多!

2009年7月2日

Firefox 3.5 中文版 (100% 純天然有機軟體)

咦…這個版本就突然上市了,這個很號稱很快的版本(Firefox 3.5測試:速度是Firefox 3的兩倍快),我今天才用到,好吧,反正也沒有太大的感覺,不過終究是花很多時間研發,不斷的延期又延期的Firefox 3.5,還是要用力推一下啦!

Firefox 3.5中文版

2009年6月28日

奔牛節

某一天看到報紙「奔牛節的街頭藝術品被破壞」,才知道台中市有這個項活動,這應該是屬於街頭裝置的藝術品吧,感覺還滿有趣的。

到了國美館,在綠色的草地上就出現了數頭顏色鮮豔的大牛!

DSCN6844

分別給其中隻三來個特寫。

DSCN6846 DSCN6845 DSCN6849

這幾隻牛上的小東西真的是很有趣,牛那麼大,在小時候的印象總是需要一些小動物的~

DSCN6848

其他室外的牛也是很有趣的,甚至躺著的牛 XD

DSCN6856 DSCN6858 DSCN6864

除了室外,室內的展區也是有很多奇妙的牛。這一隻應該也是牛吧,有一堆小牛圍在旁邊。
(照片中的為國美館的服務人員,還很辛苦的在數小牛數目有無正確。)

DSCN6865 DSCN6867

這裡也是有一堆小牛,由一個大圓石走出來。

DSCN6868

當然室內也是有大牛,有閃亮花俏的大牛,有小人控制的大牛…

DSCN6870 DSCN6872 DSCN6871

還有「天下第一味」的…牛肉麵?

DSCN6874

有興趣想看這群牛的,時間不多了,展出到2009/7/5。

DSCN6843

在SAS中使用已經整理好的統計量

實務上常遇到研究者只提供已算好的數字(統計量),例如列聯表中的個數和百分比或兩樣本的人數、平均數和標準差等,如果要利用這些統計量做某些檢定,例如卡方檢定或雙樣本T檢定等,可使用PROC FREQPROC TTEST處理僅有統計量的問題。

PROC FREQ

有兩群病患分別使用A藥和B藥,再觀察兩組實驗組症狀有無改善,結果如下表,如研究者想問A藥和B藥病患症狀改善的比率有無不同,可採用卡方檢定(Chi-square test)

  A藥 B藥
症狀無改善 9 12
症狀改善 21 18

當然第一步要先把資料輸入至SAS中,程式可以這樣寫:

DATA TRIAL_1;
INPUT DRUG $ EFFECT COUNT;
DATALINES;
A 0 9
A 1 21
B 0 12
B 1 18
;
RUN;
PROC SQL;
SELECT *
FROM TRIAL_1;
QUIT;

接下來是卡方檢定的部分

PROC FREQ DATA=TRIAL_1;
WEIGHT COUNT;
TABLE EFFECT*DRUG/CHISQ;
RUN;

PROC TTEST

同樣兩群病患使用A藥和B藥,使用後測量某個臨床指標(連續型變項),研究者欲使用T檢定,探討兩組病患的臨床指標平均值有無差異。資料如下表

  A藥(N=30) B藥(N=30)
臨床指標 89(12) 95(16)
mean(std)

因為這裡我們只有拿到兩組病患的人數、平均值和標準差,所以在輸入資料時要稍微複雜一點,必須符合SAS程式的規定,一定要有一個變項名稱為『_TYPE_』或『_STAT_』,在這個變項中,必須要放入‘N’、‘MEAN’、 ‘STD’這三筆資料,資料輸入程式如下

DATA TRIAL_2;
INPUT DRUG $ _TYPE_ $ EFFECT;
DATALINES;
A N 30
A MEAN 89
A STD 12
B N 30
B MEAN 95
B STD 18
;
RUN;

接下來執行PROC TTEST程序就簡單了,和一般寫法沒有太大差異

PROC TTEST DATA=TRIAL_2;
CLASS DRUG;
VAR EFFECT;
RUN;

以上程式可於SAS 9.1.3和SAS 9.2執行。