統計・数列で以下のような傾向を抜き出したいと考えています。

(数学・統計の専門知識はなく申し訳ありません。)

+をプラス値、-をマイナス値としたとき、
以下の3つの数列があるとします。
※数列の順は時系列になっていて入れ替えられません

(A)
- - - - - - - - - - - - - -

(B)
+ + + + - + + - + + + + + +

(C)
+ - + - + - + - - + + - - +


上記のようなデータがあったとき、

(A)がもっとも大きく、次に(B)、(C)がもっとも小さい

そういった指数を算出できるような式または算出方法、
それが難しい場合概念・統計用語だけでもお教えください。


データが0を閾値として、
プラスとマイナスを逆の性質があるものとして取り扱い、

・片方にプラスかマイナスどちらかに、
 連続的に生ずるような傾向にあるとき指数が高くなる。

・データがプラスとマイナスを交互になるような
 傾向が強くなるとき指数が低くなるようなもの

このようなものを考えております。
指数の高い低いは逆転していてもかまいません。

より具体的な内容、より簡単な説明(外部サイトでもかまわない)を
してくださった方にポイントを配布いたします。

回答の条件
  • 1人3回まで
  • 13歳以上
  • 登録:2016/08/05 13:48:01
  • 終了:2016/08/05 22:45:21

ベストアンサー

id:cdaotg No.1

cdaotg回答回数80ベストアンサー獲得回数182016/08/05 18:00:03

ポイント300pt

時刻tと時刻t+1の差分に着目して、以下の様に処理してはどうでしょうか?

1. 前処理
「+の値を+1に、-の値を-1に変換する」
例:+,+,+,-,+,+,+,+,-,+ を +1,+1,+1,-1,+1,+1,+1,+1,-1,+1 に。

2. 各時刻ごとの差分を計算
「時刻tと時刻t+1の差の絶対値を2で割った値を計算する」
例:+1,+1,+1,-1,+1,+1,+1,+1,-1,+1 から 0,0,0,1,1,0,0,1,1 に。

3. 差分の平均値を計算
「2.で求めた数列の平均を計算する」
例:0,0,0,1,1,0,0,1,1 を 0.4444 に。

数式で書くと、下記の通りとなります。
なお、tを時刻、Tをデータの数、a(t)を時刻tでの前処理後の値、abs(x)xの絶対値を返す関数とします。

f(x)=¥frac{1}{T}¥sum_{t=1}^{T-1} ¥frac{abs(a(t)-a(t+1))}{2}

f(x)は「同じデータが連続する傾向が高いほど、f(x)は小さくなる」関数になります。
全部のデータが同じ符号なら0に、各時刻ごとにデータの符号が入れ替わるなら1になります。

他1件のコメントを見る
id:happy1980

大変明快かつ丁寧にありがとうございます。一読しただけですっと理解できました。

ここまで簡単にかけるとは、ご説明いただければすぐわかりましたが、自分では難しく考えすぎていたようです。差の絶対値または二乗の累積(のルート)を期間で割って平均をだせば良さそうですね。このアイディアを元に、より発展的な方向に持っていけそうです。

3の平均値を出すというところが、特に指数化する上で良さそうなアイディアとしてよさそうです。

このたびはお時間を割いていただいてありがとうございました!

2016/08/05 22:50:22
id:cdaotg

ベストアンサーを頂きまして、ありがとうございます。
3.の平均値ですが、単純平均ではなく加重平均や移動平均を取れば別に指数化が出来そうですね。
こういう統計手法を考えるのは楽しいので、こちらとしても有意義な時間でした!

2016/08/05 23:32:00
  • id:Mad-Tanuki
    よくわからんのでコメントへ

    n番目とn+1番目のデータを比較し、符号が同じならばスコアを+1する
    符号が異なればスコア増減なし(または-1する?)とかじゃダメなのでしょうか
    エクセルでも簡単にできますが・・・

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません