cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • New to JMP? Join us Sept. 23-24 for the Early User Edition of Discovery Summit, tailor-made for new users. Register now for free!
  • Use World Cup data to build models, explore spatial relationships, and create informative visualizations in JMP. Register. July 17, 2 pm US Eastern Time.
  • Your voice matters! Tell us how you prefer to receive JMP updates, so we can tailor our communication to your needs. Take short survey.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar

ANCOVA(BY=アトラス)結果の多重比較補正方法に関する質問

こんにちは。現在、JMP Student Edition を使って共分散分析(ANCOVA)を行っています。手順は次のとおりです。

  1. モデルのあてはめ(Y:実測値、BY:アトラス番号)
  2. モデル効果の構成(疾患番号、年齢)
  3. 手法:標準最小二乗
  4. 強調ポイント:効果のココ比

この設定で実行すると、アトラス番号ごとに「応答実測値」のレポートが表示されます。そのレポート内の「効果の概要」にあるFDRのチェックボックスをオンにすると、FDR補正が適用されると理解しています。

目的:ANCOVAでアトラス番号ごとに統計的意識差を検定しましたが、アトラスごとに個別の検定を行っているため、偽陽性が含まれると考えられます。そこで、得られたp値をアトラス全体で多重比較補正したいと考えています。

ここで質問です:

  1. 「効果の概要」にあるFDR補正は、モデル効果に含めた因子の数(今回の場合は疾患番号と年齢の2つ)に対してのみ適用されるのでしょうか?
  2. ANCOVA の結果に対して、アトラス番号全体(すべての BY レポート)を対象に FDR 補正を行うことは、JMP Student Edition で可能でしょうか?GUI 操作でも JSL スクリプトでもありません。
    • ※この質問は、①のFDR補正がモデル効果の係数数のみ適用される場合に応じていただけると幸いです。
1 ACCEPTED SOLUTION

Accepted Solutions

Re: ANCOVA(BY=アトラス)結果の多重比較補正方法に関する質問

「モデルのあてはめ」でBy変数を使ったときに表示される「効果の要約」での「FDR」は、あくまでBy変数の各水準内だけでの検定に対するFDR調整p値となっています。

なお、FDR(偽発見率)は、FWER(familywise error rate)、つまり、「真の帰無仮説のうちで、いずれか1つが棄却される確率」を制御するものではありません。あくまで、『「棄却された帰無仮説の個数のなかで真の帰無仮説の個数が占める割合」の平均』を制御するために、Benjamini-Hochberg法で計算されたFDR調整p値です。


■JMP 19より、FDR Adjustという関数が追加されました。プログラミングが必要となりますが、この関数を使うと、生のp値(未調整のp値)から、FDR調整されたp値を計算することができると思います。以下にその手順を示します。

なお、下記のスクリプトはあくまでサンプルとして示しているものです。また、このスクリプトに対する責任は私個人だけにあり、所属組織は責任を負いません。

(1) [モデルのあてはめ]で回帰分析を実行します。
(2) 「パラメータ推定値」の表で右クリックすると呼び出されるポップアップメニューより、[連結したデータテーブルの作成]を選択します。この操作により、パラメータ推定値やp値が含まれたデータテーブルが作成されます。
(3) 上記(2)で作成されたデータテーブルのウィンドウをアクティブにした状態で、[ファイル]→[新規作成]→[JSLスクリプト]を選択します。スクリプトエディタが呼び出されます。

(4) 下記のコードを、(3)のスクリプトエディタにコピー&ペーストします。

Names Default To Here(1);
/* 現在、アクティブなデータテーブルに対する参照を取得 */
dt = Current Data Table();
/* 切片項の行を選択 */
dt << Select Where( :項 == "切片" );
/* 切片項の行を削除 */
dt << Delete Rows;

/* 未調整p値の取得 */
pval = Column(dt, "p値(Prob>|t|)")<<Get As Matrix;
/* JMP19の新機能 FDR Adjust関数を使って、FDR調整p値を求める */
FDR = FDR Adjust(pval);
/* FDRの列を追加 */
dt << New Column("FDR", Values(FDR), Format( "PValue", 12 ));


(5) [編集]→[スクリプトの実行]を選択します。
上記(2)のデータテーブルに、「FDR」という列が追加されるはずです。


■By水準ごとではなく、データ全体に対する検定も含まれてしまいますが、JMP 19より「応答のスクリーニング」にサブグループ分析の新機能が追加されました。

