Power BIで時系列データを分析するなら、カレンダーテーブルを作るのは必須

BIツールの1つのメリットは、分析したいデータを、ドリルダウンやドリルアップなどいろんな観点から自在に確認できることでしょう。

例えば時系列データであれば、最初に年次単位で大きなトレンドを確認し、気になるところがあれば四半期単位や月次単位で確認する、といった具合です。

ただし、時系列データをドリルダウン分析するためには、1つのテクニックが必要になります。それが「カレンダーテーブル」を作っておくことです。

 

カレンダーテーブルを作る目的

時系列データを分析したいときに、元データには日付単位のものがあるとしましょう。日次の売上データなどをイメージすれば良いです。

 

グルーピングしたい単位を予め自由に定義できる

四半期毎や年単位、あるいは会計年度などでグルーピングしたい場合、それらの時系列のグルーピングを、まとめて定義するのがカレンダーテーブルです。

また、会計年度の定義にも便利です。企業によって決算月は異なりますし、集計単位を変えたい場合もあるでしょう。その場合に、カレンダーテーブルで定義しておけば、決算年度ごとに集計することが簡単にできるようになります。

 

複数のデータでも共通の時系列単位を定義できる

カレンダーテーブルを作っておくことで、各データごとに日付のグルーピングをする必要がなくなります(売上データ、仕入データなどの複数データを、共通の時系列単位で分析できる)。カレンダーテーブルと、各データの日付データとのリレーションを構築するだけでOKです。

 

カレンダーテーブルの作り方

基本的には、Microsoftが紹介しているこちらのリンクを見ていただければと思いますが、

[Power BI] DAX入門(2) カレンダーテーブルの作成 – Microsoft Japan Data Platform Tech Sales Team Blog

主要なものだけ示しておきます。

カレンダーの作り方
カレンダー = CALENDAR(“2015/1/1″, TODAY())


年 = YEAR([Date])

月番号
月番号 = MONTH([Date])

四半期
四半期 = IF([月番号]<4,”Q4″,IF([月番号]<7,”Q1″,IF([月番号]<10,”Q2″,”Q3”)))

会計年度
会計年度 = IF([月番号]<4,[年]-1,[年])

 

あとは、作成したカレンダーテーブルと、分析したいデータの日付カラムを、リレーションで結んでおきます。リレーションの構築方法は、こちらの記事をご覧ください。

Power BI Desktop でのリレーションシップの作成と管理 – Power BI | Microsoft Docs

 

手頃な日次データとして、日銀の統計データからドル円レートの推移を使います。

主要時系列統計データ表

データを読み込んで、カレンダーテーブルを作ります。そのあとは、忘れずに日銀データとカレンダーテーブルで、日付カラムのリレーションを構築しておきましょう。

そして、実際にグラフを表示してみましょう。

軸には日付を設定するのですが、このときにカレンダーテーブルの項目を設定することと、階層ごとに順番に設定することが肝です。

年単位でグラフ化したのがこちら。

このうち、どこかの年を選択してドリルダウンを行うと、月単位のグラフに変化します。

さらに月を選択してドリルダウンを行うと、日単位のグラフに変化します。

ドリルアップを選べば、上の階層に戻すこともできます。

 

このように、カレンダーテーブルを作っておけば、自由に時系列データの階層をいったりきたりすることができるのです。時系列データを分析するには必須といえるでしょう。

 

Power BIを勉強するなら、Udemyがおすすめです。日本語だと情報が少ないですし、Udemyであれば情報がまとまっているので、効率的に学べます。

Microsoft Power BI Masterclass – Expand Excellence

無料でデータ分析するならMicrosoftのPower BI Desktopがおすすめ

最近は、データ分析やデータアナリティクスという言葉を、いろんなところで目にするようになりました。Googleトレンドで見ると、データ分析やBIツールと言う言葉は、ここ5年間で徐々に増えてきています。

そこで、手軽に使えるBIツールを調べていたら、Excelがデータ分析に向けて大きく進化していることを知り、非常に驚きました。

それを知ったきっかけは、こちらのMicrosoftの教育用の動画です。

Excel によるデータの分析と可視化

今のExcelには、データ分析用にいくつか新しい機能が搭載されていて、大量のデータを分析しやすくなっています。「ExcelでセルフBIができるんだ!」と嬉しくなってしまって、試そうと思いました。

 

