数式の夢とコンピュータの現実 中村仁也

数学とコンピュータで夢を追い続けてここまで来てしまった人のブログ。

2016年05月23日

ゴーガ解析コンサルティング設立のお知らせ

「株式会社ゴーガ解析コンサルティング」を設立します。

ニュースリリース:
http://www.goga.co.jp/company/news20160523.html

営業開始は7月1日より。ただいま鋭意準備中です。
今後ともよろしくお願いします。

posted by jinya at 20:12| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年05月10日

MS Wordを2016に更新したらおかしな編集記号が出現

MS Office 2016の配布が始まりましたので、さっそく更新して使ってみたところ、ワードで見慣れない編集記号が。Pの鏡文字みたいな圧迫感のある記号がすべての改行(もしくは改段落)のところに出現しました。

編集記号は表示させたいけれど、見た目がこれでは気持ちよく編集することができない、どうしたものか・・・と思って解決策をググっていたところ、さすがネットの世界、既に解決なさっている方がいらっしゃいましたので、そちらをご案内します。

→ 「Word 2016 for Windowsの段落記号が変だった話(らむれーずんめも)

問題は「規定の言語」が日本語から英語に変わってしまっていたことにあったようです。MSではよくあることですね(笑)。

posted by jinya at 11:48| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年11月19日

RAID1で容量を増やす

RAID1を使ってHDDの容量を増やした話です。OSはWindows10, マシンは普通のデスクトップ(EPSONのMR4000)ですが、「RAIDキット」を搭載しています。おそらくRAIDカードを挿しているのだろうと思いますが、詳しくは知りません。

RAIDはRAID1を利用していて、片方のHDDが壊れたので換装しました。本当ならば同じメーカー、同じ型番のHDDを購入して片方だけを取り替えればいいのですが、ちょっと古いマシンだったので同じモノは見つからず。(実際には、中古または新品でもマニア向けな価格ならばありましたが、500GBのHDD一本に4万円は出せない!)そこで、普通に販売しているHDDを二本購入し、両方を入れ替えることを試みました。

破損した一本をまず取り替え、リビルドした後、まだ生きている方も交換してリビルド。特に問題も発生せず、シンプルに二本のHDDの換装完了。

ところで、古いHDDは500GBで、新しく購入したHDDは1TB。そんなに大量にディスクを使う方ではないので500GBでも十分なのですけれど、1TBが安かったので、残りの部分は捨てるつもりで1TBのHDDを選びました。しかし実際に搭載してみるとやはり500GBしか認識されないのはどこか勿体ない…と思っていたところ、RAID容量を増加させるメニューをRST(Intel Rapid Storage Technology)の中に発見しました。

昔は、RAID1である容量のボリュームを一度構成したら、あとはその容量にずっと縛られるのが普通だったと思います。つまり、最初に500GBで構成すると、あとはいくら大きい容量のディスクに入れ替えようとも、そのボリュームの容量は500GBから変えられなかったと思います。実際、適当にググると、容量を増やしたい!という記事は見つかるのですが、できませんという返事ばかりが引っかかりますね。

ところが時代は変わるもので、上述の Intel Rapid Storage Technology にはRAID1ボリュームの容量を増やす仕組みが搭載されていました。RSTのボリュームの管理の画面に行くと、ボリュームよりも両方のHDD容量が大きい場合にそのリンクが出現しますので、そこから容量を拡大できます。但し、初期化にかなり時間がかかります。

RSTで初期化が終われば、再起動の後、増えた分がディスクの未割り当て領域として[ディスクの管理]などに出現します。あとはその領域を別パーティションとしてマウントするなり、既存のパーティションを拡張するなりすればよいです。

ちなみに、私のケースではCドライブがベーシックディスクでしたので、[ディスクの管理]ではCドライブを拡張することができませんでした。ですが、diskpartならばできるということで、コマンドプロンプトからdiskpartでdiskpartを起動、selsct disk, select partition, select volumeでCドライブを選び、extendで拡張し、これでCドライブが500GBから1TBになりました。



なお、最後に定型文ですが、この通りやっても容量を増やせる保証はありませんので、お試しになる方は自己責任で。
posted by jinya at 15:07| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年10月19日

魔方陣トーク

自宅での話。

次男坊が3×3の魔方陣を考えている様子。

と、そこへ入ってきた兄。6年生なので3x3の魔方陣くらいは簡単に答えてしまいます。やりたがりなので、それを見つけるやいなや弟から紙片を取り上げたところでストップをかけました。6年生にはその問題は簡単すぎるから、弟君にやらせてあげなさい。そのかわり次の問題を考えてみよう、と言って出したのが:

「3x3の魔方陣の中心の数字は5であり、それ以外にないことを証明せよ」(但し、3x3の魔方陣は通常のもの、すなわち各マスに1〜9の数字が一度ずつ入り、縦横斜め全ての三つ組みの和が同じであるようなものとした。)

5が中心に来ることは経験的にわかっているようですが、それ以外の数字は絶対にはいらないことを証明するという問題です。彼が出した答えは次。

魔方陣を次のように表すと、
\begin{array}{ccc}
i & b & c \\
h & a & d \\
g & f & e
\end{array}

1) まず、魔方陣は全て足して45(∵1+2+...+9=45)で、縦横斜めどれを足しても同じ数だから、三つ組みの和は15でなければならない。

