No.09417 1位になる確率からの分析  【もと】 2009/03/04(Wed) 01:58

コンピュータアルゴリズムを勉強する者です。

玉入れ競技を3名が争い,過去の実績からそれぞれの1位になる確率のみが分かっており,かつ,点数の標準誤差はそれぞれ同じと仮定するとき,以下のような問題について解を求める統計手法はどのようなものでしょうか?

A君が1位になる確率50%,B君は40%,C君は10%のとき,

問題1.B君とC君の平均点の差(実力差)は,A君とB君の平均点の差(実力差)の何倍にあたるか?
問題2.A君が外れて,B君とC君の2名で争うとき,それぞれの勝率は何%か?

正規分布と累積正規分布の確率密度関数を利用して近似値を無理やり求めるアルゴリズムを検討していますが,そうではなく,統計手法として適切な方法があるのでしょうか?
「多項プロビットモデル」がそれにあたるのでしょうか?
恐れ入ります。勉強すべき内容だけでもご教示ください。

No.09424 Re: 1位になる確率からの分析  【青木繁伸】 2009/03/04(Wed) 15:40

面倒なので,シミュレーションプログラムを書いてみた。
> sim <- function(Mean, n=10000)
+ {
+ d <- d0+c(Mean, 0)
+ tbl <- table(apply(d, 2, which.max))/n
+ if (length(tbl) < 3) {
+ res <- Inf
+ }
+ else {
+ res <- sum((tbl-c(0.5, 0.4, 0.1))^2)
+ }
+ return(res)
+ }
> n <- 500000
> d0 <- t(scale(matrix(rnorm(3*n), n)))
> par <- c(2, 1)
> ans <- optim(par, sim, method="BFGS", control=list(trace=TRUE), n=n)
initial value 0.085993
iter 10 value 0.000110
iter 20 value 0.000000
final value 0.000000
converged
> d <- d0+c(ans$par, 0)
> tbl <- table(apply(d, 2, which.max))/n
> names(tbl) <- LETTERS[1:3]
> tbl # 3者の勝率
A B C
0.500002 0.400014 0.099984
> c(ans$par, 0) # 3者の平均値
[1] 1.1828138 0.9941877 0.0000000
> min.x <- min(d0)
> max.x <- max(d0)
> x <- seq(min.x, max.x, length=1000)
> plot(x, dnorm(x, mean=ans$par[1]), type="l", xlim=c(min.x, max.x))
> lines(x, dnorm(x, mean=ans$par[2]), col=2)
> lines(x, dnorm(x, mean=0), col=3)
> abline(v=ans$par)
> ans$par[2]/(ans$par[1]-ans$par[2]) # 問題 1. の解
[1] 5.27068
> d2 <- t(scale(matrix(rnorm(2*n), n)))+c(ans$par[2], 0)
> tbl2 <- table(apply(d2, 2, which.max))/n # 問題 2. の解
> names(tbl2) <- LETTERS[2:3]
> tbl2 # 勝率
B C
0.759072 0.240928

No.09432 Re: 1位になる確率からの分析  【ひの】 2009/03/04(Wed) 20:13

点数を与える規則が示されていないので解けませんね。
入れた玉の個数を得点とするのか,1位3点2位2点3位1点というような方式なのか,1位のみ得点して他は0点なのか…。

No.09439 Re: 1位になる確率からの分析  【もと】 2009/03/05(Thu) 04:15

ご回答ありがとうございます。

>ひの様
入れた玉の個数を得点とし,順位付けを行います。説明不足,言葉足らずでした。

>青木様
シンプルなコード,迅速なご回答に驚愕しております。ありがとうございました。ただ茫然自失です。というのも私は本件の検討に数ヶ月かかっています(涙)

頂 いたコードを元にRについて学習を進めておりますが,仕様について質問させてください。コードの内容は「定義したsim関数を用いて,optimによる最 適化手法により,1位になる確率に近づく平均値を求めた」という理解でよろしいでしょうか?大変恐れ入ります。簡単で結構ですので解説いただけるとありが たいです。