バージョンに注意。BI機能が使えるExcelは限られている

これはいいじゃないかと思って、自宅のExcel 2016を調べてみたら、これらの機能が使えませんでした。どうやらExcelのバージョンによって、使えるBI機能は限られており、ざっくり言えば自宅用では使えないようです。

・Office 365 Pro Plus
・Office Professional Plus 2016
・Office Professional Plus 2013
・Excel 2013 スタンドアロン
・Office Standard 2013(一部制限あり)
・Office Professional Plus 2010(一部制限あり)

Power BI、PowerPivot、Excel Pivotテーブルとの違いは? | POWER BI FORUMから引用

 

せっかくテンション上がったのに、がっかりしてしまいました。

 

MicrosoftのPower BI Desktopが良さげ

しかし、いろいろ調べてみると、同じようにデータ分析の機能としてPower BIというBIツールをマイクロソフトが提供しています。

Power BI | 対話型のデータ視覚化 BI ツール

これらも、冒頭で紹介したExcelの最新機能と同じように、データを正しい形で取り込み、DAXというデータ分析に特化した新しい言語を使うことができます。具体的には、次の点でPower BIを使うメリットがあります。

メリット内容
多様なデータの取り込みExcelやCSVをはじめ、Google AnalyticsやFacebookなど様々なデータの取り込みが可能。
データモデルの整形取り込んだデータの型を変更・統一したり、独自の計算列を設けることが可能。
多角的な分析取り込んだデータを様々な角度から分析できる。
レポート作成の効率化簡単にいろんなグラフを作成し、レポートにすることができる。

 

Power BI上でこれらのことができるので、使いこなせれば、大量のデータを効率的に分析し、レポートまで作成することができるというわけです。

 

Power BIにもいくつか種類があるので注意

ややこしいのは、Power BIにもいくつか種類が存在しており、有償・無償も変わるということです。料金体系をみると、Power BI Desktop、Power BI Pro、Power BI Premiumの3つに分かれています。

Power BI の料金 | Microsoft Power BI

チームでの共有や、クラウドサービスとの連携などの面で高機能になっていきます。無償のPower BI Desktopでも分析機能は十分に使えるので、まずはPower BI Desktopから始めてみると良いのではないでしょうか。

 

試しにPower BI Desktopを使ってみる

早速試しに使ってみましょう。Data.go.jpで見つけた「インターネット利用人口の推移」というデータを使って、分析してみます。

インターネット利用人口の推移 – インターネット利用人口の推移_CSV – DATA GO JP

 

データの取り込み

最初に、CSVでダウンロードしたファイルを、「Get Data」からCSVファイルを指定して、取り込みます。多様なフォーマットに対応していることがわかりますね。

 

データの整形

次はデータの整形です。余分な行の削除、見出し行の設定、各列のデータ型の指定などができます。行列の転置もできますよ。

今回、取り込んだ状態のままでは、余分な行があるので整形しないといけません。

余分な行を削除し、見出し行の設定、各データを日付型や数値型に変換します。

Power BIが良いのは、こういうデータの整形した経緯を「クエリ」として記憶しておいてくれることです。これをやることで、今後元データを更新したら、データの読み込みからデータの整形までを自動で実行してくれるんですね。

 

分析データの作成

グラフや表など、様々な分析をすぐに行うことができます。クロス集計した結果をグラフ化する場合も、Excelだと一度ピボットテーブルなどでクロス集計表を作ってグラフ化する手間が必要ですが、Power BIだと、データセットからいきなりクロス集計したグラフを作成することができます。また、様々なグラフが用意されているので、用途に合ったグラフを選び、その値をドラッグしたり、フィルターで条件を指定するだけで、多様なグラフをすぐに作ったり変更することが可能です。分析に特化したソフトだけあります。

今回は、簡単に年ごとの利用者数と人口普及率を棒グラフ・線グラフを表示してみます。グラフの種類を選んで、対象データをドラッグするだけでできます。

 

レポート作成

最後は、分析データをレポートにします。各シートにグラフや表を配置できますので、ダッシュボード的に使うと良いでしょう。また、各グラフは自動で連動しますので、どこかのグラフで選択したりドリルダウンで絞り込みを行うと、他のグラフも連動して値を表示してくれます。

