★ ロジスティック回帰分析に必要なサンプル数 ★

151. ロジスティック回帰分析に必要なサンプル数 yui 2003/06/17 (火) 17:31
└152. Re: ロジスティック回帰分析に必要なサンプル数 青木繁伸 2003/06/17 (火) 18:04
 └154. Re^2: ロジスティック回帰分析に必要なサンプル数 yui 2003/06/17 (火) 21:22
  └158. Re^3: ロジスティック回帰分析に必要なサンプル数 青木繁伸 2003/06/17 (火) 21:44
   └162. Re^4: ロジスティック回帰分析に必要なサンプル数 yui 2003/06/18 (水) 15:22
    └163. Re^5: ロジスティック回帰分析に必要なサンプル数 青木繁伸 2003/06/18 (水) 17:11
     └164. Re^6: ロジスティック回帰分析に必要なサンプル数 青木繁伸 2003/06/18 (水) 18:22
      └170. Re^7: ロジスティック回帰分析に必要なサンプル数 青木繁伸 2003/06/19 (木) 01:23
       └185. Re^8: ロジスティック回帰分析に必要なサンプル数 yui 2003/06/19 (木) 21:16
        └186. Re^9: ロジスティック回帰分析に必要なサンプル数 青木繁伸 2003/06/19 (木) 21:25
         └187. Re^10: ロジスティック回帰分析に必要なサンプル数 yui 2003/06/19 (木) 21:36


151. ロジスティック回帰分析に必要なサンプル数 yui  2003/06/17 (火) 17:31
こんにちは。
ロジスティック回帰分析について質問させてください。

ロジスティック回帰分析を行う場合,各変数のサンプル数は,(目安として)最低どの程度必要なのでしょうか?
いくつか,ロジスティック回帰のことが書かれている本も読んだのですが,結局分かりませんでした。
ご教示いただけるとありがたいです。

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


152. Re: ロジスティック回帰分析に必要なサンプル数 青木繁伸  2003/06/17 (火) 18:04
> ロジスティック回帰分析を行う場合,各変数のサンプル数は,(目安として)最低どの程度必要なのでしょうか?

それぞれの変数ごとにサンプル数が変わるわけでもないと思うので,独立変数がp個のときにサンプル数(データ数)がいくつ必要かということでしょうか?

理論的にはたしかp+1だけあればいいのだったか(+2か+3か?)
しかし,そんな,理論的に必要最小限のデータ数に基づいて分析した結果は不安定でもあるし,学会誌などに投稿した場合にもクレームがつくでしょうね。

pの数十倍は必要なのではないでしょうか。

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


154. Re^2: ロジスティック回帰分析に必要なサンプル数 yui  2003/06/17 (火) 21:22
お返事ありがとうございます。

>それぞれの変数ごとにサンプル数が変わるわけでもないと思うので,独立変数がp個のときにサンプル数(データ数)がいくつ必要かということでしょうか?

そうです,そうです。

>理論的にはたしかp+1だけあればいいのだったか(+2か+3か?)
>しかし,そんな,理論的に必要最小限のデータ数に基づいて分析した結果は不安定でもあるし,学会誌などに投稿した場合にもクレームがつくでしょうね。

たとえば,独立変数が2個であるとき,理論的な最小限のデータ数は3〜5個くらいということになるのですね。


>pの数十倍は必要なのではないでしょうか。

独立変数が1個,または2個の場合,データ数が60個くらいあれば,クレームがつかない程度にはデータ数がとれてると考えても良いものでしょうか?
(そもそも,独立変数が1個でも,ロジスティック回帰分析はできるのでしょうか?)


独立変数は,量的なデータでもカテゴリカルなデータでもよいようですが,正答率(0.64,0.89など)であっても問題ないのでしょうか?
正答率を独立変数に用いてロジスティック回帰したところ,オッズ比が18710352.580という値になってしまいました。(独立変数は2個,データ数は60個で行いました。)

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


158. Re^3: ロジスティック回帰分析に必要なサンプル数 青木繁伸  2003/06/17 (火) 21:44
> たとえば,独立変数が2個であるとき,理論的な最小限のデータ数は3〜5個くらいということになるのですね。

それは最小限ということです。
例えば,直線回帰をするときデータが2個では決定係数1の予測式ができてしまうので,最低でも3個のデータがないと意味がないです。しかし,だからといって,3組のデータを使って直線回帰しましたという人はいないでしょう。

> >pの数十倍は必要なのではないでしょうか。
>
> 独立変数が1個,または2個の場合,データ数が60個くらいあれば,クレームがつかない程度にはデータ数がとれてると考えても良いものでしょうか?

