医薬品副作用報告のアンダーレポーティング

Under-reporting of adverse drug reactions

アンダーレポーティングとは

市販後の副作用報告データベースを解析して、副作用を研究するにあたって、意識しておくべき問題の一つに、アンダーレポーティングがあります。医薬品を製造販売する企業は、その医薬品の副作用情報を知った際には、一定の基準に該当する場合には、設定された期限内に規制当局へ報告することが義務付けられています。(一定の基準とは、自社の医薬品と有害事象の間に因果関係がある、有害事象が重篤である、の2点です。このほかに、「噂(うわさ)」ではなく、副作用を起こしたとされる患者が実在すること、医療目的で使用された医薬品であること、国内で使用された医薬品であることなど周辺の手続き的なコンディションが若干あります。)これに対して、医療現場の主プレーヤーである医師には、「保健衛生上の危害の発生又は拡大を防止するため必要があると認めるとき(薬機法68条の10-2)」に限って当該副作用を報告するように義務付けられています。もちろん、治験や臨床研究で一定基準のものを、どこかへ報告するように定めた契約が存在する場合には、その契約に基づく義務が発生します。

企業で副作用の仕事をしていると、規制当局であるPMDAの査察の際に厳しくチェックされるため、知った副作用情報の報告漏れが無いようにと意識を働かせる動機があります。一方、医師は副作用報告について、発現したものを報告漏れだというような指摘を受ける機会はほとんどなく、実際に発現した副作用を、どこかへ報告するという、動機が働きません。どこへも報告されない副作用が、だれに知られることもなく埋もれてしまう、というようなことも十分想定されます。その、発現しているにもかかわらず、規制当局に報告されない副作用が一定程度存在することをアンダーレポーティングと言っています。

アンダーレポーティングは何が問題なのか

アンダーレポーティングがある事で、規制当局や製造販売元企業がリスクに気づくのに遅れる可能性があります。また、様々な集計の際にしばしば2つ以上の何かを比較します。例えばA薬とB薬を比較する時に、この2つの薬剤で同じ頻度でアンダーレポーティングが起きているという前提がないと厳密になりません。この前提が正しいかどうかを明らかにするのは難しいものです。

アンダーレポーティングは本当に存在するのか

感覚としては、起きた副作用がすべて規制当局に報告されているとことはないと思いますが、実際にそういう事が起きているというのが科学的に記述されているでしょうか。この点について、臨床現場の先生が有害事象を選んで報告していることを明らかにした英国及びアイルランドからの研究報告があります1,2

また、スロベニアで一次市中病院から四次紹介先病院までの入院カルテをレビューした報告によると、医薬品の副作用による入院を医師が認識していても、コーディングしてデータを登録して報告することはまれでした3

アンダーレポーティングの要因

副作用が起きたとして、全てが規制当局に集約される様な仕組みではないので、仕方ないというか。全てが報告されることを基準にして、それより低いから「アンダー」という発想が現実からかけ離れたことを想定しているというか。まぁ、医療関係者も忙しいし、報告自体よりその仕組みを理解するのが面倒だったりというのもあり。全体に違和感のある部分ではあるのですが要因を分析して見ないことには、次に繋がらないのでこの辺りも少し調べました。

ベネズエラでの研究グループは、医師が自発報告のシステムについての知識が乏しい事が示され、これがアンダーレポーティングの原因であるという仮説を主張しました4

スペインからの報告5では、

  1. ADR(S)であると診断することの困難さ
  2. 医師が多忙である事
  3. 薬物モニタリングシステムをどう使って報告するのか知られていない事
  4. 利益相反

がアンダーレポーティングの要因として提唱されました。スペインからのもう一つの報告6では

  1. 薬剤師の関心の低さ
  2. 薬剤師が多忙である事
  3. ADR(S)であると診断することの困難さ

がアンダーレポーティングの要因として提唱されました。

ちょっと寄り道

スペインの報告2の(1)を「関心の低さ」と訳しましたが、原文ではforgetfulnessでした。スペインでは薬剤師が(3)の判断をしているのかと少々驚きました。日本で調剤薬局の薬剤師から受ける報告では、「薬を使った」→「何か症状を訴えている」で、ほぼ何も考えず「副作用である」かのごとき報告がなされます。「副作用名」もほぼ「患者が訴える症状」あるいは、「診断根拠が希薄な病名」です。調剤薬局の薬剤師からの情報は処方箋に書かれた医薬品情報と患者さんとの会話でしか病状を把握できないことがほとんどで、基礎疾患や臨床検査値や治療の経過等の正確な情報が得られることはほとんどありません。その上、多くの場合処方した医師に対して、企業が因果関係を問う事も不可だということで、症例評価にはほとんど役に立たない情報が提供されて来ます。

更なる取り組みに向けて

ドイツからの報告7で、メールにより1315名の医師にアンケートした結果によると、規制当局のシステムを使って報告するより、製薬企業を通して報告する方を好む医師が多かったということです。この報告によると、アンダーレポーティングを抑制するには、医師による自発報告を支援する事が提案されました。経済的インセンティブや教育活動によって、臨床家が副作用を報告する活動が改善することを報告した論文は複数あります8–12。副作用を疑ったら、規制当局に報告するという活動があることを知る患者は少なく、患者自身による副作用報告を提案する論文もあります13–15

ちょっと待った

インセンティブを厚くすると、その副作用も心配です。容易に想像できるのはお金目当てで、あまり大したことのない副作用を多数報告する臨床家や、最悪存在しない副作用を報告するものも現れるかもしれません。私としては報告を少々増やすことと引き換えに、これらのノイズを多く混入させることが解析上の困難を引き起こすことを懸念します。

患者自身の副作用報告については、医学的な判断の入った診断と言うよりは主観的な症状が中心になります。患者は副作用を経験したと思ったら、規制当局に報告するより、疑わしい医薬品を処方した医師に相談して、医学的判断を仰ぐので良いのではないでしょうか。忙しそうにしている医師にわざわざ報告するほどでもない、という副作用であれば、規制当局的にも必ずしも重要視しないような病態ではないかと思います。

現在の自発報告の状況は完璧とは程遠いものです。でも、これまでいくつかの薬害を乗り越えて、副作用報告の制度が洗練されてきた医療用医薬品に関しては、深刻なほど、新規の副作用の検出力が低いとも思えません。

実際にあった悪質なケース

医薬品関連の業者Aが、「副作用の収集業務を始めました。サンプルとしてこういう情報を入手しています」として、数件の副作用情報を製薬企業Bに提供しました。薬事法(現薬機法)に基づきますと、製造販売元企業Bが副作用情報を入手した際には規制当局に報告する義務が発生します。ですのでその情報も当局へ報告しました。企業Bも海外本社のグローバルカンパニーで、一定の基準に合致する副作用は、米国FDAや欧州EMAをはじめ各国の規制に従ってそれぞれの規制当局へ報告されました。

製薬企業は、入手した情報について、具体的で詳細な情報を確認に行くように、と規制当局より常々指導されています。当初業者Aより入手した情報に基づき、情報源とされる調剤薬局や卸業者さんへ企業Bの営業担当者がそれぞれ手分けして確認に行きました。すると、行った先では「そのような副作用情報を報告していない」「業者Aが何かないかとしつこく聞くので適当に作り話を言った」というようなケースばかりで、副作用症例が実在しないことが明らかになったのです。ねつ造情報でも、それらしいものを企業に送り付ければ、ビジネスになるというような安易な理解で参入しようとしていたとの結論に至りました。副作用報告の規制の細やかさを理解していれば、虚偽の情報を企業が裏を取らない訳にはいかない事は明白なのですが、その規制すら理解していないようです。

ねつ造情報に基づいて、各地の営業担当者が薬局や卸さんを訪れ、さらに、「そんな情報はない」と言うような話のかみ合わない不快な時間を過ごしました。訪問された方も、業者Aにしつこく副作用の情報を求められ、その後製造販売元のAから再度詳細情報を求められ、と無意味な問い合わせの対応に時間を取られました。企業Bでは日本をはじめ各国の規制当局には、副作用情報を報告した後、さらに、取り下げの手続きを行ったりと大変な無駄な業務を余儀なくされました。その時には業者Aが解りやすくねつ造していましたので、まもなくねつ造が確認できました。でも、情報源である医療関係者が虚偽の報告を(少額の)お金のために作り始めると、なかなか裏を取ることは難しそうです。

References

1.
Martin R, Kapoor K, Wilton L, Mann R. Underreporting of suspected adverse drug reactions to newly marketed (“black triangle”) drugs in general practice: observational study. BMJ. 1998;317(7151):119-120. [PubMed]
2.
Williams D, Feely J. Underreporting of adverse drug reactions: attitudes of Irish doctors. Ir J Med Sci. 1999;168(4):257-261. [PubMed]
3.
Brvar M, Fokter N, Bunc M, Mozina M. The frequency of adverse drug reaction related admissions according to method of detection, admission urgency and medical department specialty. BMC Clin Pharmacol. 2009;9:8. [PubMed]
4.
Pérez G, Figueras A. The lack of knowledge about the voluntary reporting system of adverse drug reactions as a major cause of underreporting: direct survey among health professionals. Pharmacoepidemiol Drug Saf. 2011;20(12):1295-1302. [PubMed]
5.
Vallano A, Cereza G, Pedròs C, et al. Obstacles and solutions for spontaneous reporting of adverse drug reactions in the hospital. Br J Clin Pharmacol. 2005;60(6):653-658. [PubMed]
6.
Irujo M, Beitia G, Bes-Rastrollo M, Figueiras A, Hernández-Díaz S, Lasheras B. Factors that influence under-reporting of suspected adverse drug reactions among community pharmacists in a Spanish region. Drug Saf. 2007;30(11):1073-1082. [PubMed]
7.
Hasford J, Goettler M, Munter K, Müller-Oerlinghausen B. Physicians’ knowledge and attitudes regarding the spontaneous reporting system for adverse drug reactions. J Clin Epidemiol. 2002;55(9):945-950. [PubMed]
8.
Lopez-Gonzalez E, Herdeiro M, Piñeiro-Lamas M, Figueiras A, GREPHEPI group. Effect of an educational intervention to improve adverse drug reaction reporting in physicians: a cluster randomized controlled trial. Drug Saf. 2015;38(2):189-196. [PubMed]
9.
Herdeiro M, Ribeiro-Vaz I, Ferreira M, Polónia J, Falcão A, Figueiras A. Workshop- and telephone-based interventions to improve adverse drug reaction reporting: a cluster-randomized trial in Portugal. Drug Saf. 2012;35(8):655-665. [PubMed]
10.
Figueiras A, Herdeiro M, Polónia J, Gestal-Otero J. An educational intervention to improve physician reporting of adverse drug reactions: a cluster-randomized controlled trial. JAMA. 2006;296(9):1086-1093. [PubMed]
11.
Biagi C, Montanaro N, Buccellato E, Roberto G, Vaccheri A, Motola D. Underreporting in pharmacovigilance: an intervention for Italian GPs (Emilia-Romagna region). Eur J Clin Pharmacol. 2013;69(2):237-244. [PubMed]
12.
Pedrós C, Vallano A, Cereza G, et al. An intervention to improve spontaneous adverse drug reaction reporting by hospital physicians: a time series analysis in Spain. Drug Saf. 2009;32(1):77-83. [PubMed]
13.
Tapsfield J, Mathews T, Lungu M, van O. Underreporting of side effects of standard first-line ART in the routine setting in Blantyre, Malawi. Malawi Med J. 2011;23(4):115-117. [PubMed]
14.
Kiguba R, Karamagi C, Waako P, Ndagije H, Bird S. Recognition and reporting of suspected adverse drug reactions by surveyed healthcare professionals in Uganda: key determinants. BMJ Open. 2014;4(11):e005869. [PubMed]
15.
Avery A, Anderson C, Bond C, et al. Evaluation of patient reporting of adverse drug reactions to the UK “Yellow Card Scheme”: literature review, descriptive and qualitative analyses, and questionnaire surveys. Health Technol Assess. 2011;15(20):1-234, iii-iv. [PubMed]

有害事象と医薬品の因果関係評価について

<この記事は内科学会雑誌に掲載した記事のセルフアーカイブです。誤字脱字等も含め内容は公開版の最終稿と同一です。>

Evidence-based Medicine (EBM)

有害事象と医薬品の因果関係評価について

大島康雄

東京大学医科学研究所 先端医療研究センター・分子療法分野

郵便番号 108-8639

住所 東京都港区白金台4丁目6-1

℡ 03-6301-3845

電子メール 0-oshima@umin.ac.jp

 

はじめに