Power BI Desktopでは、パワーポイントなどに直接出力することはできないところが残念です。加工できるようにしたければ、各グラフの元データはエクスポートできるので、Excelで加工やグラフ化すると良いでしょう。面倒ですが、このあたりは仕方ありません。

 

まとめ

今後は一層データ分析が重要になっていくと思いますし、こういうセルフBIツールが普及することで、様々な場面でデータを活用できるようになるんじゃないでしょうか。

Power BI Desktopは無償で使えますし、今回書いた基本的な機能以外にも、様々なことができるので、活用していきたいと思います。

Power BI Desktop | Microsoft Power BI

 

本格的に学ぶなら、オンライントレーニングのUdemyがおすすめです。

Microsoft Power BI Masterclass – Expand Excellence

各党のTwitterアカウントをテキストマイニングしてみた

衆議院議員選挙が始まりましたね。いろいろな要素で盛り上がっていますが、各党のTwitterアカウントがどのように運営されているのかを知りたくて、テキストマイニングしてみました。各党の分析結果を示す前に、全体としての共通事項を述べておきます。

  • 演説に関する宣伝情報が多い
  • 党首の名前が多い

これはどの党でも共通しています。それを踏まえても、少しずつ党のTwitterアカウントの運営方法が違う点がわかると思いますので、ご覧くださいませ。

 

分析の前提

各党の公式Twitterアカウントのツイートを、10/13AM時点で2000件程度抽出したものを分析しました。細かい技術的な点は省きますが、品詞は名詞のみにするなど、ある程度はわかりやすくするためデータを省いています。

 

自民党は「これまでの実績アピール」

与党第一党の結果です。

自民党広報(@jimin_koho)さん | Twitter

jimin_koho

前述した共通事項に加えて、「アベノミクス」や「5年間の実績」「閣僚」などが含まれており、政権与党ならではの文言が並んでいますね。

こういうツイートですね。

「直滑降」や「ストリーム」というのは、選挙開始前の広報として「直滑降ストリーム」という番組をやっていたからですね。

 

公明党は「政策アピール」

次は公明党です。

公明党広報(@komei_koho)さん | Twitter

koumei_koho

「教育」「負担」「軽減税率」「社会保障」など、政策としてアピールするポイントが投稿に含まれているのがわかります。

同じことを投稿するわけではないですが、このような投稿に、政策との関連を紐づけて投稿されているのが多いですね。

 

希望の党は「演説の最新情報」

次は、新しい希望の党です。

希望の党(@kibounotou)さん | Twitter

kibounotou

並んでいるキーワードからは、政策の内容よりは演説の場所や動画など、最新情報を伝える場として使っているようですね。

 

立憲民主党は「支援者募集」

Twitterのフォロワーが自民党を抜いたことが話題になりましたが、10/13時点で17万人を超えています。

立憲民主党(@CDP2017)さん | Twitter

CDP2017

キーワードとして「まっとう」「BOTTOM DEMOCRACY」なども見えますが、何より「ボランティア募集」や「個人寄付」という言葉が目立ちます。立ち上がったばかりということで、体制を作りながら選挙活動しているという感じでしょうか。

それ以外にもタイムラインをみると、返信も積極的に行っており、インタラクティブな運用が行われているのがよくわかります。

 

共産党は「動画でアピール」

次は共産党です。

日本共産党(@jcp_cc)さん | Twitter

jcp_cc

「とことん共産党」ということで、様々な動画が投稿されています。

演説などの情報は少なめで、アピールしたい内容を動画で伝えるというのは、新鮮な印象です。

 

社民党は「演説情報と時事ニュース」

次は社民党です。

社民党OfficialTweet(@SDPJapan)さん | Twitter

shamintou

選挙が始まる前は、時事ニュースと政策を関連づけた投稿が多かったようで、「NHKニュース」や「Yahooニュース」というキーワードが多くなっています。

選挙開始後は、演説情報が中心になっていますが、沖縄のヘリ墜落に関する投稿を行うなど、時事ニュースとの関連も続いています。

 

日本のこころは「フランクな運営」

最後は日本のこころです。

日本のこころ(@nipponkokoro)さん | Twitter

nipponkokoro

ぱっと見は、演説に関する情報が中心かなと思うのですが、「消費税マイレージ」などの政策のキーワードも見られます。