(1) [分析]→[モデルのあてはめ]を選択します。
(2) ウィンドウ右上の[手法]より[応答のスクリーニング]を選択します。
(3) 応答変数(Y変数)や効果を指定します。
(4) [サブグループ化]にBy変数を指定します。
(5) [実行]ボタンをクリックします。

こちらの結果の「FDR p値」は、By水準ごとだけではなく、データ全体に対する検定も加味したFDR調整p値となっています。

 

なお、繰り返しになりますが、FDR調整p値は、FWERを制御するものではなく、偽発見率を制御するものです。

 

Yusuke Ono (Senior Tester at JMP Japan)

View solution in original post

2 REPLIES 2

Re: ANCOVA(BY=アトラス)結果の多重比較補正方法に関する質問

「モデルのあてはめ」でBy変数を使ったときに表示される「効果の要約」での「FDR」は、あくまでBy変数の各水準内だけでの検定に対するFDR調整p値となっています。

なお、FDR(偽発見率)は、FWER(familywise error rate)、つまり、「真の帰無仮説のうちで、いずれか1つが棄却される確率」を制御するものではありません。あくまで、『「棄却された帰無仮説の個数のなかで真の帰無仮説の個数が占める割合」の平均』を制御するために、Benjamini-Hochberg法で計算されたFDR調整p値です。


■JMP 19より、FDR Adjustという関数が追加されました。プログラミングが必要となりますが、この関数を使うと、生のp値(未調整のp値)から、FDR調整されたp値を計算することができると思います。以下にその手順を示します。

なお、下記のスクリプトはあくまでサンプルとして示しているものです。また、このスクリプトに対する責任は私個人だけにあり、所属組織は責任を負いません。

(1) [モデルのあてはめ]で回帰分析を実行します。
(2) 「パラメータ推定値」の表で右クリックすると呼び出されるポップアップメニューより、[連結したデータテーブルの作成]を選択します。この操作により、パラメータ推定値やp値が含まれたデータテーブルが作成されます。
(3) 上記(2)で作成されたデータテーブルのウィンドウをアクティブにした状態で、[ファイル]→[新規作成]→[JSLスクリプト]を選択します。スクリプトエディタが呼び出されます。

(4) 下記のコードを、(3)のスクリプトエディタにコピー&ペーストします。

Names Default To Here(1);
/* 現在、アクティブなデータテーブルに対する参照を取得 */
dt = Current Data Table();
/* 切片項の行を選択 */
dt << Select Where( :項 == "切片" );
/* 切片項の行を削除 */
dt << Delete Rows;

/* 未調整p値の取得 */
pval = Column(dt, "p値(Prob>|t|)")<<Get As Matrix;
/* JMP19の新機能 FDR Adjust関数を使って、FDR調整p値を求める */
FDR = FDR Adjust(pval);
/* FDRの列を追加 */
dt << New Column("FDR", Values(FDR), Format( "PValue", 12 ));


(5) [編集]→[スクリプトの実行]を選択します。
上記(2)のデータテーブルに、「FDR」という列が追加されるはずです。


■By水準ごとではなく、データ全体に対する検定も含まれてしまいますが、JMP 19より「応答のスクリーニング」にサブグループ分析の新機能が追加されました。

(1) [分析]→[モデルのあてはめ]を選択します。
(2) ウィンドウ右上の[手法]より[応答のスクリーニング]を選択します。
(3) 応答変数(Y変数)や効果を指定します。
(4) [サブグループ化]にBy変数を指定します。
(5) [実行]ボタンをクリックします。

こちらの結果の「FDR p値」は、By水準ごとだけではなく、データ全体に対する検定も加味したFDR調整p値となっています。

 

なお、繰り返しになりますが、FDR調整p値は、FWERを制御するものではなく、偽発見率を制御するものです。

 

Yusuke Ono (Senior Tester at JMP Japan)

Re: ANCOVA(BY=アトラス)結果の多重比較補正方法に関する質問

「By変数ごとの効果の概要」に表示されるFDR調整p値は、各By一連(今回の場合はアトラス番号)内での検定結果に対してのみ適用されているという点、よく理解できました。

また、全アトラスを通してFDR補正を行うには、JMP 19以降で追加されたFDR Adjust関数を使えば、未調整p値から一括でFDR調整p値を算出できること、大変参考になりました
スクリプトもご提示いただきありがとうございます。
さらに、JMP19で「応答のスクリーニング」でサブグループ化を指定すれば、データセット全体のFDR補正が可能である点も新しい発見でした。
FDRとFWERの考え方の違いについてのご指摘も非常に勉強になりました。

貴重なご説明を本当にありがとうございました。

Recommended Articles