時系列解析 では、「時刻」と「時間」を区別します。 日常生活では混同して使われる言葉ですが、時系列解析では、「時刻」も「時間」も重要なデータです。
「時刻」とは、「2010年1月1日 5時30分」のようなデータのことです。
「時間」とは、「25年間」とか、「2時間7分」のようなデータのことです。
「時間」は、2つの「時刻」の差です。
例えば、2007年1月1日 0時0分0秒をコンピュータで扱う時は、 大きく分けて2種類あります。
ファイル名や、識別番号に使われる表記です。
このファイルがいつ出来たのかを、記録として残したい時に便利です。
しかし、一見すると時刻を表していても、
例えば、1 日前の「20061231000000」にしたい場合、
どこかの数字を 1 引けば良いわけでもなく不便です。
また、「20070101000000」 から 「20061231000000」 を引いても「1日」という
「時間」が求まらないことでも、この表記の不便さがわかります。
次の項と関係しますが、
「20070101000000」の形をコンピュータは時刻のデータ
「2007年 1月 1日 0時 0分 0秒」だと思っていません。
「20兆 701億 100万」だと思っています。
そのため、「20070101000000」の形では、
時間軸を正しく解析できないです。
(「20070101000000」の形でも、時刻の前後関係は間違ってはいないです。
そのため、解析結果が荒くなる可能性はありますが、解析に使えないこともないです。)
例えばExcelなら、
この形をコンピュータは時刻のデータとして認識します。
ただし、人間には「/」や「:」が見えていてもコンピュータの中での扱い方は違います。
コンピュータの内部では、「39083」として扱い、画面の表示では、「/」や「:」を使います。
ちなみに、この日の12時なら「39083.5」です。
また次の日なら、「39084」です。
これは、「1900/1/1」を「1」として、
そこから何日目かを表しています。
この表記では、「時刻」の引き算をすると「時間」が求まります。
例えば「1日」は1、「1時間」は1/24なので、0.0416666…、です。
データサイエンス
のソフトウェアでは、
「2007/1/1 00:00:00」を「39083」の形にしないと
時刻のデータ解析ができない場合があり、注意が必要です。
「2007/1/1 01:00:00」と「2007/1/1 00:00:00」を引くと、「1(時間)」が求まりますが、特に何も指定しなければ、 「0.0416666…」という数字が表示されます。 これは、「0.0416666…(日)」という意味です。
「0.0416666…(日)」を「1(時間)」に変換するには、「24」をかける必要があります。
また、「60(分)」に変換するには、さらに「60」をかけます。 秒単位に変換するには、さらに「60」をかけます。
時間の単位の変換は、言われてみれば、そんなに難しい話には聞こえないと思います。 しかし、「1分は何日?」という風に、短い時間を「日」という単位で、考える事をする習慣はあまりないため、 初めての時は「???」となる人が多いようです。
「分」や「秒」の単位の値を、「日」にするには、24や60で割ります。 「2007/1/1 01:00:00 の形式の値に、35分を加える」といった作業をするには、必要な知識になります。
Excelを使って、2つの形式を変換する時の数式を表にまとめてみました。 ちなみに、これは一例で、やり方は他にもあります。
数式は、A1セルに変換前の値が入っている事を想定した式になっています。
変換前 | 数式 | 変換後 |
20080120 | =DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2)) | 2008/01/20 |
200801201234 | =DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2))+MID(A1,9,2)/24+MID(A1,11,2)/24/60 | 2008/01/20 12:34 |
20080120123456 | =DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2))+MID(A1,9,2)/24+MID(A1,11,2)/24/60+MID(A1,13,2)/24/60/60 | 2008/01/20 12:34:56 |
2008/01/20 | =TEXT(A1,"yyyymmdd") | 20080120 |
2008/01/20 12:34 | =TEXT(A1,"yyyymmddhhmm") | 200801201234 |
2008/1/20 12:34:56 | =TEXT(A1,"yyyymmddhhmmss") | 20080120123456 |
「20080120123456」を、「2008/01/20 12:34:56」に変換したい時に、
単純に上記の数式を入れると、図のように「39467.52426」という数字になります。
「39467.52426」を、「2008/01/20 12:34:56」にするには、「セルの書式設定」の「ユーザー定義」を使って、書式を設定する必要があります。
ちなみに、この書式にすると、日時の文字の長さがそろいます。 見た目を良くする目的でも、筆者はよく使っています。
順路 次は 比率の指標