No.22992 Williamsの方法 分布表の使い方、Rのパッケージに関して  【島統】 2020/12/15(Tue) 17:06

青木先生

いつも大変参考にさせていただいております。

先生のHPでも取り上げていらっしゃる多重比較 Williamsの方法に関しましてご教示いただければと思い,3点程質問させていただきます。

ま ず1点目,前提としてある薬剤の最小有効用量を調べるため,永田靖先生の「統計的多重比較法の基礎」を参考にWilliamsの方法で手計算した所,t値 は青木先生ご作成のRのスクリプトと同じものが計算されました。永田先生の本によれば,計算の過程で得た自由度φE(青木先生のRのスクリプトの phi.eと同じ計算で得た値です)を縦軸に,群数aを横軸にとった「ウィリアムズの方法のための上側2.5%点の分布表」の該当する箇所の値と,前述の t値を比較してt値が大きければ帰無仮説を棄却するというように記載があります。この表から値を読み取る際に,縦軸は前述のφEを取ればよいということは 分かりますが,横軸の群数はどれを用いればよいのか記載がなく迷っています。
例えば先生のHPのデータを使用させていただくと,φEは30,第1 群をcontrolとして,第5群と比較する際はa=5, 第4群との比較ではa=4,…a=2と順次減らした値を用いるのか,それとも一貫してa=5の値を用いるのかということですが,どちらが正解でしょうか。

2点目
前 述の計算の際にネット上の情報を調べました所,後述のURLのサイトではt値をエクセルのTdist関数に当てはめてp値を計算させていました。 Tdist関数では2群しか想定されていないと思うのでこれでは多群の場合のp値は計算出来ないのではないかと思いますが,いかがでしょうか。他に williamsでp値を算出する良い方法があればご紹介いただけますと幸甚です。

3点目
RではWilliamsの方法が選択で きるパッケージとして,"multcomp"がありますが,こちらで検定をかけた所,出力されたt値が前述のt値と1部(最小の平均値の群との Controlの群との比較)を除いてまるで異なる値となりました。(詳細はRコンソールの表示をコピペした添付のテキストファイルをご参照いただければ と思います。こちらも先生のWilliamsの方法の解説のページ記載のデータを使用いたしました)
どうも第5群,4群,3群と順次t値を算出す る際に5群のときは5群のみの平均値ですが4群以降は第4&5群の平均値,第3,4,5群の平均値といったようにそれまでの群をプールする形で実 施しているようです。これはmultcompのバグなのか,別の目的の検定方法なのか,どのように解釈すればよろしいでしょうか。

以下はR consoleのコピペです。

よろしくお願いいたします。
> library(multcomp)
要求されたパッケージ mvtnorm をロード中です
要求されたパッケージ survival をロード中です
要求されたパッケージ TH.data をロード中です
要求されたパッケージ MASS をロード中です

次のパッケージを付け加えます: ‘TH.data’

以下のオブジェクトは ‘package:MASS’ からマスクされています:

geyser

> vx=c(415, 380, 391, 413, 372, 359, 401, # 第 1 群(対照群)のデータ,7 例
+ 387, 378, 359, 391, 362, 351, 348, # 第 2 群(処理群)のデータ,7 例
+ 357, 379, 401, 412, 392, 356, 366, # 第 3 群(処理群)のデータ,7 例
+ 361, 351, 378, 332, 318, 344, 315, # 第 4 群(処理群)のデータ,7 例
+ 299, 308, 323, 351, 311, 285, 297) # 第 5 群(処理群)のデータ,7 例

> fx=factor(rep(c("C", "W", "X", "Y", "Z"), c(7, 7, 7, 7, 7)))
> summary(glht(aov(vx~fx), alternative="less", linfct=mcp(fx="Williams")))

Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Williams Contrasts

Fit: aov(formula = vx ~ fx)

Linear Hypotheses:
Estimate Std. Error t value Pr(<t)
C 1 >= 0 -79.571 11.245 -7.076 <0.001 ***
C 2 >= 0 -63.500 9.739 -6.520 <0.001 ***
C 3 >= 0 -45.571 9.182 -4.963 <0.001 ***
C 4 >= 0 -39.714 8.890 -4.467 <0.001 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)

No.22997 Re: Williamsの方法 分布表の使い方、Rのパッケージに関して  【aoki】 2020/12/17(Thu) 10:17

関連する本は全て廃棄しており,詳しくはわかりません。

> 横軸の群数はどれを用いればよいのか記載がなく迷っています。

(一貫して)群の数そのものと思います。

> 多群の場合のp値は計算出来ないのではないかと思います

できないでしょう。
なお,次の質問ともかぶりますが,最終手段は R のソースプログラムを解読すればよいでしょう。
> ans = summary(glht(aov(vx~fx), alternative="less", linfct=mcp(fx="Williams")))
> str(ans)
とすると,summary 関数の戻り値を見ることができます。
ans$test$pfunction, ans$test$qfunction を見ればよいでしょう。それぞれの関数の使い方がわかれば,自分で計算することもできますが,
そんなことしなくても,glht を使えば良いだけですね。

> それまでの群をプールする形で実施しているようです。これはmultcompのバグなのか,別の目的の検定方法なのか

glht は General Linear Hypotheses ということで,若干の説明は ? glht で表示される情報を参照して下さい。 Details というところに,やや詳しめに書かれています。
基本的には,そこにも示されている,文献に当たる必要があるでしょう。

References

Frank Bretz, Torsten Hothorn and Peter Westfall (2010), Multiple Comparisons Using R, CRC Press, Boca Raton.

Shayle R. Searle (1971), Linear Models. John Wiley \& Sons, New York.

Jason C. Hsu (1996), Multiple Comparisons. Chapman & Hall, London.

Torsten Hothorn, Frank Bretz and Peter Westfall (2008), Simultaneous Inference in General Parametric Models. Biometrical Journal, 50(3), 346–363; See vignette("generalsiminf", package = "multcomp").

No.23007 Re: Williamsの方法 分布表の使い方、Rのパッケージに関して  【島統】 2020/12/21(Mon) 10:46

青木先生

ご回答いただきありがとうございました。

>(一貫して)群の数そのものと思います。

ありがとうございます。

>ans$test$pfunction, ans$test$qfunction を見ればよいでしょう。それぞれの関数の使い方がわかれば,自分で計算することもできますが,

やはりt.distでは計算できないのですね。
教えていただいた方法で,ソースを解読してみます。

>glht は General Linear Hypotheses ということで,若干の説明は ? glht で表示される情報を参照して下さい。 Details というところに,やや詳しめに書かれています。
基本的には,そこにも示されている,文献に当たる必要があるでしょう。

?glhtを参照しましたが,よくわからないので文献を読んでみます。
ありがとうございました。

● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る