実際にタイムラインをみると、リツイートや返信が結構多く、フランクに運営されていることがわかります。

 

民進党も・・・

気になったので調べてみたら、民進党のTwitterアカウントもまだ活動しているんですよね。

民進党(@MinshintoNews)さん | Twitter

MinshinNews

代表などの演説情報が中心のようです。

ということで、一通り各党のTwitterアカウントの運営状況を見てみました。それぞれ違いがあって面白いですね。Twitterは短文でリアルタイム性が強いメディアなので、選挙で端的にアピールする用途で用いられますが、小さい政党と言われているところでもフォロワーが多かったりします。選挙行動にネットの影響が増しているといわれている中で、どういうマーケティングを行うのか注目したいところです。

他の観点でも分析してみると、いろいろ面白いことがわかりますね。

「働き方改革」でTwitter検索したら、意外な結果が、、、

「働き方改革」が注目されるようになって、国や企業で様々な動きが起きています。最近では、労使(経団連と連合)で協議した結果、「残業時間は月100時間未満」とすることで合意しました。

残業月100時間未満で決着へ 働き方改革につながるか? | マイナビニュース

反響を知ろうと思い、Twitterで「働き方改革」を検索キーワードに10000件のつぶやきを抽出しました。抽出期間は、3月18日から3月27までです。

Twitter 働き方改革

その内容が話題になってるかなと思ったら・・・

Twitterを検索したのは、このようなニュースが話題になっていて、どういう反響が多いのかを知りたかったからでした。しかし、10000件の検索結果の中で、一番リツイートが多かったのは、これです。

 

国会の議論の時間に関するツイートが、一番反響大きかったんですね。

それ以外にも、こんなツイートも多くのリツイートを得ています。

 

働き方改革は、様々な企業や労働者にとって重要な話なので、今後もいろんな議論をして欲しいですね。

スーパー戦隊はいつから女性が2人になったのか?これまでの歴史をデータ分析する

突然気になったので、ゴレンジャーなどのスーパー戦隊シリーズについて、調べてみました。

 

スーパー戦隊シリーズとは?

ご存知の人も多いと思いますが、ゴレンジャーから始まった、5人の戦士が悪と戦うテレビシリーズです。

スーパー戦隊シリーズ – Wikipedia

最初は1975年のゴレンジャーで、そこから現在まで続いています。男の子なら、誰しもが自分が見たスーパー戦隊の思い出があるんじゃないでしょうか。

スーパー戦隊をなぜ調べようと思ったのかといえば、ここまで続いていて、しかも毎年シリーズが新しくなっているので、世相を反映してきたんじゃないか、と思ったのです。

特に最近興味を持ったきっかけは、女性メンバーが二人になっていたことでした。自分がこどもの頃の記憶だと一人だったので、いつの間にか二人になっていたんだな、と。それなら、いつ女性メンバーが増えたのか、を調べると世相との関係がわかるかもしれない、と思いました。

データソースは全てWikipediaです。Wikipediaめっちゃ便利。

 

性別でみるスーパー戦隊

まず早速、性別の観点から見てみましょう。以下は、41のスーパー戦隊で、男女の人数を示したものです。

スーパー戦隊の男女の人数

相対的にみれば男性が多いのは予想通りなのですが、女性の人数はどこかで1人から2人に変わったというわけではなく、回によって1人・2人が変わっています。最初に女性が2人になったのは、1984年のバイオマンで、そこから何度も2人になっています。

女性の社会進出の増加などが関係しているのか、と最初は予想していましたが、どうやらあまり大きく関係はなさそうです。ただ、最近は女性2人が定番になってきた感じはありますね。

ちなみに、途中、女性が一人もいないシリーズがありました(1981年のサンバルカン)。しかし、女性から不人気だったため次のシリーズからは必ず女性は最低一人は含まれているそうです。

戦隊チームが男性3人のみで構成されており、女性メンバーが1人も存在しないことが最大の特徴である。この設定の意図は、マンネリ化しないように前作から人数を少なくさせることで強い印象を生み出す、そして陸・海・空の3要素を際立たせるためである[2]。しかし、これに対しては、放映当時から女児層をはじめとした視聴者から女性メンバーの復活を望む声が多数寄せられた[3]。そのため、翌年の『大戦隊ゴーグルファイブ』では女性メンバーが復活した5人構成となり、以後男性メンバーのみの作品は存在しない(後のスーパー戦隊シリーズでも開始当初3人メンバーの作品は幾つか存在するが、いずれもシリーズ途中で何らかの形で追加戦士が登場することにより、最終的に5人以上のメンバーとなっている)。

引用:太陽戦隊サンバルカン – Wikipedia

人数でみるスーパー戦隊

次は、人数がどうなったのかを見てみましょう。以下は、スーパー戦隊の人数をヒストグラムで表したものです。

スーパー戦隊の人数

一番多いのは5人ですが、3人から9人まで幅広です。特に途中から「6人目」みたいな途中参加メンバーがひとつの定番になり、5人以上になるケースが多くなっています。それにしても、最新のキュウレンジャーの9人は、その中でも突出して多い。さらに追加メンバーもあるんだろうか・・・。

 

色でみるスーパー戦隊

最後は色を見てみましょう。スーパー戦隊の色は、結構種類が多いって知っていましたか?

スーパー戦隊の色

一番多いのは赤と青。全シリーズに入ってます。次が黄色、ピンク、緑と続きます。このあたりはみんながイメージする鉄板のカラーではないでしょうか。意外に多いのは黒。橙や紫などレアな色も過去にはありました。最近は金・銀あたりが多いのも特徴です。

また各色における男女比率が以下です。

スーパー戦隊の色(男女別)

女性比率100%なのは、やはりピンクですね。黄色や白は、男女両方で使われるケースが多くなっています。少ないけれど、青や緑でも女性のケースがあるんですね。

 

まとめ

  • 女性メンバーが2人になったのは、1984年が最初。それ以降は、1人と2人を繰り返してる
  • 人数で一番多いのは5人。最近は「6人目」が定番化している
  • 色で一番多いのは赤と青。男性にも女性にも使われるのは黄色・白。

 

これからは、女性メンバーがリーダーになったり、女性の方が多くなる、とかいろんな世相を反映していくんでしょうか。

 

さて、Amazon Primeで映画「イミテーション・ゲーム」を観ました。悲劇の天才数学者アラン・チューリングの実話をベースにした話ですが、ドイツの暗号「エニグマ」解読を中心に、とても刺激的でした。現在の人工知能ブームの起源ともいえるチューリングの人間模様がわかりますよ。

大企業と中小企業の休みの日数を比較。統計データから違いが鮮明に

最近、「働き方改革」が大きく注目されており、長時間労働の是正、兼業・副業の促進などが国でも議論されています。さらに、経済界もこの動きに連動しており、経済団体は有給休暇の消化を増やすことを推進するなど、「働き方改革宣言」を公表しています。

社員の有給消化、3日ほど増やしたい 経団連など「働き方改革宣言」発表 – ITmedia ビジネスオンライン

 

この中で、有給休暇の消化率が5割以下にとどまる、という点が気になりました。

長時間労働の是正や、平均で5割以下にとどまる年休取得率の改善が「喫緊の課題」だとしている。

引用:社員の有給消化、3日ほど増やしたい 経団連など「働き方改革宣言」発表 – ITmedia ビジネスオンライン

 

実際に、どの程度休みを取得しているのか、国の統計データがありますので、見てみましょう。今回使ったのは、厚生労働省が公開している「就労条件状況調査」です。

就労条件総合調査:結果の概要

こちらの最新である平成27年のデータを使っています。

 

はっきりと浮かび上がる、企業規模別の休みの実態

まず、企業が採用している週休制度の日数を見てみましょう。

企業規模別週休日数

すべての企業規模で、最も多いのは週休2日制です。ただ、企業規模が小さくなるにつれて、週休の日数が少ない割合が高まっていきます。

 

次に、年間の休日数も見てみましょう。

企業規模別年間休日数

1000人以上の企業では、「120-129日」が最も多くなっていますが、30-99人の企業では、「100-109日」が最も多くなっています。

 

有給休暇の取得率も見てみます。

1000人以上の企業は5割をやや上回るのですが、そこからは右肩下がりです。冒頭ご紹介した記事の「有給休暇の消化率が5割以下」というのは、これらの数字を見てのことでしょう。

ここから浮かび上がるのは、企業規模と休みの日数は明らかに相関しているということです。もっといえば、企業規模が大きいほど、休みが多いといえるでしょう。

 