2) 次に、aは偶数ではない。なぜなら、三つ組みの和が15で奇数なので、aが偶数だとaを通る縦横斜めの三つ組みの、a以外の数字は奇数と偶数が一つずつ入ることになる。すると、例えば(i,a,e), (h,a,d), (g,a,c)の三つに注目すると、(i,h,g)を足して15であるからこのうち一つまたは三つが奇数。ということは、(c,d,e)は一つまたは三つが偶数となるが、これは(c,d,e)を足して15即ち奇数となることと矛盾する。よって、aは奇数である。

3) aは奇数であるが、まず9ではない。なぜなら、もしa=9だとすると、b〜iのうちどれかに8が入るが、8と9の入る三つ組み(8,9,*)について8+9は既に15を超えているので、魔方陣の定義と矛盾する。次に、7ではない。これも同様に、b〜iのどこかに9が入るため。また、a=1だとすると、b〜iのうちどこかに2が入るが、その三つ組み(2,1,*)は残りのどの数字を入れても15には届かない。a=3も(1,3,*)について同様。

4) 以上より、aに入るのは奇数であり、また(9,7,3,1)のどれでもない。一方で、a=5である魔方陣は存在するので、この魔方陣の中心は5であり、それ以外ではない。

なるほど、背理法をうまく活用しました。実は2)無しで、3)の方法だけでも十分なのですが(a=6以上だと(9,a,*)の三つ組みが15を超え、a=4以下だと(1,a,*)の三つ組みが15に届かない)、試行錯誤の順番としては悪くないです。

そのあと、もうちょっと面白い方法はない?と言ったら出てきたのが次の方法。

\begin{array}{ccc}
G \searrow & D \downarrow & E \downarrow & F \downarrow & \swarrow H \\
A \rightarrow & i & b & c \\
B \rightarrow & h & a & d \\
C \rightarrow & g & f & e
\end{array}

魔方陣の各三つ組みにA〜Hの名前をつけました。A,B,Cが行、D,E,Fが列、G,Hが斜めです。これらはすべて、三つ数字を和して15です。すると、これらをうまく足し引きして、次の式が成立します。

\begin{align}
A+C+D+F-G-H+3 \times a=a+b+c+d+e+f+g+h+i
\end{align}

これは、A+Cで横、D+Fで縦の、真ん中を通らない行と列をたすと、真ん中以外のb〜iが一つずつと、角がもう一つずつたされて、角をたしすぎなので斜めを引いたら、今度は真ん中が2回引かれ過ぎなので3つたして、そうするとこれでa〜iの全部が1回ずつたされたという式です。ところで、a〜iまでたすと45、また、A〜Hはすべて15なので、A+C+D+F-G-Hは30。よって、

\begin{align}
30+3 \times a=45
\end{align}

となり、めでたくa=5が出てきました。
posted by jinya at 13:33| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年10月10日

回帰モデルのギブスサンプラーを導出する(その2)

回帰モデルのギブスサンプラーを導出します。教科書は「マルコフ連鎖モンテカルロ法」(豊田秀樹著)。こちら http://nakamura.goga.co.jp/article/427453869.html の続きです。

回帰モデル
\begin{align}
y=X \beta + \varepsilon, \: \varepsilon \sim N(0,\tau^{-1}I_n)
\end{align}
但し、サンプル数は\(n\)、説明変数の数は\(K-1\)個(定数項を入れて\(K\)次元)とする。\(I_n\)は\(n\times n\)の単位行列。なお、教科書では\(n\)の所を\(I\)としていますが、単位行列の\(I\)と間違いやすいのでここでは\(n\)を使います。

このモデルに対して、事前分布を次のように採ります。
\begin{align}
[\beta | \tau,X,y] \sim N(b_0, \tau^{-1}B_0), \: [\tau,\beta,X,y] \sim Ga(n_0 / 2, n_0 S_0 /2)
\end{align}
この事前分布から事後分布を求めます。

