No.06377 負の値を持つ数値の変数変換  【変数変換】 2008/04/18(Fri) 02:46

正規分布に近づける為に変数変換をしたいと考えている数値が負の値を含んでいる場合(10%程度),どのような変換をするのが適切でしょう?

例えば,適当な数Aを足して(正の方向へシフトさせて)からLog対数を取るというような方法は適切でしょうか?
Box-Cox変換やべき変換なども有り得るのかなとも思いましたが,後でTransform backする時に正負が分からなくなるので,これらを用いる場合もやはり正方向へのシフトが必要になるのかなと思っています。

いずれに変換を用いるかは,分布型によって変わると思いますので,この正の方向へシフトさせることが適切であるか,という部分についてご助言いただければ大変助かります。宜しくお願いします。

No.06378 Re: 負の値を持つ数値の変数変換  【青木繁伸】 2008/04/18(Fri) 11:21

何のために変数変換が必要なのでしょうか
理論的な裏付けのない変数変換は意味がないと思います

No.06380 Re: 負の値を持つ数値の変数変換  【変数変換】 2008/04/18(Fri) 14:15

青木先生

早速のご返信有難うございます。説明不足で大変失礼致しました。癌の治療にかかるコスト の解析をしております。患者の背景因子のバラつきを調整する為に多変量解析(GLM,REG)を用いたいと思っております。従属変数がコスト,説明変数に は,性,年齢,人種などの因子が含まれます。解析手法の特殊性から,従属変数のコストを正規分布に近づけたいと考えました。生データの分布の形から, Log変換が適している印象を受けましたが,負のコストを持つ症例が存在するため,ここに質問させて頂いた次第です。

米国で開催された講 演会で聞いた特殊な手法を用いたために,負のコストを持つ症例が存在します。 癌患者にかかるコストは,診断後のコストから診断される前のコスト(健康診 断など,癌以外の理由でかかるコスト)をマイナスすることにより得られるものとして計算する方法です。

例えば,ある患者の癌の診断を受ける前1年間のコストの月平均額を計算し,これをAとします。癌の診断を受けてから死亡までの月数をn, 月平均コストをBとすれば,
B*n-A*n として計算されるものが 癌に直接関与するコストと定義する

というものです。

分かりにくい説明かも知れませんが,宜しくご教示お願い出来れば幸いです。宜しくお願いします。

No.06382 Re: 負の値を持つ数値の変数変換  【青木繁伸】 2008/04/18(Fri) 16:30

> 説明変数には,性,年齢,人種などの因子が含まれます

説明変数は(ダミー変数を用いる場合も含めて)正規分布しないのですから,従属変数だけ正規分布に近くなるように変換しても無意味なのではないでしょうか

No.06383 Re: 負の値を持つ数値の変数変換  【kai】 2008/04/18(Fri) 17:36

ここでいう従属変数は,複数の説明変数の影響を受けているので正規分布していないのが普通では?

多変量解析(GLM,REG)を実施した時に正規性が必要なのは残差の分布なので,まず多変量解析を行ってみて,残差が正規分布していないときには変数変換を考えるべきだと思います.

No.06384 Re: 負の値を持つ数値の変数変換  【青木繁伸】 2008/04/18(Fri) 21:05

混ぜ返すようで申し訳ないですが,

> ここでいう従属変数は,複数の説明変数の影響を受けているので正規分布していないのが普通では?

は, 逆で,そういう場合は正規分布に近くなる。つまり,複数の変数が誤差を伴って,合成されると正規分布になる。誤差分布と言うくらいだから。たとえば,身長 を決める遺伝子はいくつかあり,更に食生活だとか運動だとか様々な変数が関与するからこそ身長は正規分布に近くなる。

No.06385 Re: 負の値を持つ数値の変数変換  【変数変換】 2008/04/19(Sat) 00:56

青木先生 Kai様