それでも時間とともに改善されている

経年変化ではどうでしょうか。ここでは、年間の休日数がどう変化してきたのかを見たいと思います。

企業規模別年間休日数推移

統計データで確認できた平成13年からの推移でみると面白いことがわかります。多少の変動はありますが、1000人以上の企業は平成13年から27年まででほとんど変わっていません。一方で、30-99人の企業や100-299人の企業は、時間の経過とともに休みの日数が増えています。明らかに大企業と中小企業の差が小さくなっているといえるでしょう。

 

今後、働き方改革が進めば、ご紹介したこれらの数字がもっと改善されていくのでしょうか。多様な働き方、体調に配慮された労働時間に対する価値観が広まれば、もっと豊かに暮らせると思います。

あなたの企業は、どこに当てはまりましたか?

無料BIツールをGoogleが提供。Google Data Studioがデータ分析を楽にする

Googleが、様々なデータを1つのダッシュボードで可視化・分析できる無料ツール「Google Data Studio」を公開しました。

こんな感じのレポートを、簡単に作成することができます。

マイクロソフトも無料のBIツールである「Power BI」を公開していますが、各社この辺りのデータ分析ツールに注力してきているのが分かります。

MSの無料データ分析ツール「Power BI」でGoogleアナリティクスを分析する

実際にGoogle Data Studioを触ってみると、簡単にダッシュボードを作れるのが分かります。操作はパワーポイントやGoogle Slideと同じ感覚です。

 

Google Data Studioで何ができるのか

Google Data Studioでは以下のことができます。

 

データの統合

複数のデータソースを一つのダッシュボードに統合することができます。統合可能なデータソースは、Google AnalyticsやAdwordsなどのGoogleサービスも当然ながらありますし、BigQueryやMySQL、Googleスプレッドシートなど汎用的に使えるデータソースも用意されています。

これらを組み合わせてグラフや表を一括で表示できるので、複数のデータ元のデータを一括で確認したり、複合的なデータ分析をすることができます

 

データの可視化

データソースを指定したら、数値やグラフ、表をレポートにプロットしていきます。様々な表現するが用意されているので、おおよその表現は簡単に実現できるでしょう。

以下は、Google Data Studioで用意されている、Googleアナリティクスのサンプルデータを用いて、ダッシュボードを作成してみた例です。

各オブジェクトを好きなところに配置できますし、グラフのオプションも細かく設定することが可能です。また、「期間」オブジェクトを配置すると、同じページにあるオブジェクトの日付が統一的に反映されるようになるので、便利です。

このように、パワーポイントみたいにダッシュボードを作り込んでいくことができます。

 

データの共有

作成したダッシュボードは、いろんな人と共有することができます。右上の「共有」ボタンを押すと、以下のような画面が表示されます。

宛先を指定してメールを送ったり、共有リンクを取得することができます。このあたりは、Google Analyticsのマイレポート機能と同じですね。

 

データの保存はちょっと不便

作成したレポートは、Google Data Studioのレポート一覧から見ることもできますし、Googleドライブにも保存されます。ただし、ダウンロードして保存するということはできません。

そういう使い方を想定していない、といえばそこまでなんでしょうが、作成したダッシュボードをPDFなどに保存したい場合、うまくできません。

もしやるとすれば、Google Chromeの「印刷」から「PDFで保存」を使いましょう。これで保存を行うと、1枚だけPDF化することができます。複数枚のレポートを作成した場合は、1枚ずつ作成されたPDFを統合する必要があります。

詳しくは、以下のページをどうぞ。

How to Export Google Data Studio Dashboards To PDF | Data Runs Deep

 

以上です。MSのPower BIを触った時も思いましたが、こんなに便利で使いやすいツールが無償で提供されるというのは、ユーザーからすれば非常にありがたいし便利だな、と驚きました

Webアクセス解析で活用しようと思うと、Googleアナリティクスのマイレポート機能を使うほうが手軽だと思います。しかし、複数のデータを複合的に取り扱うのであれば、Google Data Studioの方が向いているでしょう。

 

説明動画も公開されているので、興味がある方はぜひどうぞ!

これからExcelでデータ分析するならGoogleスプレッドシートの方がおすすめな理由

Googleスプレッドシートは使ったことがありますか?