【事前分布(同時)\(\pi(\beta,\tau)\)】
\begin{align}
&\pi(\beta,\tau ) \\
&\propto \tau^{K/2} \exp \left( -\frac{1}{2}(\beta-b_0)'(\tau^{-1}B_0)^{-1}(\beta-b_0) \right) \tau^{n_0/2-1}\exp \left( -\frac{n_0S_0}{2} \tau \right) \\
&=\tau^{(n_0+K)/2-1} \exp \left( -\frac{\tau}{2} \left( n_0S_0 + (\beta-b_0)'(\tau^{-1}B_0)^{-1}(\beta-b_0) \right) \right)
\end{align}

【尤度関数】
\begin{align}
\pi(y|\beta,\tau,X) \propto \tau^{n/2}\exp \left( -\frac{\tau}{2}(y-X\beta)'(y-X\beta) \right)
\end{align}

【事後分布】
事後分布は定数の差を除いて事前分布と尤度関数とのかけ算なので、
\begin{align}
\pi(&\beta,\tau | X,y) \propto \tau^{(n_0+n+K)/2-1} \\
& \times \exp \left( -\frac{\tau}{2} \left( \underline{ n_0S_0 + (\beta-b_0)'B_0^{-1}(\beta-b_0) + (y-X\beta)'(y-X\beta)}_{\fbox{1}} \right) \right)
\end{align}

\(\fbox{1}\)について、
\begin{align}
\fbox{1} = n_0S_0 + (\beta-b_0)'B_0^{-1}(\beta-b_0) + \underline{(y-X\beta)'(y-X\beta)}_{\fbox{2}}
\end{align}

\(\fbox{2}\)について、最尤推定された\(\beta\)を\(\hat{\beta}\)とすると、\( y = \hat{y} + \varepsilon, \: \hat{y} = X\hat{\beta} \) を用いて、
\begin{align}
& (y-X\beta)'(y-X\beta) \\
&= ( \varepsilon + \hat{y} - X\beta)'( \varepsilon + \hat{y} - X\beta) \\
&= \varepsilon' \varepsilon + (\hat{y} - X\beta)'(\hat{y} - X\beta) + \varepsilon'(\hat{y} - X\beta) + (\hat{y} - X\beta)' \varepsilon \\
&= S_e + (\hat{\beta}-\beta)'X'X(\hat{\beta}-\beta) + \underline{\varepsilon'X}(\hat{\beta}-\beta)+ (\hat{\beta}-\beta)'\underline{X'\varepsilon} \\
&= S_e + Q(\beta)
\end{align}
但し、\(S_e=\varepsilon'\varepsilon\), \(Q(\beta)=(\hat{\beta}-\beta)'X'X(\hat{\beta}-\beta)\)とした。下線部はゼロ。

戻って、
\begin{align}
\fbox{1}=n_0S_0 + S_e + \underline{(\beta-b_0)'B_0^{-1}(\beta-b_0) + Q(\beta)}_\fbox{3}
\end{align}

\(B_1^{-1}=B_0^{-1}+X'X\)及び\( b_1=B_1(B_0^{-1}b_0 + X'X\hat{\beta}) \)とすると、

\begin{align}
\fbox{3}
&=(\beta-b_0)'B_0^{-1}(\beta-b_0)+(\hat{\beta}-\beta)'X'X(\hat{\beta}-\beta) \\
&= \beta'B_0^{-1}\beta - \beta'B_0^{-1}b_0 - b_0'B_0^{-1}\beta + b_0'B_0^{-1}b_0 \\
&+ \hat{\beta}'X'X\hat{\beta} - \beta'X'X\hat{\beta} - \hat{\beta}'X'X\beta + \beta'X'X\beta \\
&= \beta'(B_0^{-1}+X'X)\beta - \beta'(B_0^{-1}b_0+X'X\hat{\beta}) \\
& - (b_0'B_0^{-1}+\hat{\beta}'X'X)\beta + \underline{b_0'B_0^{-1}b_0 + \hat{\beta}'X'X\hat{\beta}}_{\fbox{4}} \\
&= \beta'B_1^{-1}\beta - \beta'B_1^{-1}b_1 - b_1'B_1^{-1}\beta + \fbox{4}
\end{align}

ここで、\(B_0, X'X\)は対称行列なので\(B_1\)も対称行列であり、さらにそれらの逆行列も対称行列である性質を使っています。

\begin{align}
\fbox{4}&=b_0'B_0^{-1}b_0 + \hat{\beta}'X'X\hat{\beta} \\
&= b_0' B_1^{-1} B_1 B_0^{-1} b_0 + \hat{\beta}' B_1^{-1} B_1 X'X \hat{\beta} \\
&= b_0' (B_0^{-1}+X'X) B_1 B_0^{-1} b_0 + \hat{\beta}' (B_0^{-1}+X'X) B_1 X'X \hat{\beta} \\
&= b_0' B_0^{-1} B_1 B_0^{-1} b_0 + b_0' X'X B_1 B_0^{-1} b_0
+ \hat{\beta}' B_0^{-1} B_1 X'X \hat{\beta} + \hat{\beta}' X'X B_1 X'X \hat{\beta} \\
&= (b_0'B_0^{-1}+\hat{\beta}'X'X)B_1(B_0^{-1}b_0+X'X\hat{\beta}) \\
& -b_0'B_0^{-1}B_1X'X\hat{\beta} -\hat{\beta}' X'X B_1 B_0^{-1} b_0
+ b_0' X'X B_1 B_0^{-1} b_0 + \hat{\beta}' B_0^{-1} B_1 X'X \hat{\beta} \\
&= b_1'B_1^{-1}b_1 + (b_0'-\hat{\beta}')X'XB_1B_0^{-1}b_0 - (b_0'-\hat{\beta})B_0^{-1}B_1X'X\hat{\beta} \\
&= b_1'B_1^{-1}b_1 + (b_0-\hat{\beta})'B_0^{-1}B_1X'X(b_0-\hat{\beta})
\end{align}

よって、
\begin{align}
\fbox{3}&=\beta'B_1^{-1}\beta - \beta'B_1^{-1}b_1 - b_1'B_1^{-1}\beta + b_1'B_1^{-1}b_1 + (b_0-\hat{\beta})'B_0^{-1}B_1X'X(b_0-\hat{\beta}) \\
&= (\beta-b_1)'B_1^{-1}(\beta-b_1) + (b_0-\hat{\beta})'B_0^{-1}B_1X'X(b_0-\hat{\beta})
\end{align}

\begin{align}
\fbox{1}&= n_0S_0 + S_e + \fbox{3} \\
&= n_0S_0 + (\beta-b_1)'B_1^{-1}(\beta-b_1)
+ \underline{S_e + (b_0-\hat{\beta})'B_0^{-1}B_1X'X(b_0-\hat{\beta})}_\fbox{5}
\end{align}

\begin{align}
\fbox{5}&=S_e + (b_0-\hat{\beta})'B_0^{-1}B_1X'X(b_0-\hat{\beta}) \\
&= \underline{S_e + (\hat{\beta}-b_0)'B_0^{-1}B_1X'X \hat{\beta}}_\fbox{6}
+ \underline{(b_0-\hat{\beta})'B_0^{-1}B_1X'X b_0}_\fbox{7}
\end{align}

ここで、\(B_1^{-1}=B_0^{-1}+X'X \)より、\(B_0^{-1}B_1=(B_1^{-1}-X'X)B_1 = I-X'XB_1\)を用いて

\begin{align}
\fbox{6}&=S_e + (\hat{\beta}-b_0)'B_0^{-1}B_1X'X \hat{\beta} \\
&= S_e + \hat{\beta}'B_0^{-1}B_1X'X \hat{\beta} - b_0'B_0^{-1}B_1X'X \hat{\beta} \\
&= S_e + \hat{\beta}' (I-X'XB_1) X'X \hat{\beta} - b_0'B_0^{-1}B_1X'X \hat{\beta} \\
&= S_e + \hat{\beta}'X'X\hat{\beta} - \hat{\beta}' X'XB_1 X'X \hat{\beta} - b_0'B_0^{-1}B_1X'X \hat{\beta} \\
&= S_e + \hat{\beta}'X'X\hat{\beta} - (\hat{\beta}' X'X + b_0'B_0^{-1})B_1X'X \hat{\beta} \\
&= S_e + \hat{\beta}'X'X\hat{\beta} - (B_1(B_0^{-1}b_0 + X'X\hat{\beta}))' X'X \hat{\beta} \\
&= S_e + \hat{\beta}'X'X\hat{\beta} - b_1' X'X \hat{\beta} \\
&= S_e + (\hat{\beta}-b_1)'X'X\hat{\beta} \\
&= \varepsilon'\varepsilon + (\hat{\beta}-b_1)'X'X\hat{\beta} \\
&= (\varepsilon' + (\hat{\beta}-b_1)'X')(\varepsilon + X\hat{\beta}) \\
&= (\varepsilon + \hat{y} -X b_1)'(\varepsilon + \hat{y}) \\
&= (y -X b_1)'y
\end{align}

\begin{align}
\fbox{7}&=(b_0-\hat{\beta})'B_0^{-1}B_1X'X b_0 \\
&= b_0'B_0^{-1}B_1X'X b_0 -\hat{\beta}'B_0^{-1}B_1X'X b_0 \\
&= b_0'B_0^{-1}B_1(B_1^{-1}-B_0^{-1}) b_0 -\hat{\beta}'X'XB_1B_0^{-1} b_0 \\
&= b_0'B_0^{-1}b_0 - b_0'B_0^{-1}B_1 B_0^{-1} b_0 -\hat{\beta}'X'XB_1B_0^{-1} b_0 \\
&= b_0'B_0^{-1}b_0 - (b_0'B_0^{-1} + \hat{\beta}'X'X) B_1 B_0^{-1} b_0 \\
&= b_0'B_0^{-1} b_0 - b_1' B_0^{-1} b_0 \\
&= (b_0-b_1)'B_0^{-1} b_0 \\
\end{align}

よって、\(\fbox{1}\)まで戻って、また、\(n_1=n_0+n\)、\(n_1S_1=n_0S_0 + (y -X b_1)'y + (b_0-b_1)'B_0^{-1} b_0 \)とすると、

\begin{align}
\fbox{1} &= n_0S_0 + (\beta-b_1)'B_1^{-1}(\beta-b_1) + \fbox{6} + \fbox{7} \\
&= \underline{n_0S_0 + (y -X b_1)'y + (b_0-b_1)'B_0^{-1} b_0} + (\beta-b_1)'B_1^{-1}(\beta-b_1) \\
&= n_1S_1 + (\beta-b_1)'B_1^{-1}(\beta-b_1)
\end{align}

さて、事後分布はどうだったかというと、
\begin{align}
&\pi(\beta,\tau | X,y)
\propto \tau^{(n_0+n+K)/2-1} \exp \left( -\frac{\tau}{2} \left( \fbox{1} \right) \right) \\
&= \underline{\tau^{K/2} \exp \left( -\frac{\tau}{2}(\beta-b_1)'B_1^{-1}(\beta-b_1) \right)}_\fbox{8}
\times \underline{\tau^{n_1/2-1} \exp \left( -\frac{\tau}{2} n_1S_1 \right)}_\fbox{9}
\end{align}

すると、\(\fbox{8}\)は正規分布\([\beta | \tau,X,y] \sim N(b_1,\tau B_1)\)の密度関数、\(\fbox{9}\)はガンマ分布\( [\tau | \beta,X,y] \sim Ga(n_1/2,n_1S_1/2)\)の密度関数であり、事後分布を解析的に書き下すことができた。さらに、\(\tau\)の従うガンマ分布の母数には\(\beta\)が入っていないので、\(\tau\)のサンプリングには\(\beta\)を必要としないこともわかる。
posted by jinya at 20:35| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年10月08日

回帰モデルのギブスサンプラーを導出する(その1)

MCMCの教科書「マルコフ連鎖モンテカルロ法」(豊田秀樹著)はMCMCの中で何が起っているのかを腑に落とすのにわかりやすい教科書ですが、細かいデリベーションについては端折ってある場所もあって、そのなかで一カ所、回帰モデルのギブスサンプラー導出の記述で気になったところがあったので、詳細な式の導出をしてみます。場所は7.2節、「回帰モデルにおけるベイズ分析」です。

ところで、共役事前分布としてよくある形式は、BUGSっぽく書くと(但し、簡単のためモデル例は一次元)

model
{
for (i in 1:N){
Y[i] ~ dnorm(beta * X[i], tau);
}
tau ~ dgamma(0.001,0.001);
beta ~ dnorm(0,0.001);
}

これは回帰モデル
\begin{align}
Y=X \beta + \varepsilon, \: \varepsilon \sim N(0,1/\tau)
\end{align}
に対して、事前分布を
\begin{align}
&\beta \sim N(\mu_0, 1/\tau_0), \: \tau \sim Ga(s_0, r_0) \\
&(\mu_0=0, \tau_0=0.001, s_0=0.001, r_0=0.001)
\end{align}
で定義したモデルになります。

このとき、事後分布は解析的に求まって(共役事前分布を使うので)、
\begin{align}
\beta | \tau,X,Y \sim N(\mu_1, 1/\tau_1), \: \tau | \beta,X,Y \sim Ga(s_1,r_1)
\end{align}
但し(サンプル数を\(n\)とし、また簡単のため一次元)
\begin{align}
& \tau_1 = \tau_0 + \tau X'X, \: \mu_1 = (\tau_0 \mu_0 + \tau X'Y)/\tau_1 \\
& s_1 = s_0 + n/2, r_1 = r_0 + (Y-X\beta)'(Y-X\beta)/2
\end{align}

ギブスサンプラーですから、当然\(\beta\)の事後分布の中には\(\tau\)があり、また\(\tau\)の事後分布の中には\(\beta\)があります。

ところで、上述の教科書のモデルとはこれとはちょっと違っていて、事前分布が(一次元では)
\begin{align}
\beta | \tau \sim N(\mu_0, 1/(\tau_0 \tau)), \: \tau \sim Ga(s_0, r_0)
\end{align}
という形になっています。(変数は適宜読み替えてください。また、あとで教科書通りの変数名で再度、多次元版のデリベーションをします。)つまり、\(\beta\)の事前分布が既に\(\tau\)に依存しています。BUGSっぽいモデルで書くと、

model
{
for (i in 1:N){
Y[i] ~ dnorm(beta * X[i], tau);
}
tau ~ dgamma(0.001,0.001);
beta ~ dnorm(0,tau*0.001);
}

となって、事前分布のdnormの中にtauが入っています。これら二つのモデルは、事前分布が異なるので推定結果も異なります。しかし、そもそも事前分布に共役事前分布を使っている時点で事後分布は歪んでいるわけですから、そこはあまり気にしないことにします。

この修正された事前分布を用いると何が起るかというと、\(\tau\)の事後分布が\(\beta\)に依存しなくなります。もちろん観測値\((X,Y)\)には依存するので心配はいらないのですが、\(\tau\)が\(\beta\)に依存しないと言うことは、単純にギブスサンプリングでの計算量が半分ほどに減るわけで、そもそも計算量を減らすためにメトロポリス-ヘイスティングスではなくギブスサンプラーを使っていることを考えると、効率がより向上することになります。

長くなってきたので、続きは次回。

posted by jinya at 13:08| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年09月30日

数式を入れるテスト

数式を入れてみる
\begin{eqnarray}
\sum_{i=1}^n a_i = x
\end{eqnarray}
posted by jinya at 17:14| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年08月20日

棚が動くのか!

アマゾンの新しい物流システム、ピックアップを機械化して作業効率アップ、と聞いて、ピックアップの機械が導入されたのだなと勝手に勘違いしていましたが、違っていました。先日(2015/8/7)の日経MJ、「物流インサイドリポート」にその写真が載っていました。

なんと、棚が動くんですね。なるほど。ピックアップする機械は昔からありましたけれど、どれもあまり効果的な仕組みじゃないような気がしていました。なにより機械が複雑になりすぎて、これはメンテが大変だろうと。アマゾンはそれをどうやって克服したんだろうと思っていたのですが、こういうことだったんですね。この方法ならたいして複雑な機械を導入せず、動かし方の効率化はソフトウェアでいくらでも追求できそう。

同じく日経MJ2015/8/5号、「レジ待ち時間半分に」も同じ視点。スーパーのレジ列の効率化は様々に考えられてきましたけれど、なるほどそこで分けるのか、と。セルフレジはいろいろ問題がありそうで、自分でもやったことありますけれど、慣れないと操作が難しい。そのセルフレジと、通常のレジの中間、セミセルフレジは、商品の確定までは店員さんがやって、支払いはお客さんがやる。支払いだけならこれまでもATMとか自販機とか、最近は病院でも無人の支払機がありますし、いろいろな場面でお客さんの側に経験があるので、これなら対応できそうです。しかも、支払い方法が自由に選べれば、クレジットカードなどの(多少)時間のかかる方法で支払いたい場合でも後の方の視線を気にすることなく操作できます。これはいい。

世の中相当便利になってきていると思っていましたけれど、アイデア次第でまだまだ面白いことができそうですね。半分だけ、がキーワードになりそうです。
posted by jinya at 11:14| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年07月04日

「幸せ」低下の原因は?

6/27にNHK総合で放送された「データなび 世界の明日を読む」、面白い番組でした。最寄り駅別統計にJPSさんのMarket Platformが使われているとのことを事前にお伺いしていましたので、録画視聴です。子供と一緒に見ていまして、「駅周辺に住む0〜9歳人口」のトップはどこ?との問いに、私は東京の周辺、江戸川区とか川崎市などじゃないかなと言ったところ、子供が「沖縄!」とのこと。なんで?と聞くと、「ゆいレールがあるから」と、よくわからない返事をしていましたが、果たして結果は沖縄、ゆいレールの古島駅とのこと。なんだかわからないけどすごい!どうも沖縄県の出生率が高いということは社会で習っていたようで、なかなか興味深い推理でした。東京周辺は西葛西がトップということで、納得。首都圏子育て世代にとっては、江戸川区は夢の街です。

また、人口が多いのに商店のない古虎渓駅の話はいろいろ考えさせられます。理由は、少し離れたところにできた大型スーパーで、住民がみんなそちらで買い物するようになったので、商店が撤退してしまったとのこと。これは今日本の至る所で起きている問題です。安いから、きれいだから、便利だからと遠くの新しい大型ショッピングモールにばかりお金を落としていると、近所の商店はどんどん無くなります。若くて、車を運転できる間はそれでもいいでしょうけれど、歳を取って車の運転ができなくなってからのことを考えて、今のうちから地元消費を増やしておくことが必要だと思います。

と、前半は地図系のデータの可視化とそれを読み解く話題。後半は変わって、「幸せ」を読み解く集計。この中で、ちょっと気になったデータが出てきまして、そちらを。

調査は、自分の幸せ度を0〜10の11段階(10=とても幸せ)で評価するもの。この形が、5と8にふたつの山ができるというもの。これを経年で実施しているのですけれど、全体ではH23〜H25で度数分布はほとんど変わらず。(もとの「内閣府 生活の質に関する調査」も確認しましたが、ほぼ同じのようです。)

その後、国差、男女差などを紹介した後、気になった箇所。

福岡県30代女性の分布が大きく変化しており、その結果平均点も1点ほど下落しているというもの。11点評価で0.8点の下落というのは相当大きく、よほど重大な何かがあったと考えるのが妥当です。番組ではその結果を全国的な変化では無いかということで、女性の貧困、非正規労働の拡大、雇い止めの不安、消費税増税を原因として挙げていらっしゃいます。

この辺で、私のアンテナが警戒モードに。もしかしたら本当にそうなのかもしれませんけれど、このドラスティックな変化は何か別の要因があるのではないか、という気がします。福岡県の県民意識調査をあたってみましたが、詳細なデータが掲載されていないのでよくわかりません。ただ、男女別世代別平均点は掲載されていて(H25p43及びH26p44)、確かにH24-30代女性=7.36, H25-30代女性=7.29で男女別全世代でトップだった平均点が、H26-30代女性=6.49と一気に下落し、20代、40代、50代、70歳以上(それぞれ、H26女性で6.70, 6.79, 6.77, 6.61)の4つに抜かれています。これは何かある。しかも、こんなドラスティックな変化は、これまでの経験上、よほどの大事件か、もしくは「集計ミス」です。

実際、H25からH26で、20代、40代はともに幸福度の平均を上昇させており、女性の貧困や非正規労働の拡大、雇い止めの不安が30代にのみピンポイントで効くとはあまり思えません。また、消費税増税などは全世代に効くはずで、確かに全体平均がわずかに下がっていることの要因をそれに求めることはできるかもしれませんが、それが30代にだけ大々的に効くとも思えません。但し、30代女性にピンポイントで効くトピックとしては子育て絡みの何かはあるかもしれません。出産後再就職ができない、保育園に入れられないなど。この切り口は子供の数別の集計を見ればわかるはずです。が、これだけの理由で、周りの世代の変化にあらがってまで0.8ポイントも落とすとは、やはり思いにくい。

ちなみになぜ福岡県かというと、一番詳しいデータが掲載されていたのが福岡県。内閣府の統計はまだH25までしかでておらず、他県で同様の調査も幸福度を調査しているのは三重、秋田の二県(他にもあるかもしれませんが、見つけられませんでした)、しかしこれらも年代×男女の数値は載っていません。男女別、年代別はありました。ここでもし男性の変化はさほど大きくないと仮定すると(福岡ではそうなっています)、30代女性が大きく動いていれば30代全体もそれなりに動くはずですが、三重も秋田も変化はさほど大きくなく、また20代、40代と同じような動きをしていました(三重では全体的に下がる傾向が見られます。秋田ではそれもあまり見えません。)。つまり、30代男性の仮定の下では、福岡県の30代女性の変化は異常です。

このデータが正常だとすると、よほど30代女性のみに特化した「不幸なこと」が、福岡県のみに発生したことになります。もしそうならば、子育てに関する何かである気がします。

また、もしこのデータが異常だとすると、その発生源はサンプリングと重み付けにあるような気がします。福岡県の本調査のサンプリング及び重み付けは、層化無作為抽出といいつつ結構トリッキーなことをなさっています。地区別の統計を取りたいというのが主理由だと思いますが、県を四つに分け、そこから地点を選び、各地点で同じ数ずつのサンプルを拾って、あとから地区別の人数重みをつけています。さらに、それとは別に性年齢別の数合わせもされているようで、各性年齢セルの人数がおよそ同じになっています。(それでも異なるのは、調査票郵送段階での数合わせサンプリングであり、回収率が50%程度とのことから、性年齢別に回収率が違うと言うことだろうと思います。)というように結構複雑なサンプリングと重み付けがされているので、その段階でサンプリングミス、もしくは重み付けミスがあれば、異常値が出てきやすい状況になっています。(ミスとはいいつつも、それは人為的なというよりは、ある種やむを得ないこと、つまり、回答率と地域差がたまたま相関してしまったとか、たまたま重みの大きい地域で平均点が高かった/低かったなど、複雑な要求仕様に対してサンプル数〜調査費用が足りなかった、というのがよくあるストーリーです。)もう一つ、異常値なんじゃないかなと思う理由に、H25調査結果の暴れっぷりがあります。H25調査のp43に掲載されている、男女別年代別の平均点ですが、女性の方はぎざぎざになっていますね。しかし、前年も翌年もここまでぎざぎざではありません。30代と言っても20代に近い30代もいれば、もうすぐ40代になる30代もいますし、尋ねている内容が「幸福」という柔らかい話題ですから、前後でこんなに大きく上下することはあまりありません。この辺りに、なにか謎が潜んでいるような気がしています。

これ以上は調査結果のローデータをよくよく観察しないとわかりません。もちろん、小さな確率ではありますが、正しいサンプリング、正しい重み付けをしていてもごく希にこのようなことは発生しますから、もしそうなら仕方のないことです。

データの分析をしていると、こんなふうに何かざわざわっとアンテナに引っかかってくる感じが大切です。なにかおかしい、と気になったところを掘ってみて、やっぱり問題ないとなるか、もしくは問題が発見されるか。いずれにしても掘ってみないことにはわかりませんが、ここ掘れワンワンとアンテナが騒ぎ立てなければ掘ることにも思い至らないわけで、この感覚がデータサイエンティストには必要です。経験を積んで沢山のデータと格闘すればどんどん鋭敏になるので、これからの方はぜひ、上のような番組を見るときにはアンテナを高く立てて、なにかおかしいことないかな?と思いながら見たらよいと思います。

以上、ちょっと気になったので考えてみました、という話題でした。
posted by jinya at 03:13| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年03月04日

「幕が上がる」のクチコミマーケティング、その後

先週、「映画「幕が上がる」はクチコミマーケティングの転換点になるか?」という記事をアップしたところ、週明けからたくさんのアクセスを頂きました。普段細々と分析の話題などを記しているブログですので、こんなに反響があると戸惑ってしまいます。また、その流れ弾だと思いますが、一個前の記事「代表戦で盛り上がる層をJリーグに取り込むのは難しい」にも結構アクセス頂いています。広がり方が面白いですね。

そういうわけで、先週の段階では公開前でした映画「幕が上がる」について、前代未聞の大規模クチコミマーケティングということを記しましたので、これは折角ですから公開日の週末に劇場に行ってみようと思い、作品を鑑賞してきました。

作品は素晴らしいものでした。なんでしょう、ここはデータ分析のことをずっと書いているブログですので、心情や情景、感動など、そういうことに触れるのはこそばゆいのですけれど、なんというか、今のご時世にこういう映画って撮れるのですね。私や同じ団塊ジュニアの世代が10代の時に観た映画、1980年代の映画、角川映画とか大林宣彦監督の全盛期、そんなにおいがします。映画が娯楽の王様だったのはもう少し昔ですが、80年代はまだその雰囲気残っていましたよね。本広克行監督と言えば「あの『踊る大捜査線』の」と語られることが多いと思いますが、あれを想像すると面食らいます(もちろん、踊るシリーズはその楽しさがあります)。また、原作とは微妙に構造が違うのですが、緊張感を保ったままのところも、原作から入った人に優しいですね。さすがの脚本家は「桐島、部活やめるってよ」の喜安さん。最強のクリエイター達が、素晴らしい俳優陣と美しいロケ地とを掛け合わせて作り上げた傑作、そんな気がします。

と、作品の話題はこのくらいにして、一応データ分析の専門家ですから、クチコミマーケティングに関係した話題を。

実は、私が劇場に観に行った回は満席ではありませんでした。事前にあれだけクチコミマーケティングしているし、主演女優であるアイドルグループには熱烈なファンが多いということで、満席で入れないかもしれないと思って出掛けたのですが、拍子抜けです。最近子供と妖怪ウォッチを観に行った際、早朝にもかかわらずびっしり満席だったのとは対照的です。ちょっと調べると、アニメなど違って実写邦画は満席になることはほとんど無いそうです。ですから、いくら熱烈なファンが多数いるとは言え、映画館を満席にするというのは非常に難しいのですね。また、先週の興行収入で言っても4,5位とのことで、それでも初週1億円超えですからヒットにはなっているのですけれど、1位(アメリカンスナイパーなど)には及ばなかった。初動では熱烈なファン×クチコミマーケティングでもマスマーケティングには敵わないのかも、という仮説が思い浮かびます。

そこで、原因となりそうなところを想像します。
1. やはりクチコミマーケティングは効果が薄い。もしくは、初週動員には効果が間に合わない。
2. 熱烈なファンはほとんどが既に試写会等で観てしまい、初週には来なかった。
3. 一般層に全く刺さらなかった。一般層を動かすだけの効用が事前マーケティングで示せなかった。
他にもいろいろあると思いますが、今思いつくのはこのくらい。

まず1について。
クチコミマーケティングをあれだけ大規模に導入していたのですが、やはりマス広告には敵わなかった、という一番面白くない可能性を、やはり検討しなければなりません。一方で、火を付けて回っていたのはもっぱら地方都市ですから、大都市圏とそれ以外とでわけて考える必要もあるかもしれません。データ分析をしていて一番失敗する例が、部分で全体を想像してしまうという事態で、次によく見誤るのが、全体トレンドを見て局所もそれと同じだと思ってしまうことです。ここはやはり個別の地方でどうなっているか確認すべきですね。例えば、舞台挨拶をした地域としていない地域での初週動員の差が有意かどうかなど。
また、初週動員には効果が無いが今後増える可能性を考慮すべきです。初週動員で将来の推移を予測する手法は、マスマーケティングの効果を予測するには適した方法でしたが、今回はこれまでのマーケティングと全く異なりますから、同じモデルで予測できるような気がしていません。もしかしたらその影響を考慮して、つまり、制作側は動員予測をもともとロングランに置いていて、そのために初週上映館数をあえて絞ったのかもしれませんね。同時期に上映される「くちびるに歌を」がよい比較対象だと思いますが、上映館数はこちらにくらべて2/3程度しかありません。ちなみにこちらも原作から読んでいましたが、いい映画でした。

次に2について。
こちらの仮説はさらにつっこんで、熱烈なファンは何度映画を見るのか、というモデルを検討するべきでしょう。もし一回観れば満足なのであれば、多く試写会を実施すればそれだけ初週動員数が減ります。(但し、初週動員数の発表には前倒し分が含まれるようですので、あくまでも実際の来館者が減る、ということになります。)ここで、例えばテレビの広告接触を予測する際には、のべ何回接触というだけではなく、その分布形を検討する、つまり、少ない人数にたくさん刺さったのか、多い人数に少しずつ刺さったのかで、広告の影響が変化するのですが、それと同じモデルで、多くの人が一回だけ見るのか、少ない人が何回も見るのかを分布にして表現してあげるとよいでしょう。
すると、初週動員の前に試写会をかなりたくさん実施しているということは、もし来館回数モデルが1回の側に大きく偏っている、つまりほとんどの人は(熱烈なファンであっても)一回しか観ないという場合、初週動員に占めるファンの割合は大きく下がります。
ゼロ回来館、つまりファンだけでなく観に行かないという一般層もあわせて、広告接触モデルと同じフレームで来館回数モデルを作るのは面白そうですね。分布の偏りと、その地域での試写会の有無や、上映館付近の人口分布などを合わせると面白いかもしれません。

最後に3について。
クチコミマーケティングはクチコミが流入するルートと、それを受け入れる側の受け入れ姿勢がなければ伝わりません。今回は地方メディアや専門家というルートが数多く作られましたが、そこから一般層にどのように刺さって、どのように態度変容させたかを検討する必要があります。ここで重要になるのが、クチコミマーケティングでよく言われる、「二方向からの流入」です。これは、複数の人から同じ商品を勧められると、態度変容の確率が大きく上昇する、という現象を指していますが、複数の人の定義が難しい。これは単に複数の人という意味ではなくて、価値観の異なる複数のルートから、というメカニズムだろうと考えています。逆に言えば、同じ価値観のルートで何人から勧められてもそれは一つの方向でしかない。つまり、熱烈なファンの何十人から勧められたとしてもそれは単一の方向でしかなく、態度変容には至らないという仮説です。
ここで、初週動員に向けて一般層を態度変容させるには、その映画は自分が観に行く価値がある(時間とお金を使うに値する)と思わせなければなりませんが、価値があるかどうかは映画を観なければわからないというジレンマがあります。一般層はその映画の関係者に特段の思い入れのない層のことですから、映画のスペックではまったく心を動かされない(むしろネガティブでさえあることも)。そこで、価値があるかどうかは前評判に頼ることになる。しかし、今回の作品では事前の試写会がほとんど全て熱烈なファンで占められていた、しかもそれが非常に多かった、ということで、前評判がほぼ熱烈なファンの評価で埋め尽くされてしまった。ここに一般層が動かなかった理由がある気がします。
もし試写会が普通の映画と同じく少数を対象に行われていたとしたら、熱烈なファンも一定割合でいたでしょうけれど、それ以外の人や招待客などの声も全体に占める割合が幾分かあったかもしれません。しかし、今回はそれらがかき消されるくらい多くのファンの声で埋まってしまった、そういう可能性が考えられます。もちろん、全くの仮説ですから、検証はデータを見なければわかりませんけれど。

ということで、三つの可能性について検討しましたけれど、ではこれが今後どうなるのか。本作品はこのまま飛ばずに終わってしまうのか。

私は上を書いていて一つの可能性があると思いました。ただそれがどのように展開するかは細かいデータを見ていないのでなんとも言えないのですが、ここからは与太話として。

3で書きました、当該商品になにも事前の思い入れのない人を振り向かせる、つまり、その商品に時間とお金を使う価値があるとわかってもらうには、複数の異なる価値観の層から勧められる必要がある。で、初週ではそれが「主演アイドルの熱烈なファン」という単一の価値観からのみのレコメンドだったために、一般層は振り向かなかった。
しかしここで、ネットのクチコミを観察してみると、他に二つの別の価値観のクラスタが存在感を増してきています。一つはもうかなり大きくなっている「演劇クラスタ」。演劇界の中心的人物がことごとく本作品を高い評価で推薦しているので、その波が演劇界全体に広がりつつあります。また、そこに繋がっている、過去に演劇をやっていた人や、さらにその関係者に至る、様々なローカルの演劇クラスタ全体に波及している様子が見えます。これは原作が演劇界の重鎮、平田オリザ氏ですから、ああ確かに、と思える動向です。
もう一つ、これは全く予想していなかったクラスタが反応しています。ただ、これは外したら非難囂々になりそうなので言いません。でも、ちょくちょく飛び込んでくるキーワードがあります。ぜひ想像してみてください。
いずれにしても、少なくとも「アイドルファン」と「演劇」という二つのクラスタで発火すると、そこから先は芋づる式に発火の連鎖が始まる可能性があります。あまり言い過ぎると、発火しなかったときに腹を切らなければなりませんので言いませんが、これまでのマーケティングと違うということだけは確かなようです。

posted by jinya at 21:30| Comment(4) | 日記 | このブログの読者になる | 更新情報をチェックする