はじめに
「XX年の値を100とすると、現在はZZです」という説明を聞いたり見たりすることがあります。
これをOracle Analytics Cloud(OAC)でやってみたいと思います。
1. データを準備する
1.1 e-Statからデータをダウンロード
データはe-Statの「小売物価統計調査 小売物価統計調査(動向編)」から条件を絞ってAPIでCSVに抜き出したものを使います。
余分なヘッダは削除しました。
ちなみに、「鶏卵」と「うるち米(単一原料米,「コシヒカリ」)」の全地域、全期間のデータをダウンロードしました。
特に指定しませんでしたが、ダウンロードしたCSVのエンコーディングはUTF-8でした。
OACにアップロードするテキストファイルは、UTF-8である必要があります。
APIの利用にはユーザ登録が必要です。
1.2 OACにアップロード
アップロードは簡単です。
ログインして、「作成」ボタンをクリックし「データセット」を選択します。
左上の「ここにデータ・ファイルをドロップするか~」にファイルをドラッグ&ドロップするか、クリックしてファイルを選択します。
アップロードされたファイルを確認して「OK」をクリックします。
こんな感じになると思います。
「xx_code」が集計項目として認識されてしまっています。一方で、価格データである「value」は文字として認識されてしまいました。
「時間軸 (月)」も文字と認識しています。
1.3 データセットを修正
取り込んだデータの定義を編集します。
1.3.1 文字列を数値に変更する
数値に変更したい列の「オプション」アイコンをクリックします。
今回の場合は「value」列です。
表示されるメニューから「数値に変換」をクリックします。
処理形式を「メジャー」、集計を「平均」にします。
列ヘッダをダブルクリックして、列名を変更します。
1.3.2 文字列を日付に変更する
同様に「時間軸 (月)」を日付に変換しようとしたのですが、フォーマットの問題なのかうまくいかなかったので、「yyyy年MM月」を一旦「yyyy/MM」にしてみることにしました。
「時間軸 (月)」のオプションメニューから「編集」をクリックします。
次のような式を入力し、「ステップの追加」をクリックします。
REPLACE(REPLACE(時間軸(月),'年','/'),'月','')
この状態で、あらためて「日付に変換」をクリックし、「ステップの追加」をしたところ意図したような日付列に変換されました。
1.3.3 分析に使用しない列を非表示にする
分析に不要な列のオプションメニューから、「非表示」を選択します。
あるいは、表示形式を「メタデータ」に変更した方が作業しやすいかもしれません。
表示したくない列にチェックを付けていきます。
2. ワークブックを作成
データセットが保存できたら、そのままワークブックを作成してみましょう。
Auto Insightが表示された場合は、ひとまず閉じておきます。
鶏卵とコシヒカリでは価格差が大きいので、このようなグラフにしてしまうと鶏卵の価格の変化が掴みづらいですね。
というか、コシヒカリって2000年には5,500円だったんですね。
3. 計算の追加
新しいキャンバスを追加します。
「マイ計算」を右クリックし「計算の追加」を選択します。
任意の式の名称を入力します(例えば「価格変動」)。
次のような式を入力し、「保存」をクリックします。
価格*100/MIN(CASE WHEN 時間軸(月)=MIN(時間軸(月)by 銘柄) THEN 価格 END by 銘柄)
グラフ化してみました。
2000年1月の価格を100とした場合の、2021年7月までの価格変動(全国平均)です。
式の意味ですが
MIN(CASE WHEN 時間軸(月)=MIN(時間軸(月)by 銘柄) THEN 価格 END by 銘柄)
ここの部分で、銘柄別に一番古い(期初の)価格を返すことになります。
この値で、価格を100倍したものを割り算すると期初の値は100になり、その後のデータは価格変動に従って算出されます。
4. Auto Insight
この記事の最初の方で、Auto Insightの画面を閉じましたが、実はこのタイプのグラフも提案されていました。