表計算ソフトといえばExcelが超有名ですが、Googleスプレッドシートもいろいろ便利になってきており、今回新しい機能が搭載されていました。これが、データ分析を楽にしてくれそうな予感がするのです。

追加されたのは、「データ探索」機能です。

スプレッドシートでグラフと分析情報の候補を表示、使用する – パソコン – ドキュメント エディタ ヘルプ

 

「データ探索」機能とは何か?

一言で言えば、「スプレッドシートに記載された数字を自動で読み取って、データ分析の提案をしてくれる」機能です。しかし言葉で言うとわかりづらいので、スクリーンショットを通じて説明しましょう。

以下のようにデータが存在している場合に、右下にある「データ探索」というボタンをクリックします。どうやら、表として認識される領域を選択すると、このボタンが活性化されるようです。

すると、サイドバーが現れて、いくつか複数のグラフを表示してくれます。グラフの数は10個程度です。また、各グラフにはどのような傾向が読み取れるかも説明してくれます。

これは、スプレッドシート上にあるデータの固まりを捉えて、その組み合わせから何らか傾向がありそうなパターンをグラフ化してくれるようです。

気に入ったグラフを使いたい場合は、グラフの右上に表示される「グラフを挿入」ボタンをクリックするだけでOKです。すると、スプレッドシート上にグラフが追加されます。

 

これの何が嬉しいか?

「データ探索」機能は、要はデータを適当に組み合わせて、いろんなグラフで関係性を示してくれる機能です。やってる事は機械的にデータをグラフ化することなのですが、いろんなグラフの種類をいろんなパターンでやるのは人間がやるとめんどくさいものです。こうやって機械が自動でいろんなパターンを提示してくれると、手間がほとんどかからないので、新しい発見ができる可能性も高まるでしょう。

例えば、先日書いた「日本ではAndroidとiOSのどちらが多く利用されてる?最新のスマホ市場動向を調べて見た 」の記事で紹介した、iOSとAndroidのシェアの関係がほぼ1対1であるとか、Androidのシェアには周期性があるとか、これらのグラフは、「データ探索」機能で自動で提示してくれたものです。

もちろん使えない(意味がない)グラフの提案もたくさんあります。しかし、これらのグラフを作るのにほとんど手間はかからないので、その中でひとつふたつと利用できるものがあれば、有用な機能だといえます。

 

データ分析ツールはどんどん身近に

データ分析はどんどん進歩してきていて、MicrosoftもPower BIを無償で提供するなど、各社力を入れています。

MSの無料データ分析ツール「Power BI」でGoogleアナリティクスを分析する

Power BIはいろんなデータを取り込んで分析できるという点で便利ですが、スプレッドシートのデータをすぐにグラフ化してくれる今回の「データ探索」機能は、より手軽にデータ分析を進めることができる点が特徴です。

 

Excelを使ってデータ分析する機会が多い人は、Googleスプレッドシートを使ってみるのもおすすめです。

Rで円グラフを綺麗に描く

R言語で円グラフを描くときに、いろいろやり方があるのですが、日本語ではいまいちまとまっていなかったのでここで書いておきます。

 

デフォルト

データは、サンプルにある「islands」を使います。世界の主要な陸地の広さを示したものです。
これを単純に円グラフで書いてみます。

pie(islands)

時計周りに

デフォルトではどこから開始されたのかよくわからないので、時計回りで12時の位置からスタートするようにします。

pie(islands, clockwise=TRUE)

ボーダーを白に

デザインがいけてない感じがするので、とりあえず枠線を変えてみましょう。ここでは白に変更してみます。

pie(islands, clockwise=TRUE, border="white")

ごちゃっとしたラベルを削除

円グラフの対象データが多いと、割合が少ないデータの中でごちゃっとしますよね。そういう時は、ラベルの表示数を減らしましょう。

pie(islands, clockwise=TRUE, border="white", labels=head(names(islands),4))

色を変える

グラフの色を変えてみましょう。「RColorBrewer」を使うと、いろんなカラーパレットを使うことができます。

RColorBrewer | Rのカラーパレットの使い方

最初に、カラーパレットを指定して、グラフに色を反映します。

cols <- brewer.pal(length(islands), "Set2")
pie(islands, clockwise=TRUE, border="white", labels=head(names(islands),4), col=cols)

