CDの順位の変動を指数化したいと思ってます。


例えば、

【前週】
1位 一縷の望み
2位 二番煎じ
3位 三日月の丘
4位 四天王のセンクウ
5位 五臓六腑

というチャートがあります。
翌週が下記3パターンあったとします。
【1】
1 二番煎じ
2 一縷の望み
3 三日月の丘
4 四天王のセンクウ
5 五臓六腑

【2】
1 五臓六腑
2 二番煎じ
3 三日月の丘
4 悪路王の丘
5 一縷の望み

【3】
1 悪路王の丘
2 ナノイーの天女
3 魔王退店
4 朔姫
5 ゆらめきと煌き

1は、1位と2位のみ入れ替わり。
2は、1位と5位が入れ替わり、4位が圏外に飛び、そこに新曲がランク
3は、前週全て圏外で全て新曲。

という形です。

感覚的に3>>>>2>>1のような指数になるでしょうが、これを指数化するにはどんな計算をすれば良いでしょうか?

単に前週からのプラスマイナスの絶対値(圏外は6位として)を計算すればいいのでしょうか?

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/07/20 08:34:23
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

ポイント35pt

何に使いたいのかさっぱりわからないので思いつきです


1位を5点、2位を4点、以下順に5位1点までを付与して6位以下は圏外として全てゼロとする

一縷の望みの変動は【前週】と【1】でそれぞれ1位2位なので点数の変動は|5-6|=1

同様に表にしてみると

パターン【1】

前週 変動値
二番煎じ 2位 1位
一縷の望み 1位 2位
三日月の丘 3位 3位
四天王のセンクウ 4位 4位
五臓六腑 5位 5位

ゼロを除く変動値すべてを掛けあわせる1x1=1

パターン【2】

前週 変動値
五臓六腑 5位 1位
二番煎じ 2位 2位
三日月の丘 3位 3位
悪路王の丘 圏外 4位
一縷の望み 1位 5位
四天王のセンクウ 4位 圏外

ゼロを除く変動値すべてを掛けあわせる4x2x4x2=64

パターン【3】

全部圏外からの総入れ替えなので順位の上がった5曲(5x4x3x2x1)+下がったもの5曲(5x4x3x2x1)=240


1位ー5位の場合の変動幅は上記のとおりゼロから240までの間の数値を取りますが

この方法で5位ではなく10位までとすると(10x9x8x7x6x5x4x3x2x1)x2=7257607

20位までだと4865804016353280000になってしまうのでlogにでもしたほうが扱いやすいかもしれないです

Excelでそれぞれが取り得る値の範囲を計算してみると下のような具合

結果
=LOG(FACT(5)*2) 2.380211242
=LOG(FACT(10)*2) 6.860793029
=LOG(FACT(20)*2) 18.68715461

FACTは階乗を求めるExcelのワークシート関数です

指数として扱いやすくするならば 2.380 を1や100などに置き換えるような計算をすればいいでしょう


さらに1位ー5位の時には圏外として6位ー10位も用意するなどして点数のつけ方を工夫すれば意外と面白くなりそうな気はするけど

この案が使い物になるかどうかわからないので、このあたりにしておきますね。数値や計算式は検算してください

id:ruijio

ありがとうございます。

用途としては検索エンジンの日々の変動を指数化したいと思ってるのですが、WEBに馴染みがないと解り辛いので、CDのランキングに例えさせていただいた次第です。なので、実際に計算したりはPHPを使います。

10位までなので、最大7257607ということですね。ただ、検索エンジンのTOP10が一日で全てひっくり返るということはほぼ無いと思うので、例えば最大数を100,000ときめ、これを超えた場合全て、10万とすればよさそうですね。

ただ、変動があればあるほど数値の開きが大きくなるので、この辺をどう修正するかが課題になりそうですね。

EXCELのlogについては知らなかったので大変為になりました。有難うございました。

2010/07/14 20:59:51

その他の回答1件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149ここでベストアンサー

ポイント35pt

何に使いたいのかさっぱりわからないので思いつきです


1位を5点、2位を4点、以下順に5位1点までを付与して6位以下は圏外として全てゼロとする

一縷の望みの変動は【前週】と【1】でそれぞれ1位2位なので点数の変動は|5-6|=1

同様に表にしてみると

パターン【1】

前週 変動値
二番煎じ 2位 1位
一縷の望み 1位 2位
三日月の丘 3位 3位
四天王のセンクウ 4位 4位
五臓六腑 5位 5位

ゼロを除く変動値すべてを掛けあわせる1x1=1

パターン【2】

前週 変動値
五臓六腑 5位 1位
二番煎じ 2位 2位
三日月の丘 3位 3位
悪路王の丘 圏外 4位
一縷の望み 1位 5位
四天王のセンクウ 4位 圏外

