★ adjustの方法を教えてください ★

251. adjustの方法を教えてください べろべろ 2003/07/02 (水) 17:09
└253. Re: adjustの方法を教えてください 青木繁伸 2003/07/02 (水) 17:52
 ├255. Re^2: adjustの方法を教えてください 青木繁伸 2003/07/02 (水) 18:46
 └254. Re^2: adjustの方法を教えてください べろべろ 2003/07/02 (水) 18:14
  └256. Re^3: adjustの方法を教えてください 青木繁伸 2003/07/02 (水) 18:51
   └275. Re^4: adjustの方法を教えてください べろべろ 2003/07/07 (月) 00:36
    └277. Re^5: adjustの方法を教えてください 青木繁伸 2003/07/07 (月) 16:06


251. adjustの方法を教えてください べろべろ  2003/07/02 (水) 17:09
 よく臨床研究の医学論文で”adjustment”が登場します。
 例えば「30歳から50歳の健常者を対象に,血中総コレステロール値と血圧を調べた。ピアソンを用いて検討したところ,血中総コレステロール値と収縮期血圧は,r=0.855,p=0.002であった。
さらに年齢をadjustmentさせたところ,r=0.704,p=0.012であった」というような記載です。
 この際の”adjustment”は,どのような手法を使って行うのでしょうか?

     [このページのトップへ]


253. Re: adjustの方法を教えてください 青木繁伸  2003/07/02 (水) 17:52
>  例えば「30歳から50歳の健常者を対象に,血中総コレステロール値と血圧を調べた。ピアソンを用いて検討したところ,血中総コレステロール値と収縮期血圧は,r=0.855,p=0.002であった。
> さらに年齢をadjustmentさせたところ,r=0.704,p=0.012であった」というような記載です。
>  この際の”adjustment”は,どのような手法を使って行うのでしょうか?

この場合は,「年齢を調整した(制御した)血中総コレステロール値と収縮期血圧の【偏相関係数】」ではないでしょうか。

http://www.tufts.edu/~gdallal/partial.htm
などをご覧になるとよろしいかも。

     [このページのトップへ]


255. Re^2: adjustの方法を教えてください 青木繁伸  2003/07/02 (水) 18:46
ついでだから

件のページの例を R を使ってやってみる

相関係数行列 r を持つ,nc 組のデータを生成する関数
> gendat <- function(nc, r)
+ {
+     nv <- ncol(r)
+     z <- matrix(rnorm(nv*nc), ncol=nv)
+     res <- eigen(r2 <- cor(z))
+     coeff <-  solve(r2) %*% (sqrt(matrix(res$values, nv, nv, byrow=TRUE))*res$vectors)
+     z <- t((t(z)-apply(z, 2, mean))/sqrt(apply(z, 2, var)*(nc-1)/nc)) %*% coeff
+     z %*% chol(r)
+ }

相関係数行列 r,データ行列 data,データフレーム df を作る
> r <- matrix(c(1, 0.8031, -0.39988, 0.80031, 1, -55966, -0.39988, -0.55966, 1), nc=3)
> data <- gendat(20, r)
> df <- data.frame(data)
> colnames(df) <- c("Yield", "Rain", "Temp")
> attach(df)

ちゃんとできたか確かめる
> print(r.matrix <- cor(df))
         Yield     Rain     Temp
Yield  1.00000  0.80031 -0.39988
Rain   0.80031  1.00000 -0.55966
Temp  -0.39988 -0.55966  1.00000

> Yield.Rain <- lm(Yield ~ Rain)
> Yield.adj.Rain <- residuals(Yield.Rain)
Yield を Rain で予測した残差(あ)

> Temp.Rain <- lm(Temp ~ Rain)
> Temp.adj.Rain <- residuals(Temp.Rain)
Temp を Rain で予測した残差(い)

(あ)と(い)の相関係数が Rain で調整した Yield と Temp の偏相関係数
> cor(Yield.adj.Rain, Temp.adj.Rain)
[1] 0.09664399(う)

偏相関係数を計算する関数
> par.cor <- function(xy, xz, yz)
+ {
+     (xy-xz*yz)/sqrt((1-xz^2)*(1-yz^2))
+ }

> Yield.Rain <- r.matrix[1,2]
> Yield.Temp <- r.matrix[1,3]
> Rain.Temp <- r.matrix[2,3]

偏相関係数を求める
> par.cor(Yield.Temp, Yield.Rain, Rain.Temp)

(う)と同じになった
[1] 0.09664399

     [このページのトップへ]


254. Re^2: adjustの方法を教えてください べろべろ  2003/07/02 (水) 18:14
さっそくのご回答,ありがとうございます。

ぼくも(←ど素人ですみません)偏相関係数なのかなあ,と思ったのですが,,,,相関係数を求めた時に得られる有意率pとは別に,偏相関係数の有意率pというのがあるのですか?

ぼくは,(すでに廃盤になってしまった)Statview5.0を使って
いるのですが,このソフトで相関係数と偏相関係数を求めた場合,有意率は,相関係数をフィッシャーのz変換したpしか表示されないのです。

     [このページのトップへ]


256. Re^3: adjustの方法を教えてください 青木繁伸  2003/07/02 (水) 18:51
有意率ではなくて,【有意確率】です。間違えないようにしましょう(^_^)

> ぼくは,(すでに廃盤になってしまった)Statview5.0を使って
> いるのですが,このソフトで相関係数と偏相関係数を求めた場合,有意率は,相関係数をフィッシャーのz変換したpしか表示されないのです。

http://aoki2.si.gunma-u.ac.jp/lecture/Corr/p-corr.html
をご覧になるといいでしょう。
もし Statview で計算されないとしても,Exel を使ってでも,簡単に計算することができます。

     [このページのトップへ]


275. Re^4: adjustの方法を教えてください べろべろ  2003/07/07 (月) 00:36
>有意率ではなくて,【有意確率】です。間違えないようにしましょう(^_^)

すみません(汗。丁寧な解説,本当にありがとうございます。教えてちゃんついでで申し訳ないのですが,

「30歳から50歳の健常者を対象に,血中総コレステロール値と血圧を調べた。ピアソンを用いて検討したところ,血中総コレステロール値と収縮期血圧は,r=0.855,p=0.002であった。
さらに"年齢","男女"をadjustmentさせたところ,r=0.704,p=0.012であった」
という記載も,見受けます。

この場合の"男女"は,ダミー変数(0,1)を使って偏相関を算出しているのでしょうか?

     [このページのトップへ]


277. Re^5: adjustの方法を教えてください 青木繁伸  2003/07/07 (月) 16:06
> この場合の"男女"は,ダミー変数(0,1)を使って偏相関を算出しているのでしょうか?

多分そうでしょうとしかいえません。
(性別などの二値変数は 0,1 以外,例えば1,2 とか,の数値をとってもダミー変数に違いはありません。つまり,二値変数は名義尺度変数でありながら,間隔尺度変数でもあるわけです。ですから,相関係数や偏相関係数を計算しても何の問題もありません(応用面で言えばいろいろあるでしょうが))。

     [このページのトップへ]


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