真ん中を開ける

次に、円グラフの真ん中を空けて、ドーナツ型にしてみましょう。理屈的には、最初に通常の円グラフを描いた後に、真っ白い小さな円グラフを重ねて描きます。

cols <- brewer.pal(length(islands), "Set2")
pie(islands, clockwise=TRUE, border="white", labels=head(names(islands),4), col=cols)
par(new=TRUE)
pie(1, radius=0.5, col='white', border='white', labels='')

開けた真ん中に文字を入れる

ドーナツの真ん中にテキストを入れてみましょう。

cols <- brewer.pal(length(islands), "Set2")
pie(islands, clockwise=TRUE, border="white", labels=head(names(islands),4), col=cols)
par(new=TRUE)
pie(1, radius=0.5, col='white', border='white', labels='')
text(0, 0, labels="Text", cex=par('cex.main'), col=par('col.main'), font=par('font.main'))

 

デフォルトの円グラフから考えると、だいぶ見栄えが変わりましたよね。色々工夫することで、R言語でも見栄えをよくできるので、R言語ユーザーはぜひ試してみてください。

Rで年度ごとに集計したテーブルデータを作成する

R言語でデータを集計したりする時に、年度単位で集計したかったりしませんか。

意外とそのような方法がなかったので、ここの掲載しておきます。

 

テストデータの作成

まず、テストデータを作成します。今回は、日経平均株価のデータを使います。取得方法は、基本的に以下のページを参考にしています。ほとんどこの記事に書いてある通りにやれば良いと思いますが、僕の環境(Mac)では、ダウンロードしたファイルがそのままだと文字コードエラーになってしまったので、ヘッダーを適当にアルファベットに編集しています。

【R言語】日次データオブジェクトに、曜日列を挿入する – Qiita

一応、ソースコードを掲載しておきますね。

nikkei225 <- read.csv("nikkei_stock_average_daily_jp.csv")

#末尾に空行があるので削除
nikkei225 <- nikkei225[-857, ]

これで、2013年から2016年までの、日次の株価に関するデータを用意できました。

 

年と月で集計する

作成したテストデータから、年と月のマトリックスで集計したデータを作成します。具体的なステップとしては、今の日付のデータから、「年」と「月」をそれぞれ抽出し、それを掛け合わせるようにテーブルデータを作成します。

#年と月のデータを作成
data.year <- format(as.Date(nikkei225$date),"%Y")
data.month <- months(as.Date(nikkei225$date))

#データを結合
nikkei225 <- data.frame(nikkei225, data.year, data.month)

#テーブルで集計
table(nikkei225$data.year, nikkei225$data.month)

 

これでテーブルは、以下の通りになります。各年における東証が開かれた日数がカウントされました。

10月11月12月1月2月3月4月5月6月7月8月9月
2013222020191920212120222219
2014221821191920212021222120
2015211921191922211822222119
2016000192022201922100

 

今回は、これを年度のデータにしたいので、変換します。また、列も10月から始まっていて変な風になっているので、これも修正したいですね。

 

年度の算出

年度ごとに分類するためには、「境目となる月より過ぎていれば1を足す」という処理をしてあげます。

#各年度でデータを仕分ける
fiscalYear <- as.numeric(format(as.POSIXlt(nikkei225$date,format="%Y/%M/%d"),"%Y")) + (format(as.POSIXlt(nikkei225$date,format="%Y/%M/%d"), "%M") >= "04") - 1

#年度データを結合して集計
nikkei225 <- data.frame(nikkei225, fiscalYear)
sum.date <- table(nikkei225$fiscalYear, nikkei225$data.month)

#最後に列の順番を入れ替える
sum.date <- sum.date[,c(7,8,9,10,11,12,1,2,3,4,5,6)]

 

以上で、やっと出来上がりです。これを出力すると、以下のようになります。テストデータは2013年1月からなので、2012年度開始でちゃんと出力されていますね。

4月5月6月7月8月9月10月11月12月1月2月3月
2012000000000191920
2013212120222219222020191920
2014212021222120221821191922
2015211822222119211921192022
2016201922100000000

 

これらの処理は、以下のサイトを参考にさせていただきました。

r – Assigning Dates to Fiscal Year – Stack Overflow

R:データフレームの列を入れ替える・削除する。 – Qiita