臨床試験における対数変換とかれの仲間たち

610 Views

October 21, 24

スライド概要

[第10回大阪sas勉強会]

profile-image

SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

臨床試験における対数変換と かれの仲間たち 2024.9 章立 Log

2.

Log 自己紹介 1.名前:章 立(しょう りつ/ZHANG LI) 2.経歴:2007年10月来日、保険数理やIT技術サポートなど仕事していて、2018年EPSと縁が 有ったお陰で統計解析の業界に転職、現在EPS統計解析Team大阪所属 3.出身:中国・襄陽市 4.大学:華中科技大学・数理統計学院 (Huazhong University of Science and Technology / HUST)

3.

Log 本日のアジェンダ 1.はじめに 2.データ変換について 3.対数変換モデル 4.Box-Cox変換について 5.業務実例:対数変換モデル 6.まとめ・感想 7.課題・再考 8.おまけ・雑談 9.参考文献 キーワード:対数変換、平方根変換、Box-Cox変換、正規分布/対数正規分布

4.

1.初めに 背景:業務中に対数変換で線形モデル 解析を対応した時、なぜデータ変換必 要か、なぜ対数変換でないといけない か、他のデータ変換方法あるのか、 データ変換のメリットとデメリットは 何であろうかについて思ったり、調べ たりした。結果を資料にまとめ、今回 の発表にたどり着いた。 なぜ仲間たちと呼ぶか:同じくデータ 変換の範囲に属して、同じ目的のため にお互いに協力し合い、統計解析に力 を貢献していると個人はそう思いなが ら、勝手に彼らは仲間たちと呼ぶ。

5.

Log 2.データ変換について① › なぜデータ変換必要か 正規分布以外の分布をデータ変換で正規分布に近似したため、実データの検定よりも高い検出力で解析できる › データ変換方法の種類 対数変換 平方根変換 その他 べき乗変換 Box-Cox変換 ロジット変換 ロジスティック変換

6.

Log 2.データ変換について② › データ変換方法の選択: 対数変換か、平方根変換か、冪乗変換か、Box-Cox変換法で最適の変換法を決める ※補足1:最尤法いわゆる対数尤度を最大にするモデル(データ変換法)を最適モデル(最適変換法) ※補足2:尤度関数(平均がμ,分散がσ2 の正規分布に独立に従う乱数の値 が x1,⋯ ,xnである) ※補足3:対数尤度関数

7.

Log 2.データ変換について③ ICH E9「臨床試験のための統計的原則」 5.4 データ変換では以下の記述がなされている。 ※対数変換が一般的な、伝統的な手法だが、なぜか文書に平方根が先に記述されている。

8.

Log 3.対数変換モデル 対数変化に関する三つのモデルについて •線形-対数モデル linear-log Y =βlnX + ε このとき、βはXが1%増加したとき、Yがいくら(もとの単位で)増加するかを示す。 •対数-線形モデル log-linear lnY = βX + ε ここでは逆に、βはXが1単位増加したとき、Yが100xβ%増加するかを示す。 •対数-対数モデル log-log lnY = βlnX + ε この場合はβは弾力性と呼ばれるもので、Xが1%増加したときにYが何β%増加するかを示す。 ※ X: Independent variables/説明(数値)変数、Y: Dependent variables/結果変数 ※ 弾力性とは、経済学用語の1つで「x の変化率に対する y の変化率の比」のことです。 (例)所得 x が 1% 増えたら需要 y が 0.8% 増える場合、需要の所得弾力性は 0.8 となる。 ※ 経済学ではlog-linearとlog-logをよく見る印象である。

9.

Log 4.Box-Cox変換について① › Boxらが提唱された変換方法 Box-Cox方法のパラメータλを少しずつ調整し、 対数尤度を最大になるかどうか探していく。 Boxら?だれ? ?? お二人とも20世紀の偉大な統計学 者、つい最近いなくなった 逆に言うと対数尤度最大時のλが見つかれば、 データ変換方法を決める。 › ※補足1 :公式↓ › ※補足2:cox回帰分析も1972年David Coxが提唱 した多変量解析の手法である George Box David Cox ※Fisherの婿(むこ)さん ※イギリス出身

