三百六十五歩のマーチ

三百六十五歩のマーチ

三百六十五歩のマーチにあわせて行進すると、X日後には何歩進んでいるのかをコンピューターは予測することができるのでしょうか。

X日後には何歩進んでいるのだろうか

元気が出る曲

 われわれ昭和の世代にとって聞くと元気が出る曲というのは「三百六十五歩のマーチ」をおいてほかにはありません。

  おなじみの「チャーラ、ラ・ラ・ラ、チャーラ、ラ・ラ・ラ」ではじまるイントロ、それに続くメロディー、テンポ、歌詞、水前寺清子さんのこぶしを利かした歌声、最高です。とくに2番と3番の歌詞が心にささります。ほんとうに明るく元気な気持ちになります。

  いまでも「元気ハツラツ」をキャッチコピーにしている清涼飲料水のコマーシャルにつかわれているくらいですから、昭和の世代に限らず、日本人全世代の心にひびく名曲なのだろうと思います。

子供のころからの疑問

 歌詞が格別に素晴らしいのですが、子供の頃から疑問に思っていた部分があります。

 「一日一歩、三日で三歩、三歩進んで二歩さがる」この部分です。三歩進んで二歩さがるということは、三日で進む歩数は一歩になるのだろうと子供ながらに計算していたわけです。

  ところがよく考えてみると(大人になってから)「一日一歩」です。そして「二歩さがる」のです。
・「一日一歩」だから、さがる一歩にも一日を要するはずです。
・「二歩さがる」ためには二日かかります。

 あー、ついに50年ぶりに謎が解けました。歩きはじめて五日で一歩前進するのです。

 では、歩きはじめてから379日目には何歩進んでいるのでしょうか。

進む歩数をグラフにすると
エクセル計算式
エクセル折線グラフ

 エクセルで計算式を考えます。
 歌詞にそって考えると、一日一歩だから三日目まで前の値に1を加えます。四日目と五日目は一歩下がるから前の値から1を引きます。この5日間の計算式を365日までコピペすれば三百六十五歩のマーチが完成します。

 折れ線グラフを描きました。表計算の結果からわかつとおり、歩きはじめてから365日目には73歩すすんでいることがわかります。

BIツールでやってみる

タブロー
Tbaleau データ接続
Tableau シート1

 タブローでエクセルへ接続します。使用するのはA列だけ、1~365までの数値です。

Tableau 計算フィールド

 1列365行のデータへ接続しました。
 データとしてあるのは
・「日」(ディメンション)
・既定で「レコード数」(メジャー)だけです。

 そこで、エクセルと同様に計算式を作成します。
 タブローでは計算式を計算フィールドとして作成します。ほとんどのBIツールも計算式はフィールドです。BIツールをつかってみて、まっ先に戸惑うのが計算フィールドです。

  エクセルは各セルへ自由に計算式を挿入することができます。
・エクセルではB列へ計算式を入れました。それも、行ごとに異なった計算式です。

 ところが、BIツールでは同一列のそれぞれの行へ異なった計算式を入れることはほとんど不可能です。(BIツールにセルという考え方が全くないわけではありません。すくなともタブローにはあります。)

・ 画像のように計算フィールドを作成してテキストのところへドロップします。
 するとすると、BIツールは表の「日」(ディメンション)に従って表計算をおこないます。
 計算フィールド「[日]+1」をテキストへドロップすると、上から下までディメンションの数値に1を加えた結果を返します。

計算式を考える

 エクセルは歌詞にしたがった計算式をセルごとに入れればよかったのですが、BIツールの場合、ギザギザのグラフを描くことができるひとつの計算式を考える必要があります。

 例えば歩きはじめてから7日目に進んでいる歩数は3です。
7÷5=1…2(余り)=1+2=3
 日の数値を5で割り、商の数値(整数)と、あまりの数値(整数)を合計します。
 前進する日はこの計算式で答えが出ます。
 前進する日とは、余りが1、2、3になる日です。
 後退する日は余りが4と0になる日です。
 余りが4になる日は、商+2、余りがゼロの日は、商+0、IF関数で解決できそうです。

計算式
Tableau 余り計算式

 商の余りを計算します。
・計算式は「[日]%5」です。
 使用している%は、+-*/と同様の演算子です。

Tableau 商計算式

 商を整数で算出します。
・関数は「FLOOR」です。
 ゼロもきっちりと返してくれます。

Tableau IF関数

 進む歩数を計算します。歌詞のとおりにIF文を書けばOKです。

IF [余り]=1 OR [余り]=2 OR [余り]=3 THEN [商]+[余り]
ELSEIF [余り]=4 THEN [商]+2
ELSEIF [余り]=0 THEN [商]
END

#先に計算フィールドでメジャーを作成しておいたほうが間違いが少なくなります。
計算フィールドがないと
IF [日]%5=1 OR [日]%5=2 OR [日]%5=3 THEN FLOOR([日]/5 )+[日]%5
このようにややこしくなります。
グラフ化
Tableau 折れ線グラフ

 グラフ化しました。ギザギザの線グラフになりました。
 タブローは、グラフへマウスのポインタをあてると計算結果を表示してくれます。エクセルのグラフにはない機能です。エクセルは正確な結果数値を読むためにデータ表が必要ですが多くのBIツールではデータ表が必要なくなりました。

予測する
Tableau 予測

・分析→予測→予測の表示を選択します。

Tableau 予測グラフ

 はじめの疑問、歩きはじめてから379日目には何歩進んでいるのか?

 正解は77歩でした。電卓で計算するか、そもそものエクセル表の日を379日まででつくっておけばよい単純な予測結果です。

Tableau 予測の説明

 ところが、この予測グラフのすごいところは、ギザギザの折線を描くところにあるように思います。

 単純に予測ということであれば傾向線を描いて終点を延長する方法を考えることになります。
 線形の傾向線は「y=x*0.2」になるはずです。
 この計算式に数値を代入すると、379日目に進んでいる歩数は75.8です。

 どのようなロジックで予測しているのかを確認します。
・分析→予測→予測の説明を選択します。

 「季節変動パターン:5期間サイクル」と書いてあります。5日で1サイクルになっていることを見破っているわけです。

エクセルもいい感じ
エクセル 予測

・データタブから予測シートをクリックします。
・窓が開くので「作成」をクリックします。

エクセル 予測シート

 予測シートが新規作成されます。タブローと同じ結果を表示しました。
 エクセルはグラフと同時に表も作成してくれます。グラフへポインタをあてても数値を表示できないぶん表ができる。エクセルさすがです。