色々ご教示くださり,大変有難うございます。
一般化線形モデルの場合 には,従属変数も説明変数も正規分布している仮定を持たせるべきなのだと思っておりました(残差の安定は勿論ですが)。私の例では,説明変数の中にカテゴ リカルデータが入っており,正規性という表現は不適切なものも含まれてしまっています。向学の為に教えていただきたいのですが,仮に性差や人種などカテゴ リカルデータについては症例が多く層別可能だとして,用いる全ての説明変数と従属変数が全て連続変数であった場合,どのような場面で変数変換を考えるべき か,その評価の方法,手順など教えて頂ければ幸いです。又,この解析手法についてもう一度学び直したいと思っておりますが,何か良い書籍があれば是非教え て頂ければ幸いです。

又,私が最初にお示しした例では変数変換をしなくても良い可能性も有り得るという理解を致しましたが,仮に負の値を持つ数値を変数変換したいという事情が生じた場合,皆様はどのような手法を取られているか教えて頂くことは可能でしょうか?

何度も申し訳ございません。何卒宜しくお願い申し上げます。

No.06389 Re: 負の値を持つ数値の変数変換  【kai】 2008/04/21(Mon) 16:13

>仮に性差や人種などカテゴリカルデータについては症例が多く層別可能だとして,用いる全ての説明変数と従属変数が全て連続変数であった場合,どのような場面で変数変換を考えるべきか,その評価の方法,手順など教えて頂ければ幸いです。

私が今まで行った事がある物を挙げますと,以下のようなものがあります.
●残差が正規分布に従わない(対数正規分布に従う)ので,目的変数を変数変換したところ,残差が正規分布に従うようになりあてはまりが向上した.
●説明変数xと目的変数yの関係が多項式の関係にはないので,対数変換したり,逆数変換したりしたところあてはまりが向上した.
●残差が不等分散(説明変数の値が変化することにより目的変数のバラツキが異なる)であったので目的変数を対数変換して等分散にした.

>仮に負の値を持つ数値を変数変換したいという事情が生じた場合,皆様はどのような手法を取られているか教えて頂くことは可能でしょうか?

すべてが負の数の場合,符号を入れ替える(−1をかける)とか,一部が負の数の場合は,すべてが正の値になるように足し算を行い,なお分布が歪んでいたら,変数変換(対数変換,平方根変換,逆数変換)などを行う.
[以上の作業を,なるべく簡単に行うため,マクロや関数を使ってます]

No.06392 Re: 負の値を持つ数値の変数変換  【青木繁伸】 2008/04/21(Mon) 21:55

理論的な根拠(理論的に適切なモデル)がないにも関わらず,データ解析上の都合だけから恣意的な変数変換を行うというのはどうかと思います。
最終的に選ばれたモデルが最適なんだという観点からはそれでもよいのでしょうけど,そもそも論が欠除しているんではないかと言われれば,反論の余地がないのではないでしょうか。
(それにたいする反論もあるのでしょうけど)

No.06393 Re: 負の値を持つ数値の変数変換  【青木繁伸】 2008/04/21(Mon) 22:30

例えば,以下のようなデータがあったとき,どういう変数変換をすれば本来のモデルが得られるのでしょうか。
なお,このテストデータは,不均一分散モデルにより発生したデータです。
x 	y
1 4.24602522852261
2 8.25655419461513
3 9.0384925470284
4 11.1895398268424
5 13.4625949508341
6 14.5726369468883
7 17.0165860020823
8 19.7048791019712
9 21.9718493208634
10 22.3795083969872

No.06395 Re: 負の値を持つ数値の変数変換  【青木繁伸】 2008/04/21(Mon) 22:47

答えを書いておきます。
真のモデルは y = 2*x+3 です

単純な回帰分析の答えは,
y = 2.007 * x + 3.146
Residual standard error: 0.7129 on 8 degrees of freedom
Multiple R-squared: 0.9879, Adjusted R-squared: 0.9864
予測値
5.153007 7.159865 9.166722 11.173580 13.180438 15.187296 17.194153 19.201011
21.207869 23.214726

です。

これと比較して,どういう点でよりよいモデルが探索されるのでしょうか。

No.06601 Re: 負の値を持つ数値の変数変換  【変数変換】 2008/05/23(Fri) 16:25

Kai様,青木先生

大変参考になるご助言を下さり,大変有難うございました。インターネット接続が出来ない状況におりましたもので,返信が大変遅くなりましたこと,お詫び申し上げます。
もう一度よく勉強しなおしてみます。本当に有難うございました。

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