10.

Log 4.Box-Cox変換について② › Box-Cox変換方法の公式からわかること。 λ=0 → log(x)対数変換 λ=0.5 → 2(x^0.5 - 1)平方根変換 λ=1 → (x - 1)平行移動変換 λ=… › 変換方法を決めるためのλを探索する。 1. テストデータを作成 2. SASプロシージャtransregでテストデータを評価 3. SASプロシージャtransregの推定結果をOutput 4. 対数尤度が最大時のλによって変換方法を決定 Box-Cox変換法を対応するSASプロシージャ proc transreg data=[testdata] test; model BoxCox(y) = identity(x); run; ※1 y: Dependent variables/結果変数 ※2 x: Independent variables/説明(数値)変数 ※3 TRANSREGは、回帰分析、正準相関分析、分散分析 などのモデルに対し、交互最小二乗法を使って最適変 数変換を求めるためのプロシジャである。

11.

Log 4. Box-Cox変換について③ テストデータ準備前:どんなデータが対数変換必要か 左図:実データ、右図:対数変換データ 指数分布またガンマ分布のような右へ歪んだ分布に対数変換が良く用いられる ※1 確率変数の対数変換後の分布が正規分布である時、その確率変数は対数正規分布に従うと言う。 ※2 対数変換できない時(データ=0存在)は、Log(x+C)で対応。例えば、実務時x=0の場合はLog(0.5)で対応 した。 ※3 参考書:《ヘルスデータサイエンス健康科学のための統計解析》Ruth Etzioni 著/岩崎 学 監訳

12.

Log 4.Box-Cox変換について④ › テストデータ実験(やっとSASをいじるところに来て感動…) ➢ 指数分布のテストデータを事前作成 及び分布確認 ➢ proc transreg/Box-Cox変換 及び対数尤度最大時のλを確認 /*SAS Code*/ ods output BoxCoxPlot=boxcoxplot; proc transreg data=aaa test; model BoxCox(y) = identity(x); run; /*SAS Code*/ data aaa; do x = 1 to 8 by 0.025; y=exp(x + normal(7)); output; end; run; proc sgplot data=aaa; histogram y; density y ; run;

13.

Log 4.Box-Cox変換について⑤ › Box-Cox変換方法でλ=0、対数変換を決まったが、実際対数変換、平方根変換後の分布を比較しながら、 BoxCox変換方法で進められた変換方法はより正規分布に近似するかどうか、すなわち最尤モデルかどうかを確認し たい。 /*指数分布元データ*/ data aaa; do x = 1 to 8 by 0.025; y=exp(x + normal(7)); output; end; run; 変換なし /*元データを対数変換、平方根変換*/ data test; set aaa; tran_method=1; AVAL=y; output; tran_method=2; AVAL=log(y); output; tran_method=3; AVAL=sqrt(y); output; run; λ=0, 対数変換 /*ヒストグラム、密度推定図*/ proc sgplot data=test(where=(tran_method=1)); histogram AVAL; density AVAL; run; λ=0.5, 平方根変換

14.

Log 4.Box-Cox変換について⑥ › 正規確率点プロット(QQプロット)で正規分布に近似するかの確認 QQプロットの見方:データ分布が確率分布に一致すると、プロットの点が線形状に並びます。つまり、プロッ トした結果が直線に見えたら正規分布だなということになります。 /*指数分布元データ*/ data aaa; do x = 1 to 8 by 0.025; y=exp(x + normal(7)); output; end; run; 変換なし /*元データを対数変換、平方根変換*/ data test; set aaa; tran_method=1; AVAL=y; output; tran_method=2; AVAL=log(y); output; tran_method=3; AVAL=sqrt(y); output; run; λ=0, 対数変換 /*QQ図*/ proc univariate data=test plot; class tran_method; var AVAL; run; λ=0.5, 平方根変換

15.