ゼロを除く変動値すべてを掛けあわせる4x2x4x2=64

パターン【3】

全部圏外からの総入れ替えなので順位の上がった5曲(5x4x3x2x1)+下がったもの5曲(5x4x3x2x1)=240


1位ー5位の場合の変動幅は上記のとおりゼロから240までの間の数値を取りますが

この方法で5位ではなく10位までとすると(10x9x8x7x6x5x4x3x2x1)x2=7257607

20位までだと4865804016353280000になってしまうのでlogにでもしたほうが扱いやすいかもしれないです

Excelでそれぞれが取り得る値の範囲を計算してみると下のような具合

結果
=LOG(FACT(5)*2) 2.380211242
=LOG(FACT(10)*2) 6.860793029
=LOG(FACT(20)*2) 18.68715461

FACTは階乗を求めるExcelのワークシート関数です

指数として扱いやすくするならば 2.380 を1や100などに置き換えるような計算をすればいいでしょう


さらに1位ー5位の時には圏外として6位ー10位も用意するなどして点数のつけ方を工夫すれば意外と面白くなりそうな気はするけど

この案が使い物になるかどうかわからないので、このあたりにしておきますね。数値や計算式は検算してください

id:ruijio

ありがとうございます。

用途としては検索エンジンの日々の変動を指数化したいと思ってるのですが、WEBに馴染みがないと解り辛いので、CDのランキングに例えさせていただいた次第です。なので、実際に計算したりはPHPを使います。

10位までなので、最大7257607ということですね。ただ、検索エンジンのTOP10が一日で全てひっくり返るということはほぼ無いと思うので、例えば最大数を100,000ときめ、これを超えた場合全て、10万とすればよさそうですね。

ただ、変動があればあるほど数値の開きが大きくなるので、この辺をどう修正するかが課題になりそうですね。

EXCELのlogについては知らなかったので大変為になりました。有難うございました。

2010/07/14 20:59:51
id:Hyperion64 No.2

回答回数791ベストアンサー獲得回数84

ポイント35pt

(スピアマンの)順位相関係数を適用してみてはどうでしょうか?

http://www.tamagaki.com/math/Statistics609.html

この事例(表)で「学生」→「CDアルバム名」、「数学の順位」→「前週の順位」と

置き換えます。

「英語の順位」を【1】、【2】、【3】として、「前週の順位」に対する順位相関係数を算出します。

そうすると「前週の順位」に近いもの順に1に近くなります。

 ※「前週の順位」と一致すればr=1となり、順位が完全に

   逆転していればr=-1となります。

この方式の欠点は、CDアルバム名がどこかの順位に必ず存在しないと計算出来ない点ですね。

id:ruijio

遅くなりましたが、ありがとうございます。

リンク先拝見いたしましたが、順位相関係数・・・私には難しすぎて理解できませんでした。

>この方式の欠点は、CDアルバム名がどこかの順位に必ず存在しないと計算出来ない点ですね。

でも、参考になりました。有難うございます。

2010/07/20 08:15:37
  • id:windofjuly
    うぃんど 2010/07/14 20:49:03
    >|5-6|=1
    タイポじゃなくて試行錯誤の異物です(笑)
    最終的に1位を5点にしたので |4-5|=1 です


    >(5x4x3x2x1)+下がったもの5曲(5x4x3x2x1)=240
    ここで間違ったので、以後も間違ってます。ごめんね
    全部掛け合わせなければならないので(5x4x3x2x1)^2=14400
    10位までとすると(10x9x8x7x6x5x4x3x2x1)^2=13168189440000
    20位までだと5.91901218138993E+36  Excelで計算したら指数でしか返してくれなかった(泣)
    =LOG(FACT(5)^2)  4.158362492
    =LOG(FACT(10)^2) 13.11952607
    =LOG(FACT(20)^2) 36.77224923
  • id:windofjuly
    うぃんど 2010/07/14 21:44:13
    >変動があればあるほど数値の開きが大きく
    「対数」を持ち出したのはそのためです
    下のようなグラフ用紙見た記憶無いですか?
    http://physics.e-one.uec.ac.jp/report/graf/semi-log.html
    logはExcelの専売特許じゃなくてphpなど他の言語にもありますよ
    http://php.net/manual/ja/function.log.php

  • id:ruijio
    windofjulyさん

    コメントありがとうございます。
    あら・・、足すのでなくて最後掛け合わせる感じになるんですね・・・10位で10兆ですか、すごい数字になっちゃいますね。

    >「対数」を持ち出したのはそのためです。下のようなグラフ用紙見た記憶無いですか?

    すみません、ないです(笑)。対数も調べてみましたが、???と言う感じでしたが、windofjulyさんのご提案していただいた案にてトライしてみたいと思います。

    色々とご丁寧に有難うございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません