last update: 2004年11月30日

xtnflow.sh

概要:ネットワーク流量推定によるブランド間流出入確率の算出

書式:tnflow.sh -c 顧客項目名 -b ブランド項目名 -q 数量項目名 -i 前期ファイル -I 後期ファイル [-o出力ファイル名] [-T ワークディレクトリ名] [-V] [-h]

-V : スクリプト内部のコマンド完了メッセージを表示させる。
-h : ヘルプの表示

解説)

ある店で、インスタントコーヒーの二つのブランドA,Bについて、ある連続する二つの期T1、T2の売上数量が以下の通り、いずれのブランドも100個売れていたとする。

期T1,T2における
ブランドA,Bの売上げ
数量
T1 T2
コーヒーブランド A 100個 100個
B 100個 100個

この情報だけでは、ブランドAもBも売上げには何の変化もないとしか結論できない。もしここで顧客一人一人の購買データを見てみると、より多くの情報が得られるのではないであろうか?この問いかけが「ネットワーク流量推定によるブランド間流出入確率の算出」の裏にある。

顧客のデータを見ると、T1でブランドAを購入していたお客さんは全て、T2においてはブランドBにスイッチし、逆にT1でブランドBを購入していたお客さんは全て、T2においてはブランドAにスイッチしたのかもしれない。また、もしかしたらT1でAブランド購入したお客さんは、T2においては全く何も購入せず、別のお客さんがT2においてAブランドを100個購入したのかもしれない。このモジュールを利用すれば、このようなことを定量的に把握できるようになる。また、ここではブランドを想定して説明しているが、商品や商品分類であってもよい。また分野によっては、様々な応用が考えられるであろう。

より詳しい説明は、ここを参照してもらいたい。

用途)

例えば、小売店であるブランドのセールを行った。セール前と後では、どのブランドからどのブランドへの流れが大きいかったかを確認できる。(このセールを行うことによって、ブランドAを購入していた顧客の多くはブランドBに流れた!!といったルールを発見できる。)

例えば、百貨店の婦人服売り場において、去年と今年で、どの店からどの店に客は流れているか!!といったルールを発見できる。

入出力データの形式

このモジュールで扱う入力データには、顧客ID、ブランド、購入数量を表す項目を含んだ、2つの期のデータが必要となる。それぞれの項目名は、2つの期はT1,T2それぞれ"-i","-I"で指定する。また「顧客ID」、「ブランド」、「購入数量」の各項目名は、"-c","-b","-q"にてそれぞれ指定する。このモジュールは、最初に顧客ID別ブランド別の合計購入数量を計算するので、販売明細データを入力データとしても問題ない。

入力データ

期T1における販売データ
(t1.xt)
期T2における販売データ
(t2.xt)
顧客ID ブランド 数量
a
a
a
b
b
c
c
c
d
d
d
e
A
B
C
B
C
A
B
C
A
B
C
A
4
14
2
10
3
15
2
1
9
2
11
20
顧客ID ブランド 数量
a
a
a
b
b
c
c
d.
e
e
e
A
B
C
B
C
A
B
B
A
B
C
1
6
12
10
2
5
9
21
5
8
2

単純にブランド別数量の集計を行うと。。。

ブランド T1 T2
A 48 11
B 28 54
C 17 16
合計 93 81

「ブランドAの売上げが落ちて、ブランドBの売上げが伸びた」ということはわかる。
ここでこのモジュールを使うと。

xtnflow.sh -c 顧客ID -b ブランド -q 数量 -i t1.xt -I t2.xt

結果は以下のように出力される。

B1 B2 Flow Q1 Q2 Total flowOutProb flowInProb support
A
A
A
A
B
B
B
B
C
C
C
C
#BRAND0#
A
B
C
#BRAND0#
A
B
C
#BRAND0#
A
B
C
8.94
9.37
25.29
4.40
2.00
1.26
14.80
9.94
1.05
0.38
13.91
1.66
48
48
48
48
28
28
28
28
17
17
17
17
12
11
54
16
12
11
54
16
12
11
54
16
93
93
93
93
93
93
93
93
93
93
93
93
0.19
0.20
0.53
0.09
0.07
0.45
0.53
0.35
0.62
0.22
0.82
0.10
0.75
0.85
0.47
0.28
0.17
0.11
0.27
0.62
0.09
0.03
0.26
0.10
0.10
0.10
0.27
0.47
0.22
0.14
0.16
0.11
0.01
0.00
0.15
0.02

B1:期T1におけるブランド
B2:期T2におけるブランド
Flow:B1-B2間の推定流量
Q1:期T1におけるB1の売上総数量
Q2:期T2におけるB1の売上総数量
Total:期T1(T2)における売上総数量(#BRAND0#を含む)
flowOutProb:期T1から見てブランドB1がB2に流出した確率
flowInProb:期T2から見てブランドB2にB1から流入した確率
support:Totalに対するFlowの割合

解釈例)

 流出確率に注目すると、ブランドCからブランドBと#BRAND0#への流出が目立つ(0.82,0.62)。Cの売上総数量はT1,T2でさほど変わらないが(17->16)、実は多くの顧客がブランドBと#BRAND0#に流れていることがわかる。
 入力データで確認すると、T1でブランドCを11個購入していたdさんが、T2にてブランドBを21個購入していることが大きく影響しているからである。