Log 4.Box-Cox変換について⑦ › Box-Cox変換方法でλ=0とピッタリなるのは偶然か、0でもなく、0.5でもないの場合はどうするか › 対策:オプションconvenientを指定し、最尤λの代わりに、λ=0が99.999%CIに入っていれば、λ=0を選択する ※また最尤λ=0.61かつ0.5が信頼区間に入っていれば、 λ=0.5(平方根変換)を選択可能 /*指数分布元データ*/ data aaa; do x = 1 to 8 by 0.025; y = exp(x + normal(7)); output; end; run; /*λ=0が最尤でないように元データを+2で少し上に平行移動させる*/ data aaa1; set aaa; y = y + 2; run; ods output BoxCoxPlot=boxcoxplot2; proc transreg data=aaa1; model BoxCox(y / lambda=-2 -1 -0.5 to 0.5 by 0.05 1 2 convenient alpha=0.00001) = identity(x); run; λ=0.1最尤けど、99.999%CIに入っているλ=0を選択

16.

Log 5.業務実例:分布状況とλの確認 › ある試験で面積で評価される某病気のデータをBox-Cox変換方法でλを確認してみた。 /*0以上の正数データが必要*/ data adfa_test2; set adfa_test; if AVAL=0 then AVAL=0.5; run; ods output BoxCoxPlot=boxcoxplot3; proc transreg data=adfa_test2 test; model BoxCox(AVAL / convenient alpha=0.00001) = identity(AVISITN); run; λ=0.25最尤けど、 99.999%CIに入っ ているλ=0(対数 変換)を選択

17.
[beta]
Log

5.業務実例:対応変換の結果と再変換
› 対数モデル: log-linear
Log(AVAL)= β・AVISITN + ε

› SAS構文: ☞
› 変化率への再変換:
100*[exp(推定値)-1]

※推定値:対数変換後の差分

※推定値と再変換の結果:

data wk_01;
set wk_00;
by subjid avisitn;
where avisitn in (0,90,100,110,120,130,140,150);
if aval>0 then aval_log=log(aval);
else if aval=0 then aval_log=log(0.5);
run;
ods output SolutionF =_SolutionF
CovParms =_CovParms
Estimates =_Est;
proc mixed data=wk_02 method=reml covtest;
class subjid avisitn(ref="0");
model aval_log = avisitn / solution cl ddfm=kr;
random intercept / subject=subjid type=un solution cl;
repeated / type=vc group=AVISITN;
estimate 'ln(W04)-lnW00' AVISITN 1 0 0 0 0 0 0 -1 / cl divisor=1;
estimate 'ln(W08)-lnW00' AVISITN 0 1 0 0 0 0 0 -1 / cl divisor=1;
estimate 'ln(W12)-lnW00' AVISITN 0 0 1 0 0 0 0 -1 / cl divisor=1;
estimate 'ln(W16)-lnW00' AVISITN 0 0 0 1 0 0 0 -1 / cl divisor=1;
estimate 'ln(W20)-lnW00' AVISITN 0 0 0 0 1 0 0 -1 / cl divisor=1;
estimate 'ln(W24)-lnW00' AVISITN 0 0 0 0 0 1 0 -1 / cl divisor=1;
estimate 'ln(W28)-lnW00' AVISITN 0 0 0 0 0 0 1 -1 / cl divisor=1;
estimate 'ln(W04-12)-lnW00' AVISITN 1 1 1 0 0 0 0 -3 / cl divisor=3;
estimate 'ln(W12-20)-lnW00' AVISITN 0 0 1 1 1 0 0 -3 / cl divisor=3;
estimate 'ln(W20-28)-lnW00' AVISITN 0 0 0 0 1 1 1 -3 / cl divisor=3;
estimate 'ln(W04-28)-lnW00' AVISITN 1 1 1 1 1 1 1 -7 / cl divisor=7;
run;

18.