医薬品医療機器総合機構(PMDA)のWebpageによると、2010年1月から11月までの期間に使用上の注意の改訂指示があった医薬品情報は170件あった (http://www.info.pmda.go.jp/kaitei/kaitei_index.html)。 この中でアンジオテンシンII受容体拮抗薬、いわゆるARBである、オルメサルタン メドキソミル、テルミサルタン、バルサルタンおよびそれらを薬効成分として含む合剤の使用上の注意へ、「横紋筋融解症」の副作用の記載をするようにとの指示が私の目を引いた。横紋筋融解症は一旦発現すると死亡に至る割合が1割近くもある深刻な病態である(1)。それに加え、ARBは臨床現場で多くの患者さんへ使用されているため、規制当局からの情報は大きな影響力を有しかねない。しかし、気になったのはそのためだけではない。HMG-CoA還元酵素阻害薬、いわゆるスタチン類では個人的な臨床経験としてあるいは同僚医師らとのコミュニケーションの中で、クレアチンキナーゼ上昇あるいはこれに筋症状等の伴った筋炎と考えられる症例を経験することがあり、スタチンの筋組織に対する傷害性を感じる機会があった。これに対して、ARBではこうした身近な経験をする機会が乏しかったのだ。厚生労働省のWebpage掲載文書である医薬品・医療機器等安全性情報No.271の記載によると、オルメサルタン メドキソミルでは、平成21年度1年間での使用者数おおよそ180万人に対し、集計当時の直近3年間に横紋筋融解症症例のうち因果関係が否定できない症例が1例報告されている、との記載がある。 同じくテルミサルタンでは1年間使用者数190万人に対し直近3年間で3症例、バルサルタンでも同じく410万人に対し4症例との記載である (http://www1.mhlw.go.jp/kinkyu/iyaku_j/iyaku_j/anzenseijyouhou/271-2.pdf)。医薬品・医療機器等安全性情報No.271には改訂指示の根拠となった症例の概要等に関する情報が紹介されている。それぞれの症例の臨床経過を見ると、症例で副作用が報告されていることは理解できるものの、添付文書上で注意喚起を行うという一種のリスクコミュニケーションが必要であると判断したロジックは読み取れない。医薬品・医療機器等安全性情報No.271に記載された数字には、副作用症例を経験された臨床現場の先生方が任意でご報告される、いわゆる自発報告に基づく数字が含まれると考えられる。自発報告の弱点として、発現していても報告されない症例が少なからずあると思われる、いわゆるアンダーレポーティングの問題が指摘されている。言い換えるならば、実際には報告されている症例より多くの有害事象が発現している可能性が考えられる。それにしてもこの程度の報告数であれば身近な経験が情報共有されないのも納得ができる。と同時に、添付文書上で注意喚起を行うというリスクコミュニケーションが本当に必要なのか、情報の受け手としての医師はこの情報をどの様に日々の臨床に生かすことが求められているのか疑問が湧く。

本稿では、医薬品使用中または投与後におきた医療上の好ましくない事象である有害事象が、本当に医薬品が原因で起きた副作用であるかどうか、すなわち有害事象と医薬品の因果関係についてどのような判断の方法があるのかについて、いくつかの例を紹介させていただく。

 

個別症例の有害事象に関する因果関係

臨床試験中に生じた有害事象と試験薬との因果関係の評価は、重要な意味を持ちうるにもかかわらず、客観的で確立された基準があるとは言えない。疾患の経過中に起きた有害事象は、被疑薬による副作用のほか、被験者がもともと有していた病態に関連した症状、併用薬剤による事象、治療手技の合併症、それらとは無関係に偶然おこる偶発症などさまざまな可能性がある。原因についてのさまざまな可能性を臨床的に推論してゆく中で、相対的に他の要因が考えにくい場合に被疑薬との因果関係があると考えられる。つまり、いわゆる臨床推論そのものであり、一律に基準を設けるのは困難である。治験中に得られる安全性情報の取り扱いについて、INTERNATIONAL CONFERENCE ON HARMONISATION (ICH) E2Aという国際的ガイドラインがある。その規定によると、薬物投与後に起きた有害事象について、完全に否定することは論理的には困難であるにもかかわらず、「因果関係が否定できない場合に、合理性を以て因果関係の可能性があるとする」との考え方が記載されている(2)。脚注 このように基準となるべき文言についても客観的で一定の判断が常にできる基準とは言い難い。このほかにも考慮するべき点はいくつか報告されている。上記ICH E2Aの記述および、同じく国際的な治験や市販後の医薬品評価にかかわる議論を深めてきた国際医科学団体協議会(CIOMS, council for international organizations of medical science)が、因果関係の判断に関して考慮するべきとして指摘している点を4点以下に列挙する。あるべき姿として、評価できるだけの十分な医療上の情報を得たうえで判断がなされるべきである。

  1. 再投与によって有害事象の再発がある(リチャレンジ)
  2. 被偽薬中止により有害事象が軽快する(ディチャレンジ)
  3. 発現時期が副作用として妥当
  4. 事象を引き起こしうる他の要因がない
  1. については、被疑薬を再投与することは通常推奨されておらず、情報が得られにくいと思われる。しかし、再投与により再現性が確認できる場合には被疑薬によって有害事象が起きていたとの因果関係が強く支持される。
  2. 深刻な有害事象が起こり、被疑薬の中止によって有害事象が軽快することが期待される場合には被疑薬が中止される場合が多いであろう。被疑薬の中止によって有害事象が軽快することが通常期待できない発がん等の例を除いて、被偽薬中止によって有害事象が軽快しない場合は、因果関係は考えにくいと判断するかもしれない。
  3. 好発時期が知られている有害事象、例えばアナフィラキシーショックや抗がん薬の骨髄抑制性の副作用等については、個別症例の発現時期と知られている好発時期とで矛盾がないかが、因果関係を評価するために考慮されるだろう。変異原性試験やがん原生試験等の結果に特に問題となる所見がない薬物については、被疑薬投与開始から1-2年目程度までに発症した悪性疾患については薬剤との因果関係が否定的と考えるだろう。放射線被ばくは遺伝子に障害をもたらすと考えられるが、その放射線被ばくをもたらす原子爆弾投下後の甲状腺がんや白血病の発症のピークが数年後にあるとの調査結果が知られている。また、腫瘤の成長速度に関する基礎的な研究の結果等もふまえ、放射線や薬物への曝露によるイニシエーションから臨床的な発がんには一般的に数年が必要と考えられているからである。
  4. 報告された有害事象が、被験者がもともと有していた疾患によってしばしばみられる症状であるような場合や併用薬剤の副作用として良く知られているような事象の場合には、被疑薬と有害事象の因果関係は確定的とは言えなくなる。こうした要因がある場合でも、個別の症例の基礎疾患の病状や併用薬剤の使用状況、有害事象の重症度や発現時期によっては被疑薬の因果関係を積極的に疑うことが合理的な場合もありうる。

また、有害事象の性質や、被疑薬(代謝物を含む)の類薬についての以下のような情報がもしあれば、これらも含め総合的に因果関係が評価される場合もある。

  1. (事故による)過量投与により起きることが報告されていないか
  2. 事象が一般人口中ではまれか、頻度が高いとされているか
  3. 一般に薬剤性とされている事象か
  4. 薬物動態的証拠(薬物相互作用等)として矛盾はないか
  5. 公知の作用機序によって説明できるか
  6. 公知の共通薬効群の副作用として知られているか(クラスエフェクト)
  7. 動物やin vitroの試験結果で副作用が起きることが示唆されているか
  8. 同じ有害事象を起こすことが知られている薬剤に、被疑薬の特徴が似ているか

 

上述の情報を考慮しても、個別症例の有害事象が被疑薬と因果関係があるのか否かの判断が困難なケースが少なくない。

治験で報告される有害事象の取り扱い

臨床試験のうち、新医薬品等の承認を得るための臨床試験を治験と呼び、これはいわゆるGCP省令に基づいて行われ、治験届がなされている。治験では、個別症例の有害事象について、治験責任医師等がその因果関係判断を行う。治験責任医師等が当該有害事象と試験薬との因果関係を否定しないと、治験依頼者によって個別症例の副作用として報告等の必要な手続きが検討される。この場合試験が継続中であれば、規制当局および治験に参加している他施設への迅速報告が検討されるとともに、その重要度によっては試験の継続についても検討される。しかしながら、試験が終了し、集積検討をする段階では、個別症例についての因果関係評価に基づいてそのまま、「当該試験薬が当該副作用を引き起こす」というように医薬品が評価されるわけではない。むしろ逆である。Food and Drug Administration (FDA)では審査官(reviewer)向けのガイドブックが作成され公開されている。このFDAレビューワーガイダンスによると、有害事象の報告に責任のある治験責任医師(investigator)あるいは治験依頼者(新医薬品等の申請者としてapplicantの用語で登場する)が行った個別症例についての因果関係判断からは、あまり有用な情報が得られない、あるいは、無視するようにとも取れる記述がみられる。以下に因果関係評価についての記述をFDAのレビューワーガイダンスより引用する。(http://www.fda.gov/downloads/Drugs/GuidanceComplianceRegulatoryInformation/Guidances/ucm072974.pdf)

7.1.1 死因についての記述で、In most cases, these events need to be examined for frequency but discussion of individual cases is not helpful.

7.1.2 転帰死亡以外の重篤な有害事象について、The reviewer should identify, without regard to the applicant’s causality judgment, all serious adverse events.

7.1.5.3 Incidence of Common Adverse Eventsについて、For the most part, attributions of causality by the investigators should be discounted, and adverse events should be assessed without regard to attribution.

(FDAレビューワーガイダンスより)

 

どうして個別症例の因果関係評価を無視するような記述になっているかと言うと、集積検討をする場合には個別症例の因果関係評価とは別の情報が加わるからである。どのような情報かについては、具体例を提示することで解説したい。以下に臨床試験に関する教科書であるStatistical Issues in Drug Developmentからの例を2つほど引用する(3)。元の教科書を参照していただければわかるが、これらの例は架空の例であり、過去に実施された治験についての記録ではない。しかし、本稿では過去に起きたような時制で文章を記述させていただくことをあらかじめお断りしておく。

例1:

小児を対象とした臨床試験で、β作動薬とプラセボの気管支喘息に対する有効性を盲検下で評価する比較試験での話である。試験薬による治療開始された後の診察時に、ある母親が「うちの子が夜尿をした」と報告した。この被験者の夜尿は一回限りであり、担当医師は、この有害事象について試験薬との因果関係はないと記載した報告書を作成した。しかし、この試験は多施設共同治験で、他の施設でも各施設1-2件ずつ夜尿の有害事象が見られた。多くの施設でも担当医師は因果関係を否定していた。開鍵した結果、ほとんどの夜尿は実薬であるβ作動薬が投与された被験者にみられており、プラセボ群ではほとんど報告がなかった。そこで、個別症例の多くは因果関係が否定されていたにもかかわらず集積検討の結果、夜尿が実薬によって起きた、すなわち、有害事象と実薬に因果関係があると判断することができた。副作用であると判断したら、次は、その機序について考えるかもしれない。hypothesis creationである。喘息のため夜間眠りが浅かった被験者は治験開始後、実薬の薬効によって夜間の睡眠が深くなり、少々の尿意では目が覚めにくくなったのではないか、などと。

 

例2:

今度は成人の高血圧症の治療薬として開発中の、新規ACE阻害薬の試験の例である。こちらの試験も、プラセボをコントロールとした、盲検下での比較試験であった。試験が開始され被験者が担当医師に咳を報告した。ACE阻害薬は咳の副作用が広く知られている。この試験を担当した他施設の担当医師らも、咳を副作用だろうと考え、その結果多くの「因果関係の否定できない咳」が収集された。試験が終わり開鍵した結果、プラセボと実薬で同程度の「咳」が報告されていた。この集積検討の結果、個別症例では「因果関係あり」とされていたにもかかわらず、試験で収集された「咳」の有害事象は実薬との因果関係がなかったと結論することができる。

 

これらの例で興味深いのは、個別症例の因果関係判断が、集積検討の結果覆る点である。集積検討で得られる情報で重要な情報は、比較対象であるプラセボ群との発現頻度についての情報である。お示ししたような例が論理的にはあり得るため、FDAでは医薬品の有害事象の因果関係判断を行うに当たって、治験責任医師や治験依頼者の行った個別症例の因果関係判断を必ずしもそのままでは受け入れず、7.1.1の死因の記述にある通り頻度を確認するようにしている。頻度が同程度であっても、実薬で早期に発現していないか、重症度が実薬で高くないか等が比較されることもある。

ここで、本稿の趣旨とははずれるが、もう一点強調しておきたい点がある。先の例では集積検討の結果、当初報告してきた治験担当医の因果関係評価は「誤り」となる。にもかかわらず、医薬品評価としては何の問題も生じない点である。開鍵後の集積検討の結果を知ることなしに、それまでの医学的な知識に基づいて、一定の合理的な判断をしている限り、結果として因果関係評価が誤りであったとしても、試験上は問題にはならないのである。筆者の知る限り、国内で試験に参加される先生の中には、こうした「結果として誤り」となることを恐れるあまりか、例1のような場合で、因果関係は絶対に否定しないお考えの先生方もおられる。そうした判断の考え方は例2のような場合には逆に結果として「誤り」となってしまう恐れがあることも考慮されておくべきであろう。治験責任医師らはご自身の知識と経験そして、目の前の患者さんの状況を鑑み、因果関係があるのかないのかを素直に医学的に判断して、それでも「結果として誤り」となることは避けられないものである。

また、臨床試験に参加される先生方のご心配は他にもあるようだ。「因果関係はないと思うが、治験責任医師らが因果関係を否定してしまうと、その事象が誰からも評価されることなく承認審査が行われるのではないか」と懸念され、因果関係を否定することに躊躇する先生方もおられる。これにも、誤解がある。個別症例の因果関係を「なし」とした場合、確かに試験継続中の他施設や規制当局への迅速な報告はなされないであろう。しかし、FDAレビューワーガイダンスに示した通り集積検討の段階では、因果関係が否定されている事象も含め、有害事象のリストに記載され、集計され、規制当局へ報告される。これは国内でも同様である。言い換えるならば個別症例の因果関係を否定したとしても、その有害事象の情報が闇に埋もれてしまう心配はない。

治験責任医師らは、自身の医学的知識と経験にもとづき、目の前の被験者の状況を鑑み、因果関係があるのかないのか、医学的に判断することに専念することが求められる役割であろう。

 

臨床試験の限界

残念ながら、前述の例のようにプラセボと比較して実薬で発現頻度の高いものを「実薬による」とするように明快な判断ができる有害事象は、条件が整った限られたケースのようである。プラセボの情報が不十分な場合では、治療対象疾患の経過中に起きることが知られている合併症としての事象の頻度や、一般人口中での発症頻度、類薬での発現頻度などを比較の対象として判断する場合もあるかもしれない。いずれにしても上市時に得られている医薬品の副作用情報は限られている。市販後に初めてわかるような安全性情報も少なからずある。開発段階での安全性情報が不十分となる要因を先ほどとは別の教科書から引用する(4)。

開発段階の安全性情報を不十分にする要因

  • 臨床試験で評価された症例数が、その薬が世の中で使用される患者数に比べて圧倒的に少ない
  • 発現頻度が高くないあるいは稀な副作用については臨床試験での検討が不十分である
  • 臨床現場で安全性上の問題が稀に起こるかもしれない状況を開発段階で予測するには限界がある
  • 市販後の適応外使用
  • Breakthrough medicineを早く患者が利用できるようにしたいという社会的な要求
  • 開発段階で組み入れられなかったリスク集団への使用
  • 過剰投与に関する情報不足

 

このリストの中の問題の多くは、治験では選択基準に合致する限られた被験者に限られた期間のみ投与され、一定の観察期間のみの情報が収集されることから、市販後に起きる状況が十分評価できないのである。この要因の中で異質な点が5番目の要因である。ここに記載されている社会的要求が安全性の情報とのトレードオフとするような考え方に抵抗感を示す先生方もおられるかもしれない。しかし、過度な社会的要求は治験を最低限の期間で、かつ最小の被験者数で進めるような圧力になりかねない因子の一つである。そうした圧力の有無にかかわらず、治験段階での安全性評価は限られた情報であるとの認識に基づいて、市販後に安全性を監視し続けることが臨床医には求められていると考えられる。

 

市販後の副作用報告の取り扱い

市販後の安全性情報にはSolicited とUnsolicitedな情報がある。 Solicitedとは試験や調査等登録患者を一定期間観察して、有害事象が発症しないかを観察する、つまり観察される集団があらかじめ定義されている安全性情報をいう。市販後の情報の報告数を見るとSolicitedな情報も一部にはあるものの、数として多いのは自発報告等のUnsolicitedな情報である。自発報告とは、副作用症例を経験された臨床現場の先生方が任意でご報告される、副作用報告のことである。自発報告は2つの大きな問題を抱えており信頼できる発現頻度を計算することができない。第一は薬物曝露状況つまり、どのくらいの被疑薬投与症例に被疑薬がどのくらいの期間投与されたのか、事象の発現頻度であるincidenceを計算する場合の分母にできる数字がない。分母にできる数字の代替として思いつくものに、出荷数量から推計できる使用患者数がある。これについては、ヨーロッパの規制当局であるEMEA のガイドライン案によると、「すでに市販されている医薬品で、自発報告された有害事象数あるいは有害反応数を分子に、販売数を分母にした報告率は、医薬品使用者での有害反応の発生率の推定値として提示すべきではない。」とあり、少なくともヨーロッパでは好ましくないことと考えられている。出荷数量は流通在庫や期限切れによる廃棄の問題や一人当たりの使用量の推計が、どの程度実臨床の状況を反映されているのかが不明であるといった問題がある。このため分母が不正確にならざるを得ない状況があり、発生率の推定値としては好ましくないとしているのであろう。

第二は、実際に起きている有害事象のうち一部しか報告されていない、つまりアンダーレポートの問題があり、incidenceを計算する場合の分子にできる数字は、実際に事象が起きている件数より小さいと推定できる。そのほかにもいくつかの重要な問題があり以下にリスト化する。

自発報告の問題点

  • 診断が不確である
  • 重要な情報が報告されてこないことがある
  • 報告される事象の選択が任意である
  • 因果関係が不確かである
  • 市場の大きさを無視した副作用報告

 

不確実な診断は副作用報告の深刻な問題の一つである。自発報告では通常ごく限られた情報が報告されてくることから、規制当局や製薬企業が診断を確認することは困難である。さらに、報告者が薬局薬剤師、患者やその家族等であった場合は、診断や診断根拠を報告者自身が十分把握していない場合もある。副作用を診断した医師が報告する場合であっても、報告医師の専門分野以外の副作用については診断が正確でない場合が考えられる。また、他の病院などからの転院患者を引き受けて、その後起きた副作用を報告するような場合、前医で治療されていた基礎疾患やその臨床経過についてのデータを十分引き継いでいない場合もある。さらに、自発報告では仮によく知られている絞絡因子が当該症例にあったとしても、報告されてこないかもしれない。

診断自体に困難な点がない場合でも報告事象名の選択が悩ましいケースがある。例えば、高齢者の多発性骨髄腫の患者に化学療法が行われ、その後発熱および下痢を発症した。経過中、腎不全となり、死亡した。このように一連の経過で複数の病態が観察された場合に、報告者が副作用として選択する事象名にはぶれが生じうる。より多くの種類の病態が起きるような場合はさらに事象名の選択は複雑になる。これとは別の問題として、新聞やテレビといったマスメディアでセンセーショナルに取り上げられた副作用については、過去の経験にさかのぼって報告するなどにより急に副作用報告件数が増えることが知られている。また、多くの患者に使用される医薬品は、薬物とは因果関係のない偶発症等の情報を含め、多くの有害事象が報告されてくることになる。

 

自発報告の集積検討の試み

臨床試験では開鍵後に集積検討をすることができるが、自発報告には分母にできる数字や比較対象にできるプラセボ群もない。かといって、集積検討が全くできない訳ではない。世の中で起きている医薬品の副作用について迅速にうかがい知るうえで、現状として最大の情報を蓄積しているのが市販後の自発報告を含む副作用データベースである。前項のような自発報告の欠点があることを把握したうえで、精度は落ちるものの大量のデータから科学的推論をすることは可能であるとされ、医薬品曝露情報(incidence の分母に相当する情報)に代わる何らかの指標を用いる手法がいくつか開発されている。原理のもとにある考え方は単純である。表に示した通り、安全性データベースの中で、興味の対象である医薬品Xについて、興味の対象である有害事象Aが何件報告されているかをn(X,A)と表現する(表 パネルA)。

表.PNG

医薬品XについてA以外のすべての有害事象(!Aとする。以下同じ)の件数n(X,!A)とのオッズ比であるn(X,A)/n(X,!A)を計算する。X以外のすべての医薬品についても同様のオッズ比n(!X,A)/n(!X,!A)を計算し、この2つのオッズ比を比較する、すなわち、n(!X,A)/n(!X,!A)に対するn(X,A)/n(X,!A)の比を見ることで、相対的に医薬品Xについて有害事象Aが多く報告されていないかを検出する。これらの数字の比をROR(reporting odds ratio)と呼ぶ。具体的な数字を用いて計算過程を例示するため、2004年の第一四半期の3か月間にFDAに報告された副作用が疑われた症例の報告件数を表のパネルBに示す。この例ではゲフィチニブを興味の対象である医薬品とし、また、興味の対象である副作用を間質性肺炎とした。この3か月間にゲフィチニブが被疑薬として報告された間質性肺炎は22件あり、それ以外の報告事象は159件であった。ゲフィチニブについて、全有害事象報告件数に対する間質性肺炎の報告件数の比は、約0.138であった(パネルC-(1))。これに対して、同じ期間にゲフィチニブ以外の医薬品が被疑薬として報告された間質性肺炎は180件、ゲフィチニブ以外の医薬品が被疑薬として報告された間質性肺炎以外の事象は49983件であった。ゲフィチニブ以外の医薬品について、全有害事象報告件数に対する間質性肺炎の報告件数の比は、約0.00360であった(パネルC-(2))。ゲフィチニブのROR値は0.138と0.00360の比である、約38.3となる。ゲフィチニブについて、それ以外の医薬品と同程度の間質性肺炎が報告されてくると仮定すると期待されるROR値(帰無仮説H0 に基づくROR値)は1.00であるのに対し、計算結果は約38.3であった。閾値をどうするかという議論はあるが、この値は一般的にはシグナルと判断できる程度に大きい値である。ここで、原理を考えていただくためにお示ししたRORは、データベースに入力されている件数が少ない事象や被疑薬としての報告件数が少ない医薬品についての精度が不十分であるとの指摘もある。その精度を上げるべく開発されているものがいくつかある。「はずれ値」を検出するという目的から、neural networkやsupport vector machineといったアルゴリズムを応用することも検討されているが、本稿ではそうしたデータマイニング手法の一つを次の例としてお示しする。それは世界保健機構(World Health Organization, WHO)が開発したBayesian Confidence Propagating Neural Network (BCPNN) という手法であり、BCPNNを用いてFDAが公開しているAdverse Event Reporting System (AERS)データベースのデータを集計し、一般によく知られているいくつかの副作用等を継時的に表現し簡単な解説を加える。

本稿ではBCPNNの計算結果出力されるInformation Components (IC)値およびstandard deviation (SD) 値を示すが、BCPNNの計算方法や解釈についての詳細は他論文を参照していただきたい(5)。FDA AERSのデータを2004年第1四半期から2010年第2四半期まで過去に報告した方法に従い入手した(1)。四半期ごとにそれまでの集積状況をもとに計算した結果を表示したのが図1である。スタチンとして集計した医薬品には、simvastatin, atorvastatin, rosuvastatin, pravastatin, fluvastatin, losuvastatin, cerivastatin and pitavastatinが含まれる。また、アンジオテンシン変換酵素(ACE)阻害薬には、captopril, enalapril, alacepril, delapril, cilazapril, lisinopril, benazepril, imidapril, temocapril, trandolapril, perindoprilが含まれる。そしてARBには、olmesartan, telmisartan, valsartan, candesartan, irbesartan, losartanが含まれる。プロットされている点は2004年第1 四半期から各報告期間までに集積された累積のIC値である。エラーバーはSD の2倍である2SD が表示されている。BCPNNの開発時に過去の事例でシグナルの検出を試した結果、IC-2SD > 0 すなわち、図で言えばエラーバーの下限が0のラインより上に来たらシグナルとみなすこととされている。本稿の例ではゲフィチニブの間質性肺炎、スタチンの横紋筋融解症、ACE阻害薬の咳についてのIC値は、いずれの時点で見てもそれらのエラーバーの下限が0のラインを上回っている。言い換えるならば、BCPNN法を用いてFDAのデータを解析すると、医薬品リスクのシグナルが検出されたことになる。これに対し、ARBの横紋筋融解症についてのIC値は解析した期間中にエラーバーの下限が0のラインを上回っているポイントはなく、BCPNN法ではシグナルは検出されない。つまり、BCPNNのように相対的な報告頻度という観点からの集計では、ARBによって横紋筋融解症が起こりかねないと懸念する根拠を見出すことはできなかった。

なお、FDAのデータは日本からの報告も含まれるが、間質性肺炎等日本からの報告が多い一部の例を除くと、日本よりは米国での発現状況を色濃く反映していると考えられる。つまり、日本国内での副作用発現状況については、FDA AERSとは異なる可能性は否定できない。国内の副作用状況はPMDAが医薬品ごとの副作用情報を公開している。しかし全医薬品についての報告数を集計する必要のあるBCPNN等のデータマイニング手法は、PMDAの外部の研究者にとって現実的には難しい。本稿では紹介しなかったが、イギリスの規制当局で採用されているProportional Reporting Ratio (PRR)と言われる手法や、FDAで採用されているGamma Poisson Shrinker program (GPS)の手法も基本的にはBCPNNと同様のデータを用いて計算される。いずれも、大量のデータに埋もれている問題を拾い出す、新たな問題の提起に有用と考えられているが、検証的な評価には必ずしも向いていないとされる。

 

さいごに

ある患者に治療を行い、その後治ったとする。その患者さんにとっては良いことかもしれないが、個別の症例を見ている限り、その治療が本当に効いたのかどうかについて判断することは困難である。同様に個別症例に治療を行い、その後有害事象が起きた。臨床経過を見るとその個別症例にとって医薬品による副作用と考えられる場合でも、その医薬品と有害事象の因果関係を判断することは困難である。臨床試験で検出できる医薬品のリスクも限界がある。本稿では個別症例および集積検討を行う場合の有害事象の医薬品との因果関係評価の考え方や、市販後副作用データベースを利用し、限られた現在の状況で医薬品の副作用リスクのシグナルを検出する方法等について紹介した。本稿で紹介したBCPNN等ではシグナルが検出されない医薬品リスクもあるだろう。冒頭のARBの例では、副作用として報告した臨床家の先生方、専門協議にご参加の先生方それぞれが、当該症例の報告について詳細な情報を検討され、当該医薬品について真摯にリスクとベネフィットをお考えの上で行動された結果が使用上の注意の改訂指示につながっていると理解している。使用上の注意の改訂等のリスクコミュニケーションは一般に、検出されたシグナルがはっきりリスクであったと確認される頃に発出されても被害が甚大となり、手遅れと言われかねないことを考えると、コンサーバティブな方向に偏るのもやむを得ないことと思われる。リスクコミュニケーションの結果、社会全体で救われる患者さんがわずかでもおられれば良いのかもしれない。一方でリスクコミュニケーションが過剰であったならば、必要な治療を受ける機会が狭められる患者が出る懸念や、リスクコミュニケーション自体の信頼性が低下しかねない懸念についても思いをはせる必要がある。情報の受け手である医師は提供された情報が、どの程度のリスクなのか、どのような情報に基づいて判断されたのかについて、その根拠を吟味し、科学的な視座より把握した上で日常の診療へ結び付ける努力が求められる。

著者のCOI開示:

報酬(サノフィ・アベンティス株式会社)

Figure Legend

.PNG

図1 報告期間とBCPNN IC値

ARBの横紋筋融解症および、副作用としてよく知られているゲフィチニブの間質性肺炎、スタチンの横紋筋融解症、ACE阻害薬の咳について四半期ごとに区切った報告期間までの累積BCPNN IC をプロットした。エラーバーは2SDを示す。よく知られた3つの副作用の例ではエラーバーの下限が0を超えておりBCPNN法でシグナルが検出された。一方、ARBの横紋筋融解症についてはエラーバーの下限が0を超える期間はなく、シグナルはBCPNN法で検出されなかった。

文献

  1. Oshima Y: Characteristics of drug-associated rhabdomyolysis: analysis of 8,610 cases reported to the u.s. Food and drug administration. Intern Med 50: 845-53, 2011.
  2. USE ICOHOTRFROPFH: http://www.ich.org/. In: ICH HARMONISED TRIPARTITE GUIDELINECLINICAL SAFETY DATA MANAGEMENT. 1994.
  3. Senn S: Statistical Issues in Drug Development. In: John Wiley & Sons, Ltd, 2007.
  4. Spilker B: Guide to Clinical Trials. In: Lippincott Williams & Wilkins, 1991.
  5. Bate A, Lindquist M, Edwards IR, Olsson S, Orre R, Lansner A and De Freitas RM: A Bayesian neural network method for adverse drug reaction signal generation. Eur J Clin Pharmacol 54: 315-21, 1998.

RでPubMedの検索結果を機械学習

はじめに

本稿はRのパッケージでdeep learningができると聞いて、ネットで調べながら、パッケージを使う道筋をつけるまでの、忘備録です。サンプルにしたのは、「A薬」で検索した結果と「B薬」で検索した結果を、テキスト形式でA.txt, B.txtとしてPCに保存したうえで、一部を学習用サンプル、残りをテスト用サンプルにして、学習の効果(?)を測定しました。集計に入る前に、ダウンロードしたデータの中の、検索キーワードを削除しました。(←これをしないとさすがに検索キーワードそのものがそれぞれの集団にばっちり入ってしまうので分類の性能が評価できないのではないかと)

はっきり分類しやすいように、今回はAは抗癌薬、Bは免疫神経系疾患治療薬と治療対象の疾患の性質が違うものにしています。検索結果は、Medline形式でダウンロードします。このあたりの手順は、【Rで自然言語処理】を、ほぼそのまま利用しています。(「データ分析系男子」さんありがとうございます。)分類に使用したMXNetの周りのスクリプトは【RのMXNetでirisを分類】を、ほぼそのまま利用しています(「なんとなくなDeveloper」さんありがとうございます。)


{mxnet}パッケージのインストール

とりあえずこのパッケージのインストールです。インストール方法は、他の日本語のサイトの説明通りでは、なぜかうまくゆきません。一応以下の流れでインストールできました。他のパッケージは特に苦労することなくinstall.packages()でインストールできました。

# first add the repo
drat::addRepo(“dmlc”)
# either install just one or more given packages
install.packages(“xgboost”)

cran <- getOption(“repos”)
cran[“dmlc”] <- “https://s3-us-west-2.amazonaws.com/apache-mxnet/R/CRAN/”
options(repos = cran)
install.packages(“mxnet”)


MedLine検索と保管

検索キーワードは普通に入力して検索すればよいのですが、あまりたくさんの文献があっても取り回しが悪いので今回は検索対象を今年出版の文献としました。またアブストラクトで分類しますので、アブストラクトが入力されている英語の文献に絞って出力するようにしました。

保存に当たっては、send toからFile-Medline形式を選択しました。

Medline読み込み

setwd(“C:/Users/Oshima/Documents/2018/R deep learning/TXT/”)

## define function
medline <- function(file_name){
lines <- readLines(file_name)
medline_records <- list()
key <- 0
record <- 0
for(line in lines){
header <- sub(” {1,20}”, “”, substring(line, 1, 4))
value <- sub(“^.{6}”, “”, line)
if(header == “” & value == “”){
next
}
else if(header == “PMID”){
record = record + 1
medline_records[[record]] <- list()
medline_records[[record]][header] <- value
}
else if(header == “” & value != “”){
medline_records[[record]][key] <- paste(medline_records[[record]][key], value)
}
else{
key <- header
if(is.null(medline_records[[record]][key][[1]])){
medline_records[[record]][key] <- value
}
else {
medline_records[[record]][key] <- paste(medline_records[[record]][key], value, sep=”;”)
}
}
}
return(medline_records)
}

## read Medline
fileVec <- list.files(file.path(getwd()),
pattern=”.txt”,
full.names = T)
categoryVec <- list.files(file.path(getwd()),
pattern=”.txt”)
dataMed <- lapply(fileVec,medline)

## exstract Title, Abstract and CategoryVec
dataMedList <- lapply(seq(1,length(dataMed)),function(x){
res <- lapply(seq(1,length(dataMed[[x]])),function(y){
out <- data.frame(title=dataMed[[x]][[y]]$TI,
abst=dataMed[[x]][[y]]$AB,
category=categoryVec[x])
return(out)
# return(x)
})
return(do.call(rbind,res))
# return(y)
})

dataMedDF <- do.call(rbind,dataMedList)

データの前処理

dataMH <- sapply(dataMed,function(i){
sapply(i,function(x){
if(all(!(names(x) %in% “MH”))){
strMH <- c()
}else{
strMH <- strsplit(x$MH,”;”)
}
strMHgsub <- gsub(” “,”_”,strMH[[1]])
strMHpaste <- paste(strMHgsub,collapse = ” “)
return(strMHpaste)
})
})

トピック頻度のデータフレームを作成しました。ここでは、上述のサイトに倣ってk=20でやっています。

library(textmineR)
library(text2vec)
library(tm)
library(topicmodels)

# create vector of abstracts
allTexts <- sapply(dataMed,function(i){
sapply(i,function(x){
ti <- gsub(“\\[|\\]”,””,x$TI)
if(all(!(names(x) %in% “MH”))){
strMH <- c()
}else{
strMH <- strsplit(x$MH,”;”)
}
strMHgsub <- gsub(” “,”_”,strMH[[1]])
strMHpaste <- paste(strMHgsub,collapse = ” “)
paste(ti,x$AB,strMHpaste,collapse=” “)
})
})

allTexts <- unlist(allTexts)

# preprocess
sw <- c(“i”, “me”, “my”, “myself”, “we”, “our”, “ours”,
“ourselves”, “you”, “your”, “yours”, tm:::stopwords(“English”))
preText <- tolower(allTexts)
preText <- tm::removePunctuation(preText)
preText <- tm::removeWords(preText,sw)
preText <- tm::removeNumbers(preText)
preText <- tm::stemDocument(preText, language = “english”)

# tokenize(split into single words)
it <- itoken(preText,
preprocess_function = tolower,
tokenizer = word_tokenizer)
#, ids = abstID)

# delete stopwords and build vocablary
vocab <- create_vocabulary(it,
stopwords = sw)

# word vectorize
vectorizer <- vocab_vectorizer(vocab)

# create DTM
dtm <- create_dtm(it, vectorizer)
# Term frecency
TDF <- TermDocFreq(dtm)

# modeling by package “topicmodels”
model <- LDA(dtm, control=list(seed=37464847),k = 20, method = “Gibbs”)

termsDF <- get_terms(model,100)
topicProbability <- data.frame(model@gamma,dataMedDF$category)

今回は学習用サンプルを80%, 評価用サンプルを20%にして、分けました。

train_size <- 0.8
n <- nrow(topicProbability)
perm <- sample(n, size=round(n * train_size))

# data for training
train <- topicProbability[perm, ]

# data for test
test <- topicProbability[-perm, ]

# imput data for training
train.x <- data.matrix(train[1:20])

# label for training
train.y <- as.numeric(train$dataMedDF.category) -1

# imput data for test
test.x <- data.matrix(test[1:20])

# label for test
test.y <- as.numeric(test$dataMedDF.category) -1


以上データの前処理でした。

階層型ニューラルネットワーク

データの前処理が終わりましたので、ここからがいわゆる機械学習の処理になります。iris記事に倣って、本稿でも次のようにしています。

引数備考今回のパラメータ
hidden_node隠れ層のノード(ニューロン)数 デフォルトは15
out_node出力ノード数(分類数、今回はA薬とB薬の2)2
num.round繰り返し回数(デフォルトは10)100
array.batch.sizeバッチサイズ(デフォルトは128)10
learning.rate学習係数0.1
activation活性化係数(デフォルトは'tanh')'relu'

‘tanh’, ‘relu’とはなんぞや、というのは解らない。「フリーランスのプログラマ」さんによると、「結論から言うとReluを使おう」なのだそうです。

# deep learning

library(mxnet)
mx.set.seed(0)

# 学習
model <- mx.mlp(train.x, train.y,
hidden_node = 5,
out_node = 2,
num.round = 100,
learning.rate = 0.1,
array.batch.size = 10,
activation = ‘relu’,
array.layout = ‘rowmajor’,
eval.metric = mx.metric.accuracy)

# 評価
pred <- predict(model, test.x, array.layout = ‘rowmajor’)

# 評価用データの分類結果(0, 1)
pred.y <- max.col(t(pred)) -1

# 評価データの正解の割合を算出
acc <- sum(pred.y == test.y) / length(pred.y)

print(acc)

結果

次の通り97.1% (95%CI; 92.6 – 99.2) の割合で正解に分類できました。

ナイーブベイズ分類器

機械学習的な何か

はじめに

その昔、2001年~2007年にかけて、遺伝子発現解析をやっていた頃、SVM (support vector machine)やNeural Networkを使用していました。肝臓由来の細胞に対し肝臓関連の副作用が知られている医薬品と、そうでない医薬品を曝露して、曝露後の遺伝子発現のパターンを見て、医薬品の肝毒性をin vitroで予測する、実験モデルを組み立てようとしていました。あまり、基礎的な経験のない中であれこれ考えても打開策が見つからず、また今思えば、根本的なデザインに無理があったようでもあり、結局なかなかよい出力が得られなかった苦い経験でした。

今回は基礎体力をつける意味で、インターネット上ですでにうまくいっているようなデータやスクリプトを基に自分なりに試してみます。正解があるものをトレースするのは、良い練習になります。

ナイーブベイズ分類器

今回試したのは、「ナイーブベイズ分類器」というものです。なぜこれを試すかと言うと、良い資料を見つけたからです。その資料を基に、試してみたという記事もあるようです。ざっと見たところ、数式でクラクラするのを我慢すると、何をやっているのかおぼろげながら見えてきます。あるカテゴリで相対的に高い頻度で出現する単語を指標にモデルを構築することになるようです。

スクリプト

機能する仕組みは使いながら考えるとして、スクリプトは次のようになります。全くリンク先の資料通りでは本当に芸がなさすぎるので、ちょっとだけ変えてみました。サンプルとしては、森鴎外と夏目漱石の作品を見分けるという課題で、MeCabのサイトで配布されているもの、を学習用の文章として、あとは青空文庫から「草枕」「こころ」(以上漱石)「花子」「あそび」(以上鴎外)をテスト用文章として、用いました。なお、青空文庫の文章はルビがうるさいので、delruby.exeを用いて処理したものでテストしました。

ルビの処理の様子(MS-DOSのコマンドプロンプトから)

delruby asobi.txt > ogai_asobi.txt
delruby hanako.txt > ogai_hanako.txt
delruby kokoro.txt > soseki_kokoro.txt
delruby kusamakura.txt > soseki_kusamakura.txt

これらの出力ファイルとMeCabのサイトから入手したデータをまとめて、setwdで指定したディレクトリの下の/data/writers/の下に置いて、次を実行しました。

 

library(RMeCab)

# data is downloaded from
# shift JIS
# http://web.ias.tokushima-u.ac.jp/linguistik/RMeCab/data.zip
# UTF8
# http://web.ias.tokushima-u.ac.jp/linguistik/RMeCab/data.tar.gz

# indicate data folder
setwd(“C:/Users/Oshima/Documents/2018/R MeCab/”)

# convert text files to vector
d <- t(docMatrix2(“data/writers”))

myNaiveBayes <- function(x, y) {
lev <- levels(y) #1
# term frequency in each category
ctf <- sapply(lev, function(label) colSums(x[y == label,])) #2
# term probability in each category smoothed using Laplace smoothing
ctp <- t(t(ctf + 1) / (colSums(ctf) + nrow(ctf))) #3
# number of each class documents
nc <- table(y, dnn = NULL) #4
# class prior
cp <- nc / sum(nc) #5
structure(list(lev = lev, cp = cp, ctp = ctp), class = “myNaiveBayes”) #6
}

predict.myNaiveBayes <- function(model, x) {
prob <- apply(x, 1, function(x) colSums(log(model$ctp) * x)) #7
prob <- prob + log(as.numeric(model$cp)) #8
level <- apply(prob, 2, which.max) #9
model$lev[level] #10!!
}

train.index <- c(1:2, 5:9, 11)
y <- factor(sub(“^([a-z]*?)_.*”, “\\1”, rownames(d), perl = TRUE))
# y; c(“ogai”, “soseki”)

model <- myNaiveBayes(d[train.index,], y[train.index])
predict(model, d[-train.index,])

ファイルは名前順にソートされますので、テストサンプルは、ogai, ogai, soseki, sosekiの順に出力されれば正解です。

 

おわりに

とりあえず、正解が得られていますが、これは元のリンク先の方の功績でしょう。正確な方法で他の手法と比較して実行時間を測定した訳ではないので印象なのすが、この手法は学習がかなり速いです。いずれにしても、とりあえずこのスクリプトの使い方は理解できたぞ。

Sample size calculation for a classical case-control study

ケースコントロールスタディのサンプルサイズの見積もり

臨床試験だと、試験に参加する被験者をリクルートするのは骨が折れる仕事ですので、必要最低限の被験者で正確な結果を得たいという欲求は大きく、「サンプルサイズ」の正確な見積もりが求められます。ケースコントロールスタディをする場合も、最終的に元資料を確認したり、新たにデータを入手したりする手間は少ない方が良いので、精密な見積もりが出来た方がベターです。しかし、新たにデータを得ることを想定していないデータベース研究では、サンプルサイズを見積もる要求はどのあたりに発生するでしょうか?データベースをベンダーから購入したり、解析をCROに依頼する際に目的の結果にアプローチできるだけの情報を持っているかどうかを見積もる場合には有用かもしれません。まぁ、流行だということで偉い人からの号令で動いているような多くの人は、何らかの結論にアプローチしたいのではなく「アプローチしている姿勢を見せる」と言う、行動計画ありきで動いているみたいですので、当該ベンダーのデータには、リサーチで明らかにしたい結論に到達できるような、十分なデータが含まれないことが購入前あるいは解析の発注前に明らかになったとして、頭を切り替えるかそのまま突き進むかは目に見えていますが。

それはさておき、単純にケースおよびコントロールでそれぞれ、何人中何人が被疑薬に曝露されていて、そのオッズ比を求めるというようなデザインでのサンプルサイズの求め方がありますので、次の資料のデータをトレースしてみます。

Woodward M (2005). Epidemiology Study Design and Data Analysis. Chapman & Hall/CRC, New York, pp. 381 – 426.

(p. 412) A case-control study of the relationship between smoking and CHD is planned. A sample of men with newly diagnosed CHD will be compared for smoking status with a sample of controls. Assuming an equal number of cases and controls, how many study subject are required to detect an odds ratio of 2.0 with 0.90 power using a two-sided 0.05 test? Previous surveys have shown that around 0.30 of males without CHD are smoker.

事前の見積もりに必要なのは、odds ratio 2.0, power 0.90, two-sided 0.05 testという、研究者が設定するパラメータと、先行研究から得ておくべき背景の情報として「冠動脈疾患にかかっていない男性の30%がスモーカーだ」という、コントロール群の曝露頻度に相当する情報です。あと、コントロールを選ぶ際はマッチングは行わないで、ケースと1:1となる人数にするとしています。ここで設定しているオッズ比は、「オッズ比2.0以上だとリスクとして警告する価値がある」と研究者が思い込むような任意の数字で、基準があるわけではないです。これを、認識しているかどうかで、結果が出た際に(特に差がつかなかった時に)データの解釈の書き方が大きく変わります。

> epi.ccsize(OR = 2.0, p0 = 0.30, n = NA, power = 0.90, r = 1, rho = 0,
+ design = 1, sided.test = 2, conf.level = 0.95, method = “unmatched”,
+ fleiss = FALSE)
$n.total
[1] 376

$n.case
[1] 188

$n.control
[1] 188

答えは
A total of 376 men need to be sampled: 188 cases and 188 controlsだそうですので、一応、数値は正解です。

「冠動脈疾患にかかっていない男性の30%がスモーカーだ」という先行研究も、よくよく考えると書かれていることがあいまいです。冠動脈疾患にかかっていない男性が将来かからないとは言えないですし。禁煙に成功した人をどう扱っているのか情報もないです。ま、それもさておき、背景の喫煙男性が30%も世の中にいたおかげで、少ないサンプルで研究が成立しそうです。これが、世の中の男子の1%しか使用していない曝露(これが医薬品への曝露なら、世の中の1%の男性が使用しているような薬ならブロックバスターですが)曝露との関係を見ようとすると、次のようになります。

> epi.ccsize(OR = 2.0, p0 = 0.01, n = NA, power = 0.90, r = 1, rho = 0,
+ design = 1, sided.test = 2, conf.level = 0.95, method = “unmatched”,
+ fleiss = FALSE)
$n.total
[1] 6418

$n.case
[1] 3209

$n.control
[1] 3209

6418例の情報を収集する必要が出てきます。このくらいの数になると、どのようにデータを集めるにしても自前でデータを準備して集計するのは大変そうです。組織だって行動する必要がありそうです。さらに、背景の曝露を0.1%に下げると、次のように6万人超えのサンプルの収集が必要になります。

> epi.ccsize(OR = 2.0, p0 = 0.001, n = NA, power = 0.90, r = 1, rho = 0,
+ design = 1, sided.test = 2, conf.level = 0.95, method = “unmatched”,
+ fleiss = FALSE)
$n.total
[1] 63158

$n.case
[1] 31579

$n.control
[1] 31579

副作用を研究対象にしていると、このcaseの3万人超えの副作用が出ていないと、結論が出せないように見えます。つまり、副作用の例にあてはめますと、3万人以上の患者さんが副作用になるという、結構な大惨事になってからしかこの方法で結論が出せないという、悲惨な手法です。どこに間違いがあるのでしょうか。おそらくそれは、有名なレンツの研究では結果として上記の例よりかなり大きな数字になっているパラメータでしょう。「オッズ比が20~50になるくらいの本当の強いリスクかどうか」を検証したいという、リサーチクエスチョンを立てるのです。

もう一点できる事やるべき事は、背景での曝露頻度を上げるために、対照集団を絞り込むこともできそうです。結論部分で述べたい一般論との兼ね合いにもなりますが、多くの場合世の中一般の集団からサンプルを得る必要はなく、気になる医薬品が使用されるような特定の基礎疾患にかかっている人の中での曝露でp0を設定すれば、調査対象数を少なく見積もることもできそうです。

Don’t forget to load a library prior to the above-mentioned scrips.

library(epiR)

LearnBayes R パッケージによる臨床試験と市販後の副作用データの解析

RのLearnBayes パッケージで臨床試験と市販後の副作用データを解析してみました

ここに提示されるデータは、治験・市販後の実データを元にしていますが、実際のデータではありません。LearnBayesというRのパッケージはベイズ推計を行えるような関数を提供しています。説明書を読みながら、このパッケージの一部機能を使ってみてみました。


1.海外試験の結果が事前にあって、国内の副作用情報が得られた

海外の治験のデータがすでにあり、その後国内で試験を行って副作用データが新たに得られた。と言う場合を想定した解析をしてみた。

海外臨床試験では、被験者135例中50例に副作用が報告された。普通の頻度の解析によると副作用が報告される割合は、本剤使用者の37.0% (95%CI; 28.9 – 45.8)となる。

> binom.test(50, 135)

Exact binomial test

data: 50 and 135
number of successes = 50, number of trials = 135, p-value = 0.00328
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
0.2888945 0.4576672
sample estimates:
probability of success
0.3703704

この計算結果をもとに、β分布を推定する。95%信頼区間の上限(p=0.975)を与えるxの値は0.4576672であり、最尤値(p=0.5)を与えるxの値は0.3703704。この2点を与えれば事前確率のβ分布のパラメータが推定できる。

quantile2 <- list(p=.975, x=.458)
quantile1 <- list(p=0.5, x=.370)
beta_parm <- beta.select(quantile1, quantile2)
a <- beta_parm[1]
b <- beta_parm[2]

国内臨床試験では海外より被験者が少なく、23例が安全性解析対象症例となった。23例中11例で副作用が報告された。この結果と事前推定されているβ分布のパラメータを元に前後の分布を図示する。

# 事後分布
curve(dbeta(x,a+s,b+f), from=0, to=1, xlab=”p”,ylab=”Density”,lty=1,lwd=4)
# 実験結果から出てくるイベント発生頻度の尤度
curve(dbeta(x,s+1,f+1),add=TRUE,lty=2,lwd=4)
# 事前分布
curve(dbeta(x,a,b),add=TRUE,lty=3,lwd=4)
legend(.7,9,c(“Prior”,”Likelihood”,”Posterior”), lty=c(3,2,1),lwd=c(3,3,3))

国内試験のデータの分布(荒い破線)のデータが得られた後も、事後の分布(実線)は事前分布(細かい破線)と大きく変わらないようだ。

# 事後の分布による推定

> # 90%信頼区間
> qbeta(c(0.05, 0.95), a+s, b+f)
[1] 0.3222927 0.4550214
> # 点推定
> qbeta(0.5, a+s, b+f)
[1] 0.3872558

事後の確率は0.39 (90%CI; 0.32 – 0.46)で、国内のデータ0.48 (90%CI; 0.30 – 0.66)とずいぶんずれているように見える。

# 国内データのみによる推定

> binom.test(11, 23, conf.level=.9)

Exact binomial test

data: 11 and 23
number of successes = 11, number of trials = 23, p-value = 1
alternative hypothesis: true probability of success is not equal to 0.5
90 percent confidence interval:
0.2960934 0.6648524
sample estimates:
probability of success
0.4782609

2. 治験の結果をもとに製造販売が承認され、市販後に医薬品が使われて安全性データが集積した

上記の臨床試験の結果を元に承認申請がなされ、製造販売の承認を得た。市販後はこの医薬品は治験に参加した被験者の数よりはるかに多い患者さんに使用されて多くの安全性データを得た。治験の結果を事前分布、市販後のデータを加えて事後の分布を集計してみる。

上記の分布を事前分布の確率密度関数のパラメータ推計に用いる

# 90%信頼区間の上限 0.95のx値は0.455
quantile4 <- list(p=.95, x=.455)
quantile4$x <- qbeta(0.95, a+s, b+f)
# 事前確率(点推定; p=0.5)は0.387であった
quantile3 <- list(p=0.5, x=.387)
quantile3$x <- qbeta(0.5, a+s, b+f)
beta_parm <- beta.select(quantile3, quantile4)
a <- beta_parm[1]
b <- beta_parm[2]

国内の市販後の調査に登録され安全性解析対象とされた患者は2072例であり、そのうち964例に副作用が報告された。この結果と事前推定されているβ分布のパラメータを元に前後の分布を図示する。

s <- 964
f <- 2072-s
# 分布を見てみよう
# 事後分布
curve(dbeta(x,a+s,b+f), from=0, to=1, xlab=”p”,ylab=”Density”,lty=1,lwd=4)
# 実験結果から出てくるイベント発生頻度の尤度
curve(dbeta(x,s+1,f+1),add=TRUE,lty=2,lwd=4)
# 事前分布
curve(dbeta(x,a,b),add=TRUE,lty=3,lwd=4)
legend(.7,35,c(“Prior”,”Likelihood”,”Posterior”), lty=c(3,2,1),lwd=c(3,3,3))

 

市販後の調査のデータの分布(荒い破線)のデータが得られた後、事後の分布(実線)は事前分布(細かい破線)から大きく右へシフトした。

# 90%信頼区間
> qbeta(c(0.05, 0.95), a+s, b+f)
[1] 0.4427958 0.4776115
> # 点推定
> qbeta(0.5, a+s, b+f)
[1] 0.4601712

図から受ける印象の通り、事後の確率は0.46 (90%CI; 0.44 – 0.48)は、事前のデータ0.39 (90%CI; 0.32 – 0.46)とずれているように見える。実は、事後の確率は、国内治験のデータ0.48 (90%CI; 0.30 – 0.66)を精密にしたように見える。

3. まとめ

ここまでやってみた感想

  1. 事前の試験・調査と事後とで大きく規模(被験者数)が違う場合、被験者数の大きな方の試験・調査の結果が事後の分布に反映しているだけではないか
  2. それなら単に規模の大きな試験・調査の結果の分布を集計しても同じではないか、あるいは、単純に足したような併合解析でも結果は似たようなものになるのではないか
  3. この様な例では、国内外で副作用の報告頻度が異なるという仮説を導きたい
  4. 結局事後分布って何を示しているものなんだろうか?
  5. なぜ、β分布を想定するのだろうか?

疑問がより具体化したので良しとしよう。

 

Case Crossover Design – (3)

Case Crossover Design – (3)

前回の記事のつづきです

Logistic regression model

このアプローチでは、観察期間を単位期間ごと(この場合は1hr)に分割して、イベントが発生した時以外は、コントロールとして、多くのcontrolと少数回のcaseを観察したcase-control studyのようにみなします。原文では[the case-crossover design can be viewed as matched case-control design with 1:M matched pairs]となっていまして、この、「みなす」というのが感覚的によくわからないのですがそういうことらしいです。例題では一人につき1年間観察して、1回AMIが発症たことにしていますので、1例の症例が、集計上8759例のcontrolと1例のcaseのように扱われます。例題では10例いますのでトータルの集計上の観察症例数は87600例と表示されます。matched pairを示す指標としてcase idを使用した、conditional logistic regression modelを用います。Formulaには[case~exposure+strata(id)]を入れます。

ちなみに、このスクリプトで使用されていますreshape2というライブラリのmeltは、こんなデータの変形をしたいと思うときに手作業でやってるようなデータの変形をやってくれる興味深い関数です。

matrix<-matrix(round(c(rr,lo,hi,or,lo.or,hi.or),2),nrow=2,byrow=TRUE)

rownames(matrix)<-c(“RR”,”OR”)

colnames(matrix)<-c(“Value”,”low 95% CI”,”high 95% CI”)

matrix

 

mat<-matrix(, nrow = T-1, ncol = 0)

for (i in 1:10) {

if (T%%frq[i]==0) {

exposure<-c(rep(c(1,rep(0,T/frq[i]-1)),frq[i]))[-T]

}   else {

exposure<-c(rep(c(1,rep(0,trunc(T/frq[i])-

1)),frq[i]),rep(0,T-frq[i]*trunc(T/frq[i])))[-T]

}

mat<-cbind(mat,exposure)

}

 

commat<-rbind(efftime,mat)

library(reshape2)

data.wide<-as.data.frame(commat)

colnames(data.wide)<-c(1:10)

data<-melt(data.wide,measure=c(1:10))

colnames(data)<-c(“id”,”exposure”)

data$case<-rep(c(1,rep(0,T-1)),5)

head(data)

 

library(survival)

mod<- clogit(case~exposure+strata(id),data)

summary(mod)

結果として得られたodds ratioは、前記事の未調整のORと大体同じになります。

 

Time trend adjustment with conditional logistic regression model

Case crossover designではcase自身をcontrolとして用いるため、年齢・性別・既往歴や基礎疾患といった症例の背景因子のような交絡因子は調整されているとして扱われています。しかしながら、トレンドの交絡を避けることができません。トレンドの交絡とは?ということですが、参考にしている文献(中国論文1とMaclure文献 2)では、MIの発現は日内変動のパターンを取ることが知られていることを例にしています。そしてコーヒーを飲むのもおそらく日内変動のパターンを取りそうです。そこで、朝、昼、午後、夜に対応して1, 2, 3, 4の値を取る変数clockを導入して調整します。(ただし、例題ではAMIの発症時刻が不明ですので、データがないということでwarningが出ます。私の感覚ではvariable にmissing dataがあるとその観察は計算から除外され、自由度が減るという方がしっくりきます。)

data$clock<-c(rep(1,T/(3654)),rep(2,T/(3654)),rep(3,T/(3654)),rep(4,T/(3654)))

mod.adj<- clogit(case~exposure+clock+strata(id),data)

summary(mod.adj)

1.
Zhang Z. Case-crossover design and its implementation in R. Ann Transl Med. 2016;4(18):341. [PubMed]
2.
Maclure M. The case-crossover design: a method for studying transient effects on the risk of acute events. Am J Epidemiol. 1991;133(2):144-153. [PubMed]

vigiRank beyond the BCPNN signal detection

先日の記事でBCPNNは、WHOが使用しているシグナル検出方法だ、というようなことを書きましたが実はWHOは少し軸足を別のものに移してきています。その名前はvigiRank。1,2

vigiRankとはどういうものでしょうか。まずは、説明です。3

vigiRank is a data-driven predictive model for emerging safety signals. In addition to disproportionate reporting patterns, it also accounts for the completeness, recency, and geographic spread of individual case reporting, as well as the availability of case narratives. Previous retrospective analysis suggested that vigiRank performed better than disproportionality analysis alone.

曰く、新興安全性シグナルを検出する、データ駆動予測モデル。不均衡な報告パターンに加えて、個別症例報告の以下の点を考慮する。

  • 完全性 4(具体的には性別・年齢・被疑薬の使用理由・投与開始日・イベント発現日・narrative・dechallenge rechallenge情報や転帰情報の有無を織り込んだ指標)
  • 最新性 (文献では直近3年の報告の件数(割合?)が示されていました)
  • 地理的な広がり (文献では複数国からの報告が例示されていました)
  • 病歴が入手されているか(定型文や断片的な情報は未入手扱い)

単純なdisproportionality分析より優れたパフォーマンスを示す可能性が示唆されている。

使うパラメータが増えた分利用できる症例数は減りそうです。次の動画の最後の方で紹介されています。この演者は全体にわかりやすいはっきりとした発音なのですが、WHOを「ダブリュエイチオー」ではなく、「フー」と発音しているので聞き落しなく。

スライドはこちら

<http://www.imi-protect.eu/documents/PROTECTSymposium-Tutorial-Statisticalsignaldetection-UMC.pdf>

References:

1.
Watson S, Chandler R, Taavola H, et al. Safety Concerns Reported by Patients Identified in a Collaborative Signal Detection Workshop using VigiBase: Results and Reflections from Lareb and Uppsala Monitoring Centre. Drug Saf. September 2017. [PubMed]
2.
Caster O, Juhlin K, Watson S, Norén G. Improved statistical signal detection in pharmacovigilance by combining multiple strength-of-evidence aspects in vigiRank. Drug Saf. 2014;37(8):617-628. [PubMed]
3.
Caster O, Sandberg L, Bergvall T, Watson S, Norén G. vigiRank for statistical signal detection in pharmacovigilance: First results from prospective real-world use. Pharmacoepidemiol Drug Saf. 2017;26(8):1006-1010. [PubMed]
4.
Bergvall T, Norén G, Lindquist M. vigiGrade: a tool to identify well-documented individual case reports and highlight systematic data quality issues. Drug Saf. 2014;37(1):65-77. [PubMed]

Case Crossover Design (2)

Case Crossover Design – (2)

Relative Riskの計算の流れ

前回のコードを少し詳しく見てゆきます。

コーヒーの一時的な効果は、飲んでから1時間継続すると仮定します。Vector c には、AMIで救急外来を受診した患者さんから聞き取った、コーヒーを飲んでからAMI発症までの時間(hr)を代入します。

  • t<-c(9,1/3,3,22,6,7,12,5,0.5,24)

1年間に何杯のコーヒーを飲むかという頻度(杯/year)をfrqに代入します。今回のこの値の使い方に基づき、一般化してこのスクリプトを使用する上では、1年あたりのTransient effect time(hr)がfrqという見方の方が良いだろうと思います。

  • frq<-c(730,365,36,1820,2920,24,730,730,3650,365)

Tには、1年間は何時間かという値を入れます。今回は全症例1年を観察期間にしたので定数になっていますが、一般化する上では、評価の対象にした観察期間と理解すると良いだろうと思います。症例ごとに観察期間が違う場合はTもベクターにできると思います。

  • T<-365*24

efftimeには、AMIの発症がコーヒーを飲んで1時間以上経過していたらfalse (0), 1時間未満であればtrue(1)というフラグを代入します。Transient effect timeを1hrにしていますので、判定の条件は t>=1を使用していますが、Transient effect timeが2hrなら判定条件をt>=2にしたらよいでしょう。その際もフラグ(返り値)は 0, 1のままで結構です。

  • efftime<-ifelse(t>=1,0,1)

RRの計算

Mantel-Haenszelの計算式からRR (relative risk) を計算します

としましたので、次の式になります。

  • rr<-sum(efftime*(T-frq))/sum((1-efftime)*frq)

 

分散を求める式では

この部分をコード化すると

  • var.log<-sum(frq*(T-frq))/(sum(efftime*(T-frq))*sum((1-efftime)*frq))

標準誤差は分散の平方根で以下のようになります

  • se.log<-sqrt(var.log)
  • lo.log<-log(rr)-1.96*se.log
  • hi.log<-log(rr)+1.96*se.log
  • lo<-exp(lo.log)
  • hi<-exp(hi.log)

 

ORの計算

オッズ比は次の式で表現されますので

これをコード化すると

  • or<-sum(efftime*(T-frq-(1-efftime)))/sum((1-efftime)*(frq-efftime))

分散は次のように表現されますので(元論文のこの式の「=」の左側、var[ln(RRchm)] は、おそらくvar[ln(ORchm)]の誤植だろうと思っています)

これをコード化すると次のようになります

  • var.log.or<-(sum(efftime*(T-frq-1+efftime)*(efftime+ T-frq-1+efftime))/(2*(sum(efftime*(T-frq-1+efftime)))^2))+(sum(efftime*(T-frq-1+efftime)*(1-efftime+frq-efftime)+(1-efftime)*(frq-efftime)*(efftime+(T-frq-1+efftime)))/(2*sum(efftime*(T-frq-1+efftime))*sum((1-efftime)*(frq-efftime))))+(sum((1-efftime)*(frq-efftime)*(1-efftime+frq-efftime))/(2*(sum((1-efftime)*(frq-efftime)))^2))

標準誤差は分散の平方根で以下のようになります

  • se.log.or<-sqrt(var.log.or)
  • lo.log.or<-log(or)-1.96*se.log.or
  • hi.log.or<-log(or)+1.96*se.log.or
  • lo.or<-exp(lo.log.or)
  • hi.or<-exp(hi.log.or)

で、集計にはこれとは別のアプローチが紹介されていましたので次の記事へつづきます

 

Sequence Symmetry Analysis (SSA)– (3)

問題の糸口が見えてきて

前記事で悩んでいた部分がクリアになってきました。そして、自宅SASのライセンスが切れていたという問題も解決しました。

このSASは無料で使用できてちょっとテストコードを走らせるのにはいいんですが、ビッグデータは扱えないなどの制限があります。OSIM2の巨大データも読み込めません。ただ、元データが大きくても実際の解析対象をデータを抽出して、絞ってデータのサイズを小さくすれば無料SASでも十分データ集計ができます。とりあえず、抽出した後の、_drug  _conditionのデータからスタートです。こんな感じのSASスクリプトを実行しました。

SASの実行結果

これは、基本的に他人様の書いたスクリプトなので、この結果が正解だろうという前提で提示しています。

自作のスクリプトで実行…おやっ?

で、同じデータを自作のスクリプトでも実行。自作スクリプトはSQLで集計して、統計的な集計はRで実行、と言う2段構えにしました。データ集計はSQLが快適で良いのですが、F分布の確率密度関数の扱いがSQLだけでは私が苦手なので、データを出力してRスクリプトを実行しました。初めからRでデータ集計をしたら良いのでは?と思うかもしれませんが、Rは大きなデータをデータフレームに入れようとすると、全部オンラインメモリに読み込もうとするのかメモリを食うわ、何かデータのコピーを繰り返すのかスピードが落ちるわ。しまいにはゲロはいて死んでしまいます。ですので、仕方なしにこんなことしています。で、次が実行結果です。

ASR_UCI, ASR_LCIの値が、SASの出力と微妙に一致しません。今回はすぐ気付いたけど、実は当初悩んでいたのも、この問題だったりして。

この状況は以前にもあった

上手のASRやNSRの出力を見て気づきました。以前と同じ失敗をやらかしてしまったようです。windowsのコントロールパネルの言語設定の追加の設定

の数値タブの小数点以下の桁数を増やします。

気を取り直して再チャレンジ

データを読み込みなおして、気を取り直して実行です。

これなら、SASの正解と一致します。めでたしめでたし。

SSAの理解も深まってきたし、これで集計する道筋がついたぞ。

 

Sequence Symmetry Analysis (SSA) – (1)

はじめに

以前Sequence Symmetry Analysis (SSA) がイマイチうまく算出できないという話を書いて、そのまま放置していましたけど、ここの所American College of Physiciansで新しいプロジェクトを開始するという件が、いよいよ動き出すことになってその準備が佳境に入ってきています。先週は、平日に会社を1日休んで準備にあてていました。勤労感謝の今日もかなりの時間をその準備に使っています。旗振り役の某大学の先生とも電話で打ち合わせしましたが、彼女は勤労感謝の今日も休日出勤で一日中病院にいらしたという事で、それでも、学会のプロジェクトの仕事もされていたようです。そうまでして、こういうプロジェクトをしようと言うバイタリティには脱帽です。わたしも、ACPのプロジェクトが忙しくなってきたので他の事はぼちぼち進めます。

本題の入り口

SSAについて、まずは日本語の資料から少しずつ読み解いてゆこうと思います。粗順序比は難しくないので、元資料でよいとおもいます。悩んでいるのは、無効果順序比の集計の説明パートから。

まず、ここで疑問が発生。ここに至る前段階で「調査期間中に新規にAとBが発生した患者」を選択しているので、この定義だと、必ずN=nになります。Nとnを分けて記述する意味があるのか? あるとして、いったいどういう事だろうか。

次に、aを求めるところで、分母にxについての∑があるので、観察期間人数の情報になると思うのだが、それを人数nの次元で割って確率になるのだろうか? 分母にも観察期間人数の次元のデータを以て来なくていいのだろうか?

この点を原著に戻って確認しないと、コード化できない感じです。つまり、入口の理解でつまずいていることが確認できました。

(つづく)

Changing high impact journal

2017年はproductivity の高い年を過ごしました。この文章の大部分を書いているのは2017年秋ですが、この記事を公開できるのはAnnals of Internal Medicine誌およびJAMA oncology誌でarticleが出版され公開された後にしましたので、もう2018年の冬です。2017年1年でCirculation のリサーチレター、Bone Marrow Transplant, Ann Int Med のレターそしてJAMA oncologyの短報が受理・出版されました。C誌、A誌、J誌でそれぞれ驚いた点があります。


Circulation: この雑誌に掲載された私の論文はVEGFシグナル系の阻害薬についての論文でした。投稿から受理まで、編集部・レビューワーとやり取りしてる間、一貫してVEGF阻害薬という表現でコミュニケーションしていました。解析したのはVEGFつまりリガンド側を阻害するものと、その受容体側を阻害するものがありました。これらをひっくるめて受容体の活性化を阻害するものという事で、広義ではVEGF阻害薬とまとめて表現しても間違っているわけではありません。その表現で一応専門家によるレビューも通っているのでアクセプトした状態から、その表現を変えるようにリクエストが来ることは通常はありません。ですが、今回はいざ出版という、ガリプルーフをもらうタイミングで「(狭義で)VEGF阻害といえば、リガンドの阻害薬であって、受容体の阻害薬を含める表現ではない」というような横やりが入り、出版直前で論文のタイトルの修正を依頼されました。一旦受理されていますので、出版部の方は低姿勢で依頼してきました。もちろん快く引き受けて、タイトルから本文、何か所も修正しました。ちゃんと全部修正ができているか念のため確認したりするのに神経と時間を使いました。

欧米の出版社とかは、業務をやっつけ仕事としてやっている人が多いだろうと思っていたので、出版物のクオリティを高めるけど出版スケジュールに悪影響が出かねない今回の様な対応をとったことは驚きでした。


Ann Int Med: この雑誌は、レターの投稿方法が一風変わっています。あたかもFacebookや一般のblogにコメントするような形で投稿します。ホームページ上で掲載された多くの研究論文には、下の方にコメント欄があって、そこに入力すれば投稿することになります。簡単な審査はあるようですが、スパムのようなものでなければ、投稿したコメントはしばらくしたら、ホームページ上で公開され、インターネットを介して誰でも見れるようになります。ただし、ホームページで公開されたコメントがすべて雑誌に掲載されるわけではありません。ホームページで公開されますと、一般の読者や元の研究論文の著者らの目に触れ、そうした人たちがコメントに対してさらにコメントしたりします。こういった、世の中の反応を見て編集者が雑誌に掲載するコメントを選びます。おそらく、盛り上がったやり取りがなされていたら、それはつまり、世の研究者らの関心が高い話題についての議論だということでしょう。ホームページにコメントを公開することで、世の中の注目度を観察して、それを参考に編集者は選んでいるのです。インターネットでの記事の公開と、紙面での雑誌の編集が双方向に作用しているのです。

一方で、この手軽さが問題を引き起こしました。通常の雑誌の記事の投稿であれば、投稿時に共著者の情報も正確に提出することが求められます。しかし、今回はとりあえずコメントと、筆頭著者の連絡先だけが求められていました。ですので、accept のレターには、共著者のメールアドレスを教えてほしい、という内容が書かれていました。ここで、大変な粗相をしてしまいました。じつは別のコメントについてacceptのレターが来たのと勘違いして、別の共著者にCOIのフォームやcopyright transferの確認をしてしまったのです。この時連絡を取ったみなさん、Ann Int Medにお名前が掲載されるとして喜ばれたはずです。「間違っていました、別の共著者と投稿した奴」でしたと説明するのが本当に気まずかったです。


JAMA oncology: こちらの編集の方にも驚かされました。投稿して2-3週間ほど経過したときにdecision letterが来ました。1週間ほどで来る連絡は通常忘門前払いです。編集者がざっと見てレビューワーにも回さずに返却します。2-3週間も速い方です。このタイミングで来る返信も経験的にはrejectが少なくありません。レビューワーがあまり深く読み込まずに、「この雑誌には向いていない」とか言って返します。でも今回は忘れもしません。健康診断を受けるために近くの医療センターで検査を待っているときにメールが届きました。健康診断の検査を受け、その待ち時間に何度もメールを読み返しました。それとほぼ同時にCOIのフォームやcopyright transferのレターが共著者の方にも送られていました。そして、内容はと言うとレビューワー二人がそろって興味を示してくださっていました。
・ This article should be prioritized for publication. (reviewer#1)
・ The conclusions are important to disseminate to practitioners quickly. (reviewer#2)
ところが、このprioritize, quicklyは若干曲者で、再解析が必要な内容を含め2-3週間で回答するようにという内容でした。通常であれば、2-3か月の間にリバイスするように要求されるのですが、異例の短さです。幸い、初回の投稿前に検討したようなデータでしたので、実際には再解析することなく、以前検討したデータを探してテーブルにまとめる程度で対応できました。

さらに、奇妙な指摘は続きます。「FDAのデータを使用したということだが、FDA内部でこの件は検討されているのか?」そう言われても、FDAを辞めたのは20年前だし、知り合いがいないわけではないが内部の事を聴けるような間柄ではないし。「公式の公開文書を見る限り、FDAが検討した形跡はない」としか答えられません。

異例なことは次のリバイスでも起きます。reviewer#2がなぜかご自身の名前を明かしたうえで、リバイスをリクエストしてきました。そんなに難しいことではなかったのですが10日ほどで対応しろと、その、スケジュール感が若干つらかったです。幸い、その週は会社の仕事がそこまで厳しくなかったので、平日も帰って夜にも集計をする気力が残っていました。

無事アクセプトされ、ガリプルーフが来ると驚いたことに、タイトルを修正され、アブストラクトの項目を結合して文章をまとめ、テーブルのタイトルを修正し、とかなりジャーナルのスタイルを優先した形での変更がなされていました。数値が多いのでQC箇所が多数です。テーブルも体裁が修正されたので一通り数値をチェックです。数か所コメントと修正依頼を書いて、それでアップルーブしました。アップルーブ後に共著者から、修正した個所に文法的な間違いが発生していることを指摘されましたが、データやデータの解釈等論文の主旨にかかるものではないエラーであるため、アップルーブ後の修正を求めないことにしました。

最後に、もう一点、JAMA oncologyは初回のレビューが終わった時点でtwitterでつぶやく言葉を一緒に述べるようにとリクエストしてきました。そう。出版社がつぶやく記事の宣伝のためにtwitter用の言葉も一緒に提出させるのです。このJAMAのtwitterやAnn Int Medのレターを見ますと、新しい技術・仕組みを取り入れて出版社も生き残りにチャレンジしているのです。また、Circulationの件のようにリスクを冒しても質を高めるようなこだわりの側面を見ました。これまで抱いていた欧米人のイメージを書き換えるような経験です。彼らチャレンジャーは旧態依然としたままでは、それぞれの世界で生き残れないのを知っているのでしょう。


2017年の年末に、東京大学医科学研究所の病院同窓会が開催されました。そこでの、研究所の所長の挨拶が印象に残っています。まず、第一声がマスメディアのカメラの前で頭を下げなければならないような事態が発生せず無事年を越せそうだ、として、職員に対して感謝の意を述べました。このくだり、言葉は違いますが同じ内容を病院長も延べられました。東京大学の研究所やその附属病院という、世間からの注目度も高い、そして、かなり大きな組織ですので、その組織の長をすることで神経をすり減らしていることが伝わってくるご挨拶です。

次に述べられたのが、研究所の歴史に絡んで、今後の生き残りについてのお話でした。東京大学医科学研究所は昨年開所125周年を迎えた記念行事を開催しましたが、開所当時は国民の健康に大きな影響を持っていたのは感染症でした。開所当時の伝染病研究所(現医科学研究所)が戦った標的は、感染症であり、感染性病原体でした。そしていまから50年前には、医科学研究所に改組され、遺伝子やゲノム研究に研究対象や手法がシフトしてゆきました。そして、現在医科研は研究対象を実社会で膨大に拡張してきている大規模データに舵を切ろうとしています。これもまた、生き残りをかけて新しい可能性にチャレンジしようとしているものだと思われます。

self-controlled case series (SCCS) – (2)

前回のおはなし

1. SCCSを再び

SCCSを自分なりにもう一度噛み砕いて計算の流れを納得した上で、それが間違っていないことを確認したいというのが目的再び挑戦です。前回使用した他人さまの書いたプログラムを参考に、計算の細かい考え方がわかったところで、もう一度どういう計算が必要かを考えています。始めは写真のような、手書きのスケッチで考え方を整理。

2.R→SQL

他人様の書いたRスクリプトを、SQLで表現しなおして、中間テーブルのデータを比較。結果を出力すると、正しいスクリプトだと38行になるところが、今回作成したスクリプトでは39行に?観察期間外にワクチンが接種された患者さんがいることを考慮した例外処理を含め忘れていました。

そんなこんなで、例外処理をするスクリプトを加えた結果が次の写真です。logの有効桁数が違うけどそれ以外内容は同じになりました。

 

3.  中間テーブルは一致したが…

上の通り、中間テーブルは一致しましたが、オッズ比が一致しません…そんな馬鹿な?しかも、だいたい同じくらいになるんだけど、微妙に不一致。

自分の集計結果:

論文の集計結果:

 

4.桁数が減っている???

いろいろ調べていると、SQL出力をcsvファイルにして、それをRに取り込んだところでデータの桁数(小数点以下)が減っています。元々小数点以下6桁あったはずなのに、2ケタに丸められています。何でこういうことになるのでしょうか? 読み込むRのread.csv関数の設定か? はたまた、読み込んだ後にdata.frameにするところで、宣言しなくてはいけないのか?

5. SQLの集計の出力がおかしい

結局読み取り側の問題ではなく、書き出しに問題ありでした。書き出しの際には、Windowsのコントロールパネルの言語設定のところから桁数を2 -> 6 と大きくすることが必要だということです。

 

6. めでたしめでたし

ちゃんとSQLのデータを吐き出すことに成功し、読み取って計算すると、論文のデータと一致しました。だいぶ理解が深まってきたぞ。

スクリプトはこちら

Letterを書くことについて

Letterを書くメリット

この記事は、以前私がqiitaで公開していた記事とそのコメントをまとめて、このHPに移動したものです。

Letter to the editor, correspondence, short communication等は考えたことを出版するにはよい選択肢である

  • 第一に、通常の論文より出版される機会が高い
  • 第二に、通常、タイトルが付いた学術雑誌の記事として索引されるので、文献検索システムで検索できる

Letters to the editor merit your consideration as a publication option:
– first, because letters and short pieces stand a better chance of being published than longer articles,
– and second, because published letters to the editor generally are titled and indexed, thus making them retrievable as articles in the journal.

Reference: LaVigne P. Letters to the editor. In: Taylor RB, Munning KA, eds. Written communication in family medicine. New York: Springer-Verlag; 1984:50.

Types of Letter

Letter to the Editorにはさまざまな型のものがある。

1. Attaboy (よくやった、でかした)

“I would like to congratulate Dr. Dellinger for anexcellent overview of cardiovascular management of septicshock.” で始まり, “This is a very useful clinicalreview in the management of a condition with a high mortalityrate, and I would certainly use this decision tree in my clinicalpractice”と結ぶようなレターの例がないわけではないが、その領域で名の知れた専門家でない限り、一般の研究者・医師がこの型のレターを投稿しても、紙面を割いてもらえる機会はあまり期待できないだろう。
Reference
Pravinkumar E. Letter: cardiovascular management of septic shock. Crit Care Med 2004;32(1):315

2. New Idea to Add

記事で述べられた知識をもとに、さらに議論を深めたいと思うことがあるだろう。糖尿病性足潰瘍の治療について述べられた記事に対して、2人の読者が“An effective adjunctive therapy for wound debridement that was not mentioned is maggot therapy”としてレターを投稿した。
糖尿病性足潰瘍に対するうじ虫治療の効果について、私は詳しくないが、6報の文献を参照しその科学的根拠を示していることに加え、その治療法を2名の読者が指摘するという点がその意義を支持している。
Rererence
Summers JB, Kaminski J. Letter: maggot debridement therapy for diabetic necrotic foot. AFP 2003;68(12):2327

3. Disagreement

記事に反対意見を表明する読者もいる。不妊患者のボディマスインデックス(BMI)と妊娠第一期の転帰について議論した記事に対して、2人の読者が“The authors finally concluded that outcome of singleton pregnancies in patients with infertility was not influenced by BMI. We disagree with these results”とレターを投稿した。
この場合も、複数の読者が反対意見を表明しているという点が一般性を支持している。もし、本当におかしな結論を導いている記事があれば、反対意見を表明するのは重要なことである。
Reference
Bellver J, Pellicer A. Letter: impact of obesity on spontaneous abortion. Am J Obstet Gynecol 2004;190:293

4. Statement of Concern

家庭の銃器と殺人・自殺のリスクを調査した疫学調査(ケースコントロールスタディ)の記事に対して、1人の読者が著者の主張(と編集者)に対して疑問を投げかけた。“I doubt the Annals’ editorial board would have published without commentary an article by a pro-gun organization purporting to defend gun ownership. The author’s affiliations with anti-gun ‘research’ groups are no less compelling an argument for bias”このレターと同じページに「銃所持反対」の著者によって書かれたという申し立てとともに掲載された。

今であればconflict of interestで明記すべき内容かもしれない。銃所持支持団体が銃のリスクを論じる文献を投稿したのであれば、バイアスが懸念されるのは当然のこと。ただ、COIに明記されているのであれば、あえて懸念があると指摘することはほとんど意味がないだろう。
Reference
Fritz DA. Letter: lies, damned lies, and statistics. Ann Emerg Med 2004;43(1):141

5. Sounding Off (主張)

特に記事を引用することなく、主張を述べる、一種の論説。”Medicine is not exact, and bad outcomes happen. The notion that physicians can follow a formula and avoid successful litigation is false”
確かに、医療は完全ではないので、悪い結果が出ることはあるもので、マニュアルに従っていれば訴訟を避けられるというのは嘘だろう。依頼されていない”Sounding Off” レターはタイムリー的を得た内容で、うまく叙述されていなければ掲載されないだろう。特に著者が無名の場合には。
References
Grant DC. Letter: I don’t want to hear about the “standard of care.” Ann Emerg Med 2004;43(1):139

6. Gotcha(捕まえた)

元記事に重要な事実の誤認~特に患者の治療方針にかかわるような誤認~があった場合に、指摘されれば掲載される見込みが高いだろう。痛風に対する低用量コルヒチンについての記事に対して、薬剤師が次のような指摘をした。

“discussed the use of low dose colchicine in gout. The treatment dose of colchicine, which has remained at 1 mg initially, followed by 500 mcg every 2-3 hours for many years, should be reviewed. However, they are incorrect to say that the current BNF (British National Formulary) recommends a regimen for colchicine that is unchanged since the 1966 edition. In September 1999 the BNF reduced the total dose of a course of colchicine from 10 to 6 mg. Before 1981 the BNF did not even state the higher limit of 10mg”

ガイドラインの記述を元記事の著者がちゃんと押さえていなかったのは、元記事の著者らの確認不足です。きちんと指摘してあげましょう。ごっちゃんです!

ちなみに、この”Gotcha”、英語版でpokemon goをプレイしている人にはポケモンを捕まえた時に出る言葉としておなじみだろう? 論文で重要な事実の誤認に気づくことは「ポケモンゲットだぜ!」みたいな、感覚で指摘して見ると良いだろう。

References
Cox AR. Letter: colchicine in acute gout. BMJ 2004;328:288

7. Transformed Research or Case Report

Letterの項に症例報告や原著に値する内容が掲載されることがある。おそらく原著として作成された原稿がいくつかのピアレビュージャーナルでrejectされ、そのうち編集者が短いレターにまとめるなら掲載できるかもしれないと持ちかけたのではないか。迷いとともに原著の情報の多くは無慈悲にもカットされ、Letterになるのであった。

最近では”research letter”というページを提供しているジャーナルもあり、”research letter”のページでは、語数が少ないだけで、原著と同様のピアレビューをする事が謳われているジャーナルが少なくない。

Letterを書くということ

Letter to the Editorを成功に導くのは、努力というよりはインスピレーションです。雑誌の記事を読んでいて手紙を書きたいという衝動にかられる事でしょう。たとえば、「私はこの話題について何かを知っている」とか「私が共有したい意見を持っています。」とか。もちろん、上で述べたとおり、一部のLetterは出版された記事に対してコメントするものではありません。

  • Letter to the Editorは、論説と雑誌のレビューを短く組み合わせた物。
  • 論点は一つに絞るように。2つ以上のアイデアを一つの短い手紙に詰め込もうとしない。
  • 書く際には、ほとんどの雑誌が求める厳しい語数の制限内に収まるように、一つ一つの単語を慎重に選択する必要がある。
  • 直観的な衝動に従って書き始めたとしても、出版される記事としてacceptされるには、職人のように細心の注意を払って、Letter をしたためなければならない。

編集者への手紙のほとんどは、出版された記事に対するコメントです。それらの例では、次のような一般的な構造があります。

  • Letterを書く論文に狙いを定めます。最初の文章では、あなたのコメントの対象となる論文を引用する。これは「参考文献1」になる。
  • あなたがLetter to the Editorを書いている理由を述べる。あなたの同意、意見の不一致、懸念、またはその他の理由を書く。
  • あなたの記載した内容に対する、根拠を述べる。根拠は、文献である場合や個人的な経験である場合がある。もちろん、学術論文に基づく証拠がベターです。
  • 要約を述べる。上記をすべて結びつけることで結論してください。
  • 文献を引用してください。多くの場合、Letter to the Editorには参考文献の引用がいくつかありますが、それほど多くはありません。

執筆を開始する前に、まず各紙のinstructions to authorsを読みます。通常instructionにはLetter to the Editorを投稿する際に満たすべき要件が記載されています。例えば、米国医師会雑誌(JAMA)では、「最近のJAMAの記事を議論するLetter to the Editorは、記事の発表から4週間以内に投稿すること、文章は400語以内で、参考文献は5報を超えてはならないとあります。New Engl J Medでは3週間以内。

同誌ではケース・シリーズや症例報告を含むオリジナルの研究を報告する研究論文もまた歓迎されています。その際には、文章は600語以内で、参考文献は6報を超えてはならず、表または図を1点まで含めることができます。

最近では多くのジャーナルで電子的に投稿することを求めています。

Letter to the Editorは、レビュー論文と同じように提出する必要があります。つまり、タイトルで始める必要があり、レターヘッドのない、普通の白紙に、二重の間隔で原稿を作成する必要があります。Letter to the Editorの原稿は、あなたが単に編集者宛に連絡しているのではないことを示すために、カバーレターと共に送付する事を求めるジャーナルもあります。

あなたはその話題について、何かを述べるだけの背景があることを示すような属性について述べる必要があります。また、潜在的な利益相反についても明らかにする必要があります。

最後に:手紙で議論する記事の著者と個人的に知り合っている場合は、書くべきではないかもしれません。あなたが研究を賞賛するなら、友情があることであなたのLetterは信用を損なうかもしれません。もっと悪いことは、研究を批判すると、あなたのコメントは個人的な攻撃として解釈される可能性があります。

Reference
Journal of the American Medical Association. Instructions for Authors. Available at: http://jama.ama-assn.org/inora_current/dtl.

/谷本先生から戴いたコメント/

臨床試験に関する書簡では、実際に臨床応用する場合の限界に着目し議論を進めると、採択の可能性を高めることができるでしょう。例えば、臨床試験の多くは合併症のない若年者が選択される場合がほとんどですが、実臨床では高齢者や臓器障害を有する患者に多く遭遇します。そのため、臨床試験から得られた知見をそのままの形で用いると問題が生じ得ます。編集者、さらには読者の内在的論理を的確に捉えた上で、彼らにとって、ひいては患者にとって有益な議論を構築して行くことが推奨されます。

/* 参考資料1 */

/* 参考資料2 */

 

self-controlled case series (SCCS)

はじめに

ここの所注力してきた仕事が一段落して、この週末は良い具合に一息つけます。

さかのぼること数か月、今後使うかもしれない、自分にとって新しい手法を試しておこうと、 Sequence Symmetry Analysis (SSA)をやってみたんだけど、これがイマイチ。何がイマイチって、製薬工業協会のホームページにSASのプログラムが公開されていて、それを見ながらやっているんだけど細かい数字が合わない。結果はだいたい近いところまでは行くんだけど、何か織り込むべきアイディアが足りないのか。ちなみに、作成にかかわったタスクフォースの方々の名誉のためにもう少し書いておきますと、この公開されているプログラムがおかしいというのではなく、まず、他人の書いたプログラムから、何がなされているのかというのを読み解くのはとても難しい作業で、このプログラムを参考にして、何がされているのかを読み取って、そのうえで自分にとってわかりやすいように書き換えるので、おかしなことが起きているのです。おそらくNull effect sequence ratio, NSRの計算のところがキモなのではないかと思いつつ、しばらくこちらは放置して頭を冷やすことにしていました。。

Self-controlled case series (SCCS)

SCCSとは?

同じself-controlledデザインのSCCSを試してみます。原理はこのスライド2ページ目。当時PMDAで東大epistatの竹内 由則さんが学会発表したスライドからです。

 

データ

データが公開されているので、手法を試すのにちょうどよいということで、試してみるのは、この文献Whitaker HJ, Farrington CP and Musonda P. Tutorial in Biostatistics: The self-controlled case series method. Statistics in Medicine 2006, 25(10): 1768-1797.に出てくるMMRワクチン後の髄膜炎。Table 2にOxford dataとして提示されています。

indiv eventday start end exday
1 398 365 730 458
2 413 365 730 392
3 449 365 730 429
4 455 365 730 433
5 472 365 730 432
6 474 365 730 395
7 485 365 730 470
8 524 365 730 496
9 700 365 730 428
10 399 365 730 716

データは10例ですべて。観察したのは、全員生後366日から730日。データのカラムstart, endは観察期間の開始を生後の日数で示しています。 exdayがワクチン接種の日、eventdayが髄膜炎と診断された日、で、これも生後の日数で示しています。
元論文では、at risk 期間をmumps virusのreplicationにかかる期間に基づいて、shotから15 – 35日後と設定しました。(元文献のTable 2では、ワクチン接種日は「pre-riskから14を引いた日」になります。ワクチン接種から14日目までがpre-risk, 15日目からがat-riskという考え方だと思います)ダウンロードしたデータにはワクチン接種日がexdayとして入力されていますので次のようにpre-risk(ex1), risk end (ex2)を計算します。設定したat riskの期間によってはスクリプトを触るべき個所がココということになります。

ex1 <- dat$exday + 14
ex2 <- dat$exday + 35

観察期間中のすべての日を、at riskの期間かどうか正確に分類したいので、ワクチン接種が331 – 715日のワクチン接種歴を要求した(原文)ということです。case #10は、716日にワクチンを摂取していますが、潜伏期間が観察期間終了後まで継続しますので、結果として観察期間中にat riskの期間がありません。

データをグラフィカルに提示している図があったので、引用。灰色の期間がat riskの期間。そして、547で線が引いてあるのは、ここで年齢層を分けて調整因子として使用しているので、それを示すつもりで線を入れたのでしょう。(例示として示した図の中には、年齢層をまたぐリスク期間を有している症例が出てこなかったので、何を説明したくて547日で線を入れたのかわかりにくくなっていますが。)366 – 547 を1層、548 – 730を2層にしています。観察期間中にイベントが発生したら、それ以降は観察期間にしないというような操作を通常行いますが、この集計では、そうではありません。全体の観察期間を集計して、イベントがどの期間に発生したかというような思想で集計するようです。

年齢層をプログラムしているのはここです。

age <- c(547)

#age groups
agegr <- cut(cutp, breaks = c(min(dat$start), age, max(dat$end)), labels = FALSE)
agegr <- as.factor(agegr)

 

 

論文の結果

論文の結果が次の通りで、

自分でも計算

自分で実行した結果が次。めでたく、結果が一致していました。めでたしめでたし。

おわりに

実行したRのスクリプトがこちら。実行に当たっては私の環境に合うようにOpen Universityのホームページのスクリプトを一部改編しました。実行結果が論文で提示されていたものと一致するので、悪くはないだろうと思います。これでまた、新たな手法を用いたいろいろな評価ができる道筋が付きました。(つづく

白い議事録

厚生労働省審議会の白抜き

審議会の議事録は、だれがどんな発言をしたのか一言もらさず書き起こされています。厚生労働省のこの手の審議会でも機密情報等が黒塗りで出ることはあっても良いと思うのですが、リンク先の議事録は「失礼な言い方」があった部分が白抜きになっています。どんな失礼な言い方をされたのか,見てみたいです。実は石川委員(東京医歯大)の発言にはこの議事録上他の所にも白抜きがみられます。ずけずけと思ったことを口にして、考えを包み隠さず表現されているのではないかと思います。この引用ヶ所については私も、これまでの使用成績調査の例数設計は、とってつけたようなロジックが書かれていて、何をしたいのかわからないものがまかり通ってきたと思っています。feasibilityの関係から、結果的に精度の高い評価は難しくなるケースも少なくないのですが、それはそうとして、考え方、ロジックが出鱈目な書き方になっているものが少なくありません。そうした文書を作成する担当者らは、「内容は理解できなくても、規制当局が求めるような書類さえできていればよい」というような人間になっています。少なくともそちらは手当てをしておく必要があると考えています。よほどいかがわしい、良俗に反するような表現でない限り、石川委員の口から出たお言葉を見てみたかったです。そこには、あるべき姿と異なる点を指摘するような、本質的なことが隠されているような気がします。

MID-NETによる解析の様子

医薬品の業界で最近話題になることがあるキーワードに「MID-NET」という言葉があります。これは、簡単に説明するのは難しいのですが、医療情報データベースの様な物で、医薬品の安全性の評価に使用することが主眼の物で、データベース的に使うことができる仕組みというふうに理解しています。これを構築してきた方々が様々な資料を作成して公開したり、講演会を開いたりしてきたので、ずいぶん情報を得ることができましたが、これまで稼働しているイメージを見る機会がありませんでした。ご利用料金が4200万円とお高いので、おいそれと触る訳にはいかないですし、使い始めるまでどんなものかわからない。使ってみて「これは使い物にならない(自分の研究目的に沿わない)」と解った場合のダメージが非常に大きい、ということで、なかなか手が出せない代物です。

本日参加したデータサイエンティストの研究会で、稼働のイメージを演者の方が示され、その雰囲気だけの動画が公開されています。一応お断りしておきますと、この研究会では録音・録画を禁止していません。動画では音声が聞き取りにくく、何をしゃべっているか解りにくいかもしれませんが、よく聞くと日本語で説明しています。とりあえず、症例数を見て辺りを付ける程度の解析をデモンストレーションしています。じっさいには、この結果を元に対象症例のデータを施設から得るためのクエリを作成し、各施設に送って、施設側でデータ提供の可否を判断して、可であればデータを解析センターに送り返す、という長い手続きが待っています。その後、その集積されたデータから本解析に使用するデータを抽出して、解析用のデータセットを作成するという、ことになります。その入り口の部分の様子がデモンストレーションされています。

MID-NET稼働の様子

夾雑物の基準が新薬とジェネリック医薬品で異なる

夾雑物の基準が新薬とジェネリック医薬品で異なる

医薬品の品質の基準は新薬とジェネリック医薬品で同一でなかったのか

「日本ジェネリック医薬品・バイオシミラー学会」(代表理事 武藤 正樹)が2018.11.7に発表した声明文によると、

http://u0u1.net/Njnu

化学合成される原薬中における有機不純物の管理に関しては、ICHQ3A ガイドラインが平成9 年4 月以後に製造承認申請された新有効成分含有医薬品に適用され、その後、ジェネリック医薬品への適用が推奨されてきた

とあります。新薬には「適用」で、ジェネリック医薬品は「適用が推奨」です。さらに、DNA 反応性(変異原性)不純物についてのガイドラインについて、新薬では準拠することが求められるのに対し、ジェネリック医薬品については

新薬にとどまらず、既存薬やジェネリック医薬品などにもより広く適用する方策を探ること

としています。「適用する方策を探る事、」つまり、現在は適用外だという事です。私は不勉強ながら、こうした基準が異なるとは認識していませんでした。

これは、2018年にとある降圧薬のジェネリック医薬品で発がん性物質「N-ニトロソジメチルアミン(NDMA)」の混入が発覚し、流通していた医薬品の回収が実施されたことを受けての声明文ですが、この声明文を読むと、新薬では満たすべきとされる基準を、ジェネリック医薬品は満たすことが求められていない事が解ります。新薬のほうは、平成9年4月以降に製造承認申請された新有効成分含有医薬品、で基準を満たすことが求められているという事です。概ねここ20年近い期間に市場に出てきた医薬品という事になりますから、「ごく最近の医薬品」ばかりではなさそうです。

ジェネリック医薬品を推奨する立場の安全性についての説明

ジェネリック医薬品について厚生労働省の作成した資料では、

先発医薬品と同一の有効成分を同一量含み、同一経路から投与する製剤で、効能・効果、用法・用量が原則的に同一であり、先発医薬品と同等の臨床効果・作用が得られる医薬品

の様に説明しています。安全性が同等だとは私には読めません。なぜならば、安全性の問題は夾雑物によって引き起こされる場合もあるからです。ですので有効成分が同一であることが、安全性の同一性を担保する根拠に必ずしもならなりません。つまり、ここで述べている「臨床効果・作用」は有効性に焦点を当てて述べていると理解できます。

一方、日本ジェネリック製薬協会のホームページではジェネリック医薬品の事を

新薬と同じ有効成分を同じ量含有し、効き目も安全性も同等なおくすりです。

の様に「安全性」も同等だと主張しています。厚生労働省の主張と温度差を感じます。「安全性」を同等だと主張する、根拠と言える部分は次の様に記述されています。

ジェネリック医薬品は、主に「規格及び試験方法」、「安定性試験」、「生物学的同等性試験」の項目で承認審査され、これらの内容が先発医薬品と同等であることを示すことによって、有効性・安全性に問題がないことが確認され承認されます。

これらの審査対象の項目は安全性に問題がないことを確認できるような試験でしょうか?夾雑物を含め「製剤として」ヒトでの安全性を確認できる試験とは考え難いです。

https://www.jga.gr.jp/index.html


2018年11月12日追記:発がん性物質に関する管理指標の設定についての通知が発出されました。

普門館

聖地、普門館を訪れました

普門館は長い間全日本吹奏楽コンクールの全国大会の会場になっていました。30-40年ほど前、中学生高校生だった私は、ここに来る事を目指して、日々練習を重ねていましたが、当時その夢が叶うことはありませんでした。その普門館が取り壊されることとなり、取り壊しに先立ちまして、この11月第一週に一般公開されていますので、やってきました。ここを訪れるのは、今回が初めてです。嬉しいことに楽器を持って行けば音を出してよいという事でしたので、少し吹いてきました。さらに、お土産に外壁のタイルを1枚いただきました。
反響板に思い思いの事を書くことができるようになっていました。現役時代ここにたどり着くことができなかったので、その思いを書くのも良いのかと思いましたが、書くところを見ている人がたくさんいたので、良い文章が思いつきませんでした。結局何も書かずに帰ってきました。
舞台裏にあるとされていたご本尊(観音様)は現在移動されていて、その写真が貼ってありました。

MRIC Vol.223 現場からの医療改革推進協議会第十三回シンポジウム

現場からの医療改革推進協議会第十三回シンポジウム

ご案内をいただきましたので、ここで紹介させていただきます。

日時:11月24日(土)、25日(日)
会場:一般社団法人日本建築学会 建築会館ホール

*このシンポジウムの聴講をご希望の場合は事前申し込みが必要です。
*参加登録はこちらからお願いします(Googleフォーム)
https://goo.gl/forms/fdSOC86QhqgVBv0p1

抄録から1題だけ紹介します。小野俊介先生らしい魅力的な文章です。

「2018」

近未来のディストピアを描いたジョージ・オーウェル『1984』に、ニュースピーク(newspeak)という言語が登場する。全体主義国家の支配者(党)が国民の語彙・思考を制限し、党のイデオロギーに反する思想を、つまりややこしいことを「考えられぬようにする」ための言語。だから語彙(言葉の意味)が毎年減っていく。ん? 何のことはない、今の医薬品業界で使われている言語がそれである
「バカなことを。グローバル開発、遺伝子・再生医療、ヘルステクノロジーアセスメント……語彙は爆発的に増えてるぞ」と業界人は反論するのだろう。そうですね、普段からテレカンしたりブレストしたりRWDのエビデンスをアジェンダにしてCMOへのアウトソーシングを考えたりしている皆さんだもの。ろくに意味のない略語の多用も、ニュースピークの特徴。
先日ある業界人が「AIに副作用を検出させようとすると、AIってバカだからホントに変な『副作用』を見つけちゃうのよね、アハハ」と大笑いしていた。かわいそうに。もちろんこの業界人が、である。「副作用」のまともな意味論的定義の試みに人類が一度も成功したことがないことを、理解できないらしい。定義に「因果関係」なる語を当然のように使っている時点で、人類はまだ北京原人レベルなのに。
グローバル化と称する植民地化がニュースピークで語られるのも、必然である。従来から業界人は、「薬が効く」という表現を(アリストテレス的本質のごとく)平然と使ってきた。薬って、「あなた」や「私」が存在しないことには効くも効かぬもないはずなのだが。ニュースピークで書かれた最近のガイドラインには、「国際共同試験では薬の評価の邪魔をしないような被験者を選ぶべき」という、正気の沙汰とは思えぬ趣旨の記述がある。
少し前のノーベル賞月間。テレビを見ていたら「速報! ノーベル物理学賞、日本人は受賞せず!」というテロップが。受賞者の業績をノーベル財団の人が解説してるのに、一切無視。興奮したアナウンサーが、「日本人ではありません!日本人ではありませんでしたぁ!」とわめき続ける。人類の知なんてものにはまったく興味がないらしい。
『1984』に一番近い島、ニポン。

 

 

世界初の報告

「初」の報告に価値がある?

日本の学会雑誌は「初」報告を主張させたい?

数年前日本血液学会の英文雑誌に原稿を投稿した際に、「世界初の所見でないので掲載に値しない」というようなコメントをするレビューワーがいました。同じ学会でレビューをしている先生とお話しする機会があって、この話題を出したところ、同誌では「世界初」を主張しないと掲載しないという編集方針、採否の判断基準があるというお話を伺いました。同じようなコメントをするレビューワーが日本リウマチ学会にもいました。当時投稿した内容は、先行する研究はあまりなく、海外で知られている状況が国内でも見られたというような報告でした。よく知られている所見であっても、定量的に詳細に記述したなどで科学的な価値がある場合もあろうかと思うのですが。

さて、その基準でいけば今年8月にJAMA oncology に掲載されました私の論文も、上記の様な基準をとっている国内の雑誌では不採択になりそうです。この論文で報告したのは、2系統の薬剤を同一患者に使用(時間的には同時でなくても)した際に、間質性肺炎が起きやすいという臨床的な所見でした。この所見は、国内の当該領域の先生方の間ではよく知られた所見でした。また、学会等でも注意して慎重に薬を使用するように呼び掛けているところでした。ただし、当時PubMedで調べた範囲では、集計して統計的な処理をして論述したものは、ありませんでした。

米国の学会は「初」の主張に慎重

海外の雑誌の投稿規定を見ていて、はたと気づいたことがあります。時々次のような記載があります。

Undocumented claims (eg, “firstedness,” “safe and effective”)

Please do not claim that yours is the first report. If such a claim is deemed necessary, authors should explain their reasoning in the cover letter and provide a detailed Appendix describing how they came to this conclusion. Describe search strategies, search terms, databases queried, and how far back these were checked. Also list textbooks and monographs that were searched to substantiate the claim. Similarly, the phrase “safe and effective” should be reserved for FDA-approved product labeling based on registered phase III trials. In other settings, the term should be avoided entirely. As an alternative, an example of acceptable terminology would be, “Our patients demonstrated positive responses and the treatment was well tolerated.”

“firstedness”を主張しないこと!Please do not claim that yours is the first report.

それが必要な場合は、【○○を調べたが同じ所見は記述されていなかった。】の書き方をすること。調べた範囲を明記して、「その範囲では報告がない」という事で、「世界初」を主張しているものに近い意味を持ちます。調べた範囲の外で、仮に先に報告があったとしても、嘘にはならない、という効果が得られそうです。

上記の記述を見ていると、安全性有効性の記述もお勧めの方法が書かれています。「この治療は安全で有効だ」と主張するのではなく「我々の患者で調べたところ、治療には耐えられて、反応も良かった」と。「有効で安全だ」という記載は、GCP治験でPIIIをやったものだけが主張できるとしています。これをわざわざ投稿規定に書きたい気持ちはよくわかります。いい加減な研究でこれを主張したら、何を信じていいか解らないくらい混乱を生じます。

つまり

こういう差を見てますと、日本の雑誌の方針はレビューワーがあまり丁寧に内容を吟味することのない、思考停止状態でもrejectの作業ができるような単純な方針を打ち出して、効率的に投稿原稿をさばくことに腐心している様に思えました。お忙しい中、レビューするのですからやむを得ず設定している基準なのかもしれません。

また、海外でもfirstednessを主張する科学者が少なくないからこそ、それを安易に主張するなという注意書きを投稿規定に入れる雑誌があるのでしょう。

厚生労働省の調査会で私の論文が使用されました

スタチンとフィブラートの併用原則禁忌解除へ

スタチンとフィブラートの併用は現在「原則禁忌」です。「原則禁忌」という言葉が禁忌かどうかよくわからない、あいまいなメッセージになりかねないという事で、添付文書の記載要領が変わり2019年をターゲットに「禁忌」あるいは「慎重投与」と言った別のメッセージに置き換える作業が進んでいます。そうした流れに加え、日本動脈硬化学会がこの2種類の系統の薬剤を併用することにはメリットがあり、一律にこの2種類の系統の薬剤を併用しないように制限するのを解除してほしいという趣旨の要望書を厚生労働省へ出していました。原則禁忌との判断に至ったきっかけとなった論文では、セリバスタチン(←市場からは撤退)とゲムフィブロジルを併用するで横紋筋融解症を発現するリスクが高まるとされていました。その後の解析によると、両薬剤を併用することで薬物動態が変化し、スタチンへ過剰に曝露してしまい、横紋筋融解のリスクが上昇したとされています。私が以前、横紋筋融解を解析した時にこの2種類の薬剤を併用することで転帰が死亡になるリスクが高まる訳ではない、とは思ってました。

この問題についての審議が2018年9月25日(火)に田中田村町ビル会議室で開催されました。その平成30年度第8回薬事・食品衛生審議会薬事分科会医薬品等安全対策部会安全対策調査会の資料に、私の論文が紹介されていました。

紹介されたのは「取扱注意」の資料1-2の中で、PMDAがまとめた資料です。

この様な集計を論文としてまとめているのは、私の論文の1報だったという。他に同じような観点で集計した論文はないという事のようです!この腎障害患者を取り上げた部分集団についての解析はオリジナルの投稿時にはなく、投稿した際にレビューワーからの指示で、しぶしぶ、嫌々ながらやった部分です。嫌々ながらやった部分ではありますが、書かれているデータに間違いはないと思います。

規制当局は一旦設定した注意喚起を緩めたために、そのリスクの被害にあう人が出ることはぜひ避けたいと考えている様で、リスクについての注意喚起を解除することには一般に大変慎重です。そんな中、治療上のベネフィットを享受できるであろうヒトのために汗を流した方々の努力に拍手です。その過程でこの集計が何かの役に立ったのなら嬉しいところです。

ちなみにこの論文、Internal Medicine誌と言うインパクトファクター1.0弱という、低インパクトジャーナルに掲載されながら、被引用回数42と言うそのジャーナルの中ではナカナカの人気の記事です。(タダでダウンロードできるので、検索で引っかかったものの中でとりあえず気楽に読んで引用していると言うのかもしれませんが)