分野によるのではないでしょうか。データを取ろうにもデータがないというような医学分野だとそういうこともあるかもしれませんが。

> (そもそも,独立変数が1個でも,ロジスティック回帰分析はできるのでしょうか?)

独立変数というのは,従属変数を説明するものですから,一つの独立変数で十分説明できるなら,一つでもいいのは当然です。しかし,普通は物事はそんなに単純ではないと言うことでしょう。

> 独立変数は,量的なデータでもカテゴリカルなデータでもよいようですが,正答率(0.64,0.89など)であっても問題ないのでしょうか?

かまわないと思いますが。問題があるのではないかと思ったのですか。また,そうなら,なぜそう思ったのですか。

> 正答率を独立変数に用いてロジスティック回帰したところ,オッズ比が18710352.580という値になってしまいました。(独立変数は2個,データ数は60個で行いました。)

最近のスレッドにもありましたが,お使いになった統計解析プログラムで,オッズ比がどのように計算され,どのような意味を持っているのかをお確かめになった方がいいです。

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


162. Re^4: ロジスティック回帰分析に必要なサンプル数 yui  2003/06/18 (水) 15:22
>> 独立変数は,量的なデータでもカテゴリカルなデータでもよいようですが,正答率(0.64,0.89など)であっても問題ないのでしょうか?

>かまわないと思いますが。問題があるのではないかと思ったのですか。また,そうなら,なぜそう思ったのですか。

問題があると思ったのは,オッズ比が18710352.580という,途方もない値になってしまったためです。正答率を単純な値(0.64→6,0.89→9)にして同様の分析をしたところ,オッズ比は2.324となりました。それで,独立変数に正答率(%)をとったのがいけなかったかと思いました。

>最近のスレッドにもありましたが,お使いになった統計解析プログラムで,オッズ比がどのように計算され,どのような意味を持っているのかをお確かめになった方がいいです。

分析にはSPSSを用いました。なぜこのような途方もないオッズ比がでてしまったのか,もしお心当たりがありましたら,ご教示いただけるとありがたいです。

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


163. Re^5: ロジスティック回帰分析に必要なサンプル数 青木繁伸  2003/06/18 (水) 17:11
> 分析にはSPSSを用いました。なぜこのような途方もないオッズ比がでてしまったのか,もしお心当たりがありましたら,ご教示いただけるとありがたいです。

ですから,それを自分で調べた方がいいですよと言うことなんです。

でも,もったいぶっていると思われるのもいやなので書いておきますが,SPSS では

http://www.h5.dion.ne.jp/~ge3j-ari/stat/logis.html
によれば,

> 4)ロジスティック回帰分析で得られるのは
>1)回帰係数(SPSS では"B"で表される) ロジスティックモデルで,ある患者のリスクを計算する場合に必要

>2)標準誤差(SE) 95%信頼限界の計算に必要

>3)Odds ratio(オッズ比)  回帰係数の指数がオッズ比
(SPSSではExp(B)で表される)

つまり,Exp(B) ということは,exp(1×B) なわけですから x=0 にたいして x=1 であるときのオッズ比です。
正解率の取る値の範囲とB の大きさによってはとてつもない大きな値が出るわけです。

これも,他の方からメールで指摘があったのですが,年齢に対するオッズ比でも,上と同じように exp(B) で計算しているわけだから,1歳違うことによるオッズ比であり,そのような場合には逆に小さいオッズ比しか表示されていない。そのような場合には5歳違うことによるオッズ比 exp(5B) を出さないと意味がないんじゃないの!ということもあるんです。

ちなみに,SAS は SPSS と同じだそうです。
しかし,JMP では別の定義になっています。

繰り返しますが,有名な統計ソフトが出してくれた計算結果だからということで,その計算方法を確かめないで出てきた数値や検定結果だけをどうこう言うのはやめましょう。

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


164. Re^6: ロジスティック回帰分析に必要なサンプル数 青木繁伸  2003/06/18 (水) 18:22
補足しておきます。
浜島信之著「多変量解析による臨床研究」名古屋大学出版会
が,詳しく書いてくれていますので,図書館などで調べるといいかもしれません。

調べる余裕のない人のために。

同書,第7章 ロジスティックモデル
logit p = α + βx とする(独立変数が複数あっても同じ)
(同書で,α,βとギリシア文字が使われているのは若干不適切と思うが,そのまま従っておく)

7-2 相対危険度の計算(1):予後因子が0,1の値を取る場合

x が 0 または 1 の値を取るとき,x = 1 のときの,x = 0 に対するオッズ比を求めるには,
x = 0 のときは logit p(x=0) = α
x = 1 のときは logit p(x=1) = α + β
logit p(x=1) - logit p(x=0) = β
よって,オッズ比 = exp(β)
ちなみに95%信頼区間は exp(β±1.96*SE)