Log 6.まとめ・感想 -1 はオフセット値だと言われ ている › まとめ: - データ変換の種類とデータ変換法の選択について自己学習した - データ変換のメリット: ①データの分布を正規分布に近似させ、実データにt検定などの実行よりも高い検出力で解析を行うことができる ②対数をとると線形になることがある ③対数をとると分散が一定になることがある ④対数の差は変化率と解釈される week4 week4−week0 week4−week0 ) = ln[1 + ] → 指数変換exp(*)-1 → week0 week0 week0 - データ変化のデメリット(注意点?):モデルの推定値を元の単位(スケール)に戻す時データの解釈が難しくなるこ ln(week4)–ln(week0) = ln( とがある。 › 感想: 解析業務においては、個々のデータの意味を理解するのはもちろん重要で、データ全体の特徴(分布など)も把握すべ きかと感じた

19.

Log 7.課題・再考 › 課題①:再変換の問題:推定値をそのまま指数変換で元の単位(スケール)に戻すとデータが解 釈が難しくなることがある - 指数変換してもよい例:測定値・変化量・変化率の推定値を元の単位(スケール)に戻す時 100*[exp(推定値)-1] ←業務中に変化率を指数変換で再変換した… - 指数変換してもよくない例:平均の推定値をを元の単位(スケール)に戻す時 例えば、対数変換後の平均E[AVAL_Log]=μ 、分散Var[AVAL_Log]=σ2とすると、 元の観測値AVALの平均は exp(μ)ではなく E[AVAL]=exp(μ+ σ2/2)=exp(μ) * exp(σ2/2) となるのだから。 › 課題②:元の単位(スケール)に戻す再変換の問題で、観測値を変換せず、観測値そのままをモ デル化するため、歪んだ分布に対応した、対数リンクをもつガンマ一般化線形モデルをこれか ら勉強予定→proc genmod/proc logistic/proc catmod ※参考《ヘルスデータサイエンス健康科学のための統計解析》Ruth Etzioni 著/岩崎 学 監訳

20.

Log 8.おまけ・雑談 ①太陽質量の計算 万有引力からM(太陽質量)の計算式 M :太陽質量 π:円周率 r :太陽から地球までの距離(1.496x1011m) T :地球の公転周期(3.156x107s) G :万有引力定数(6.674×10-11 Nm2/kg2) ※G先に定義されたかM先に計算されたかはさて置き 電卓お持ちでしたら、押すだけで結果が出るが、電 卓誕生前に、そのまま手計算すると非常に手間かか るため、底数10の対数変換で手計算でもと楽… logM = 2log(4π)+3log(r)–log(G)-2log(T) = 対数表を調べて… = 30.2990 ですと、 M = 1030.2990 = 1030*100.2990 = 1030*1.1998 ←対数表を調べて… ≒ 2*1030 Kg ②データ変換 = 線形変換 = 空間変換 2014年11月22日上映したSF映画の「インターステラー」で人類・地 球を救うため、宇宙探索中にワームホールに 吸込まれ、超異次元空間に堕ち、モールス信号… ここでの発想: ワームホール にも何等かの データ変換法 をもつだろう Wormhole ≒ Box-Cox??? ③鬼滅の刃-無限城も現実世界から何等かの データ変換で作られている?

21.

Log 9.参考文献 ➢ 参考文献 1. George Box<https://en.wikipedia.org/wiki/George_E._P._Box> 2. David Cox<https://en.wikipedia.org/wiki/David_Cox_(statistician)> 3. Online Statistis Book<https://onlinestatbook.com/2/transformations/box-cox.html> 4. 正しい分散分析結果を導くための変数変換法<https://jppa.or.jp/archive/pdf/56_10_22.pdf> 5. 臨床試験のための統計的原則<https://www.pmda.go.jp/files/000156112.pdf> 6. 臨床検査データの正規性/データ変換による分布の正規化 <https://www.jstage.jst.go.jp/article/kampomed1982/40/4/40_4_199/_pdf> 7. Proc TRANSREG <https://documentation.sas.com/doc/en/statcdc/14.2/statug/statug_transreg_details02.htm> 8. 統計参考本《ヘルスデータサイエンス健康科学のための統計解析》Ruth Etzioni 著/岩崎 学 監訳

22.

ご清聴、有難う御座いまし た。