もう一点,本件に関して質問です。例えば三肢択一アンケートで「好きなスポーツは?」としたとき,サッカー50%野球40%テ ニス10%であれば,各スポーツの各回答者の評価点が正規分布であり回答者は最高点のスポーツを回答したと仮定して,サッカーを除いた結果は野球が 76%,テニスが24%と推定すること。また,アンケート結果の回帰分析を行うときに,従属変数は回答の比率ではなく,本件で求めた平均値(サッカー 1.18,野球0.99,テニス0)を用いること,などを検討しているのですが,アンケート分析のために平均値へ変換することは意味がないことでしょう か?それとも,平易な文献では見ないのですが,一般的な統計手法なのでしょうか?

No.09440 Re: 1位になる確率からの分析  【青木繁伸】 2009/03/05(Thu) 09:11

最近なかったので,無防備でしたが,「たとえ話は止めた方がいいですよ」。質問者はうまくたとえたつもりでも,そ のたとえは質問者が解釈・評価した点にスポットを当てたものになっており,裏がわかってみれば重要な点がたくさんぬけてしまい,問題が全く別のものになっ てしまい,結果として,無意味・滑稽・荒唐無稽な結論に至ることがあります。

今回の件について言えば,コンジョイント分析を行えばよいのだと思いますがどうでしょうか?

No.09457 Re: 1位になる確率からの分析  【もと】 2009/03/05(Thu) 22:48

>青木様
たとえ話の件,大変申し訳ございません。

私が検討したいのはアルゴリズムや解法 であり,アンケートの分析手法ではありません。従って,最初のご回答の中身(特に平均値の算出まで)が分かれば解決なのですが・・それとは別に,出力され る結果の有効性についてご意見を伺いたいということでした。大変申し訳ございませんでした。

1位になる確率しか分からない事象において, 結果を視覚化するとき,確率の円グラフになろうかと思います。シェアの視覚化ではこの確率の値の利用が良いのですが,「実力」を測ろうとするときには,円 グラフの利用はなじまず,求めて頂いた「平均値」の利用がより有効ではないかと考える次第です。

1位になる確率しか分からない事象,また例えで大変恐縮ですが・・小選挙区選挙の得票率などにおいて,「実力」の比較をするときには,前述の「平均値」を求める簡単なシステムツール(VBA)を検討しておりました。

このことが,統計分析の手法として意味がないものか,有効と考えられるか,そもそも一般的な統計手法(統計ツールの提供)として存在するものか,ご意見を伺いたいと考えておりました。度々の質問,大変申し訳ございません。ご回答お願い致します。

No.09470 Re: 1位になる確率からの分析  【ひの】 2009/03/06(Fri) 22:57


>過去の実績からそれぞれの1位になる確率のみが分かっており,かつ,点数の標準誤差はそれぞれ同じと仮定するとき

 これだけの条件ではやはり解けませんね。得点の分布型に関する情報が必要。でないと勝率の大きいほうが平均得点が低くなるような極端な分布型もありえます。「標準誤差が同じ」というだけで十分かどうかも検討の余地があると思います。

No.09471 Re: 1位になる確率からの分析  【もと】 2009/03/07(Sat) 02:43

>ひの様
>青木様
ありがとうございまいた。

私自身が右往左往してご迷惑をおかけしています。
しばらくの間は学習し,出直してまいります。
この後は質問ではなく私の検討したいことでした。雑談としてお聞き流しください。

1 位になる確率の値と,上位2位以内になる確率の値,また,最下位になる確率の値では,数値の大きさの比較により「実力の差を比較」しようとすると,それぞ れ違う印象の結果になります。従って,確率の値そのままではシェアなどは示せるものの,「実力の差」は測れないと考えていました。

繰り返し争うときは,1位5点,2位3点・・と配点して各回の点数を合計し,実力を測るのがいいかも知れません。ただ,こちらの場合も配点の方法によって,合計点数の印象が異なってしまいます。

「実力の差を比較」するときにどういった方法が公正であるかを考えたとき,「正規分布と仮定したときの各者の平均値」を算出して利用するのが良いのではないかと考えた次第です。ひの様のおっしゃるように,分布型の情報がなければ意味がないものかもしれません。

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