7-3 相対危険度の計算(2):予後因子が離散量や連続量の場合

x = a に対する x= b のときのオッズ比は同様にして,
オッズ比 = exp((b-a)*β)
SPSS も SAS も b と a (あるいは b-a)をどうやって設定していいか分からない(研究者しか知らない)ので,b-a = 1 を仮定して,つまり,オッズ比 = exp(1*β)を計算しているだけ。
b-a は分析者が適切に設定する必要がある!!!
ちなみに95%信頼区間は exp((β±1.96*SE)*(b-a))
ここでも b-a を適切に設定する必要があるのは同じ。

b-a が適切でないと,オッズ比がとてつもなく大きかったり小さかったりということがおこるが,それはそういう計算方法なんだから統計プログラムのせいではない。同様に,信頼区間が狭かったり広かったりということも同じ理由で生じる。

なお,βの検定は,β/SE によるので,a,b とは無関係であることにも注意。


# これでいいですか? S.T. 氏

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


170. Re^7: ロジスティック回帰分析に必要なサンプル数 青木繁伸  2003/06/19 (木) 01:23
R で例を示しましょうか。

てきとーなデータをでっち上げて,R で解析してみる例
> x100 <- seq(0,100,10)
> x <- x100/100
> y <- c(0,0,0,0,1,0,1,1,1,1,1)

独立変数が % 表示のとき
> summary(glm(y ~ x100, family=binomial))

Call:
glm(formula = y ~ x100, family = binomial)

略

Coefficients:
            Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.86818    3.86366  -1.519    0.129
x100         0.13043    0.08195   1.592    0.111

略

B=0.13043

オッズ比 exp(B) を計算
> exp(0.13043)
[1] 1.139318

x=20% のときの x=10% に対するオッズ比
> exp(0.13043*(20-10))
[1] 3.685109 (★)後で参照!

==================================

独立変数が 0〜1 の値をとるとき(%表示でないとき)

> summary(glm(y ~ x, family=binomial))

Call:
glm(formula = y ~ x, family = binomial)

略

Coefficients:
            Estimate Std. Error z value Pr(>|z|)
(Intercept)   -5.868      3.864  -1.519    0.129
x             13.043      8.195   1.592    0.111

略

B=13.043 
exp(B) を計算
> exp(13.043)
[1] 461852.1  おやま〜,とんでもない大きい値!

でもね〜,上と同じことやるのなら,x=0.2 の x=0.1 に対するオッズ比は
> exp(13.043*(0.2-0.1))
[1] 3.685109 % 表示のときに出した答え(★)と同じですね(当たり前)
exp(B) も上と同じことをやるなら,上では exp(1*B) で(1は1%)を計算したのだから,下では exp(0.01*B)としないといけない。そうすると,結局,exp(0.01*13.043)= exp(0.13043)で,上と同じ値になる。

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


185. Re^8: ロジスティック回帰分析に必要なサンプル数 yui  2003/06/19 (木) 21:16
>x = a に対する x= b のときのオッズ比は同様にして,
>オッズ比 = exp((b-a)*β)
>SPSS も SAS も b と a (あるいは b-a)をどうやって設定していい>か分からない(研究者しか知らない)ので,b-a = 1 を仮定して,つまり,オッズ比 = exp(1*β)を計算しているだけ。
>b-a は分析者が適切に設定する必要がある!!!

SPSSが出してくれたロジスティック回帰係数と,自分で考えた適正であろう「b-a」を当てはめてオッズ比をだしたろころ,2.532というオッズ比が得られました。

つまり,SPSSで自動的に出してくれるのはロジスティック回帰係数まで。その後のオッズ比は,自分で考えて計算しなければいけない。ということになるのでしょうか?

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


186. Re^9: ロジスティック回帰分析に必要なサンプル数 青木繁伸  2003/06/19 (木) 21:25
> つまり,SPSSで自動的に出してくれるのはロジスティック回帰係数まで。その後のオッズ比は,自分で考えて計算しなければいけない。ということになるのでしょうか?

そういうことを書いたつもりですが。

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


187. Re^10: ロジスティック回帰分析に必要なサンプル数 yui  2003/06/19 (木) 21:36
> > つまり,SPSSで自動的に出してくれるのはロジスティック回帰係数まで。その後のオッズ比は,自分で考えて計算しなければいけない。ということになるのでしょうか?
>
> そういうことを書いたつもりですが。

ようやく納得できました。
お時間を割いていただいて,ありがとうございました!

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


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