小売業の店舗管理はどうするのか【知識ゼロからのデータ分析入門シリーズ(6)】
本記事は小売業の商品分析はどうするのか【知識ゼロからのデータ分析入門シリーズ(5)】の続きです。前回は商品管理におけるデータの分析を述べしましたが、今回はやはりスーパーチェーンを例として店舗管理を中心にデータの分析を紹介していきます。
複数のチェーン店を保有する企業にとって店舗管理は重要な業務のひとつです。
BIダッシュボードを作るのは難しくない【知識ゼロからのデータ分析入門シリーズ(4)】
Do(実行)ー販売管理
仕入販売在庫などの
売上増長率、利益増長率、在庫回転日数、
今月累計と本日実績は一時間に一回の頻度でデータベースとともに更新されています。(ほかの頻度も設定できます)
さらに、課をクリックすると、詳細なデータが表示されます。各責任者の行動をより正しく導くために、地域内の店舗間比較します。
進捗度を評価して、縦棒グラフで増長率と目標を比べます。そのメリットは
前回の商品分析と一緒に、FineReportデータ分析システムの画面は以下のように示しています。自動調整のレイアウトなのでPC端末でもアプリでもレポートを検索し、確認できます。
以上はQiitaに公開された記事です。
https://qiita.com/Hailee/items/6fbc6f9f6a06bc82ac38
小売業の商品分析はどうするのか【知識ゼロからのデータ分析入門シリーズ(5)】
ダッシュボードの作成過程を理解していただくように、前の記事BIダッシュボードを作るのは難しくない【知識ゼロからのデータ分析入門シリーズ(4)】では、データを簡単なチャートで反映させました。
今回の記事は少し実践的なデータ分析の話題をしたいと思います。例えば、売上データから、「何が売れているのか」、また「何が売れていないのか」などを判断できて、解決策の提案になれるなど。最近よく触れる小売業から始めましょう。一回の記事で説明しきれないので、二回にするかなと思います。
消費者の理解と店舗の運営におけるデータ分析と活用の重要性を気づいた企業はデータ分析ツールやシステムなどを導入しましたが、様々な問題も出てきしました。
データ分析システム中のダッシュボード、レポートはテーマと目標が曖昧であり、だたいろな次元と形でデータを反映させる結果、みんなはデータを見たい時に限り、分析システムを利用することになります。つまり、役に立つ正確な分析結果を導き出せず、リアルタイムな問題の解決を実現できないことです。
実例でデータ分析を学ぶ
スーパーチェーンを例として、FineReportによって実現した効率的なデータ分析を説明します。
FineReportのPC端末でレポートを作成して、そのアプリのレポート閲覧とバーコードスキャン機能と組み合わせることで、チェーン店の経営層から店長、販売員まで簡単に利用できるデータ分析システムを作りました。
(ダウンロードはコチラ、個人利用無料)
スーパーチェーンは大体以下のような構造だと考えられます。
まず、小売業に含まれるデータ分析のテーマを明確にします。
早い商品リサイクルに一番肝心なのは商品管理です。
以前からPOSで取得していた販売データをベースに発注内容を決めたりしていたわけですが、POSデータからは「いつ、何が売れたのか」しかわかりません 。何が売れているのか”、また“何が売れていないのか”は把握できません。あるいは、すべての情報を手動でExcelに入力し、メールで共有します。それはチェー店の場合にすごく不便であり、商品調達の効率を低下させます。
商品分析の過程と必要な指標:
商品情報の登録
仕入れる時、FineReportアプリで商品のバーコードと商品名をスキャンニングして、部課を選択すると、商品情報がデータベースに入力されます。
商品別分析ーバーコードスキャン
店内で異常状況の商品が発覚した際、FineReportアプリで商品のバーコードをスキャンニングして、関連情報を検索します。
商品の販売状況を把握するために、当店本日の売上と在庫を数字で、地域販売状況を縦棒グラフで、当店の7日販売量を折れ線グラフで表示します。当店の売上が目立つように、事前に赤に設定します。
商品を調達するために、商品の地域在庫状況の分析も必要です。限界の数字を設定しておくことで、例えば、500単位以上の在庫ありの店舗をオレンジで表示します。
商品在庫分析
死に筋商品:
在庫量の高い順に商品を並べて、在庫量と在庫日数を表わす縦棒ー折れ線の組み合わせグラフを作成します。在庫回転期間が30日以上の商品に対して、在庫の処分などを考えておくべきです。
売れ筋商品:
売上の高い順に商品を並べて、縦棒グラフで表示します。売れ筋&本日在庫なしの商品の仕入れを準備しておく必要があります。
商品ABC分析
重点的に販売する商品を絞り込んだり、売れ筋商品や死に筋商品を把握することで効率的に販売戦略を実行することができます。
上記の在庫分析のほか、よく用いられるのがABC分析手法で、売上の高い順に商品を並べ、棒グラフと、高い順に足し上げていった売上高の累計割合を表わす折れ線グラフを作成します。
この例では、累積で80%までの売上を占める商品をA、80%〜90%までの売上を占める商品をB、残りの10%を占める商品をCとして商品をグループ化します。
Aランク商品は売れ筋であり、回転率が高いことも予想されるので、仕入れや在庫も注視しておく必要がありますが、Cランクの商品は死に筋商品なので、もし管理コストばかりかかって利益に貢献していないようであれば、今度仕入れないことなどを考えます。
以上はQiitaに公開した記事です。
BIダッシュボードを作るのは難しくない【知識ゼロからのデータ分析入門シリーズ(4)】
第六週の内容はデータ可視化です。そこで、今回はダッシュボードの設計が難しいと思っている方、またはなかなかいい感じのダッシュボードが作れない方のために、書いていこうと思います。私の作ったものは完璧とは言えませんが、その経験をそのような悩みを持つ人と共有したらいいじゃないですか。
【本記事に出たダッシュボードはすべてFineReportで作ったものです。一部はデモサイトから、あとは自分の作ったものです。商用利用にはおやめください。】
ダッシュボードとは
ダッシュボードはウィキペディア(Wikipedia)では、下図のように一つの定義しかありません。ダッシュボードもともとは車の状態に関する必要な情報をドライバーに見せるために設計されたものです。そこから転じて、様々な情報ソースから集約した重要な情報を表示する画面をダッシュボードと呼びます。
BIツールや企業の管理システムでは、経営者やマネジメント担当者の意思決定のために、複数のデータソース(CRM、ERPなどの社内システムや市場·競合情報など)からのデータを統合した管理画面を「企業ダッシュボード」、「経営ダッシュボード」などと言います。
ダイバーが車のダッシュボードによって車を操縦するように、例えば、スピードを出し過ぎたを示す場合にスピードを下げる、企業は経営のダッシュボードによって経営状況を診断し、適切で迅速なアクションを取ります。
良い感じのダッシュボード
2012年に開催されたダッシュボード設計コンテストで、有名なデータビジュアライゼーションの第一人者Stephen Fewが優れたダッシュボードの特徴を公開しました。
皆さんの参考のために、以上の特徴を翻訳しました。適切ではないところがあるかもしれません。
上記の基準によって、設計したダッシュボードが合格するかを評価してください。
一般に、優れたダッシュボードが出来上がるように、エンジニア、UIデザイナーと業務部門が協力する必要があります。ひとりの場合、いくつかのポイントに従えば、いい感じのダッシュボードの作成は難しくないです。
上記の基準は抽象的なので、以下はダッシュボードの作成時に必要な要素を具体的に説明していきます。
ダッシュボードの作る方法
準備:
FineReportダウンロード:コチラ
ダッシュボード作成の素材ダウンロード:Googleドライブ-ダッシュボードの素材
下図の簡単なダッシュボードを例に作成のポイントを説明します。
①指標
経営者やマネジメント担当者にとって、一目瞭然の指標から業務本質を見抜き、意思決定を助けるダッシュボードは必要です。多すぎのチャートと指標を表示しますが、指標の間に関連がなさそうな可視化ダッシュボードはよく見られるでしょう。
正しく指標を立てるには四つの原則があります。
- 定量的指標と定性的指標
定性的指標より定量的指標を優先するのは一般的です。定量的指標は店舗の売上、年間契約率など数字で表示する指標です。定性的指標は過去経験に基づき、数値化が難しい指標(ポジション、顧客満足度)です。
- 経営目標に直結した指標と経営目標からかけ離れた指標
指標は部署と会社の目標に関するものでなければなりません。さもなければ、行動の道しるべになれないし、部署と企業の成長に何の役にも立ちません。
- 現状指標と予測指標
現状指標は現状を把握するための指標であるのに対して、予測指標は未来に何が起こるか予測する指標のこと。現状指標と予測指標が企業の運営状況によって設定されます。
- 相関関係指標と因果関係指標
相関関係と因果関係は統計学の二つの分析手法です。相関関係とは「一方の変数の増減にあわせて、もう一方の変数も増減する」関係のこと。こういう関係がある指標を一つのグラフ(例:折れ線グラフ+棒グラフ)に表示できます。一方、因果関係とは「Aが原因となってBという結果が起きる」関係のこと。こういう関係がある指標を一つのグループに表示したほうがいいです。
以上のデータを基づいて、全国の売上高を主要指標、地域別、販売員別、商品別などをサブ指標とされています。(データはFineReportビルトインのデータベースから取り出した)
②レイアウト
本を読むとき人の視線が上から下へ移して、それに真ん中は一番注目される位置なので、重要な指標を上または真ん中に置いたほうがいいと思います。
FineReportのキャンバス式のデザイン画面で、各コンポーネントを画面にドラッグし、別々に設計します。コンポーネントはお互いに影響しませんが、主要情報とサブ情報間の関係によってコンポーネント間の連動を実現できます。
企業システムの場合、データベースがいつも更新されるので、必要に応じて各コンポーネントのデータ更新の頻度を設定しておいてください
下記は、指標が多くて複数の階層がある場合におすすめのレイアウトで、伝えたい情報を明確にすることができます。
資料提供:FineReport
③配色
合理的なレイアウトによって業務指標をより階層的に表示する一方で、合理的な配色によって見た目を向上させます。
背景色として、白などの浅い色より、黒、青藍などの暗い色のほうは効果がいいと思います。
見出しとグラフが目立つように、テキストを浅い色に、グラフをやや明るい色に変更します。
また、暗い画像を使ってもいいです。透明度を10%ぐらいに設定することはもっといい効果をもたらします。
④グラフ
指標と伝えたい情報を元に適切なグラフを選択してください。単にオシャレなチャートを選択すると、意味不明のダッシュボードになります。
実例では、縦棒グラフ、円グラフ、地図の三種類のグラフしかありませんが、指標を明確に表示しています。経営層にとって、一番知りたいのは全体的な状況で、そのあとは地域別、商品別や販売員別の状況なので、見やすい数字カード、縦棒グラフと円グラフを使用しました。地域別の売上データを直感的に表示するために、全体の売上高は地図に重ねて表示します。
グラフの選択が苦手な方は記事1つの図でわかるグラフ/チャートの選び方を参照してください。
⑤動的効果
静的なダッシュボードに活気がないと感じられるので、動的でインターラクティヴな効果を追加します。
実例では、地域別に売上高を分析したいので、地図を利用しました。都道府県をクリックすると、ほかのグラフのデータはそれとともに変化します。
必要に応じてほかの動的効果を加えてもいいです。
動的効果②
資料提供:FineReport
⑥飾り
真ん中の見出しをよりはっきりさせるために、その両側に画像を追加します。
ほかの指標を区別するために、見出しとコンポーネントの背景画像を設定します。最終的に以下の効果になります。
最終的に以下の効果になります。
データの整理と集約がデータアナリストとエンジニアにとって難しくないことですが、それだけじゃ優れたダッシュボードになれないでしょう。以上に挙げてみたポイント、ぜひ参考にしていただきたい。
効率的にダッシュボードの作成、データの分析などをしたい場合、FineReportをお勧めします。本記事の実例はただ作成のポイントを挙げましたので、ほかのステップを省きました。詳しいのはFineReportのヘルプドキュメントをご参照ください。
以上はQiitaに公開した記事です。
初心者が押さえておくべきSQLガイド【知識ゼロからのデータ分析入門シリーズ(3)】
本記事と
は十週間で知識ゼロからのデータ分析入門の第三週の学習内容です。今後この学習計画について更新していきます。
この前はデータベースの定義とRDBMSのMySQLのインストール方法について説明しましたが、今日はデータベースの操作とSQLについて説明します。
SQL(Structured Query Language)はRDMBSにおいて、データベースの定義や操作を行うためのデータベース言語です。
(出典: フリー百科事典『ウィキペディア(Wikipedia)』)
ウィキペディアの定義通り、リレーショナルデータベース、とその中のテーブル、データの参照、変更、削除、計算などを行うために、SQLが必要です。
Oracle、DB2、Sybase、SQLServer、MySQL、MS Accessなどのデータベースは、SQLの構文が違いますが、基本的には同じです。市場に多くのセルフサービスBIツールがあって、ドラッグアンドドロップだけでデータ分析ができるにもかかわらず、データエンジニアまたはデータアナリストとして、少しでもSQLを理解しなければいけません。
市場にSQLに関する書籍やオンラインチュートリアルが増えているので、ここは、ただその学習の要点をまとめて共有したいです。
1.SQLクイック入門
知識ゼロからSQLを独学する際、よく2つの問題があります。
問題①:
SQL SeverかMySQLを学ぶ前にデータベースのソフトをインストールする必要があります。初心者にとって、データベースソフトのインストールは時間がかかります。最初仕事のトレーニングを受けた時、2日間SQLをマスターすることが要求されました。結局、SQL Severのインストールにほぼ1日かかってしまいました。前の記事でそれほど複雑ではないMySQLのインストールを紹介しました。
問題②:
最初SQL構文をたくさん暗記して、でも実際に使う時何もできません。私からいうと、練習しながら覚えることは一番効率的な方法です。 Excelの関数と同じように、その意味と使い方を大体理解した上で、実際使う時にW3cschools(オンライン学習サイト)で調べれば、だんだん身に着けるようになります。
SQL学習
方法①:
MySQLをダウンロードしてインストールしてからビルトインのデータベースを利用して、W3cschoolsに従って練習します。(英語が苦手な方は言語で日本語を選択してください。)
方法②:
無料のオンラインコースを勉強します。二つのサイトをお勧めします。
このサイトは昔は英語と中国語のバージョンしかありませんが、今一部の内容に日本語のバージョンも利用できます。練習問題と段階的なクイズが用意されており、SQL文を入力してその実行結果を見ることができます。また、覚えない時、Referenceで調べられます。
SQL Tutorialと同じく、SQL文を入力してその実行結果を見ることができる一方、解説はとても詳しくわかりやすくて、練習問題を解く際、入力欄や実行結果と一緒に見本や解説も見ることができます。
2.データベースの基本操作
①既存のデータベースを表示する
SHOW DATABASES;
②データベースを新規作成
CREATE DATABASE <database_name>;
③データベースを選択する
USE <database_name>;
SOURCE <.sql file path>;
⑤データベースを削除する
DROP DATABASE <database_name>;
3.テーブル
①既存のデータベース内のテーブルを表示する
SHOW TABLES;
②テーブルを新規作成する
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
各列のデータタイプ(後述)を指定する必要があります。
- INTEGER 整数
- NUMERIC 任意の精度を持つ数字
- CHAR 固定長の文字列
- VARCHAR 可変長の文字列
- DATE 日付
③テーブル内の列の情報を表示する
DESCRIBE table_name;
④既存のテーブルにレコードを追加する
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
カラム名を省略する場合もあります。それで、値が順番にすべてのカラムに追加されます。
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
⑤既存のテーブル内のレコードを変更する
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
⑥テーブル内のレコードを削除する
DELETE FROM table_name
WHERE condition;
⑦テーブルを削除する
DROP TABLE table_name;
⑧既存のテーブルにカラムを追加、削除、または変更する
- カラムを追加する
ALTER TABLE table_name
ADD column_name datatype;
- カラムを削除する
ALTER TABLE table_name
DROP COLUMN column_name;
- カラムを変更する
ALTER TABLE table_name
ALTER COLUMN column_name datatype;
⑨テーブル名を変更する
RENAME TABLE table_name1 to table_name2;
4.データ検索クエリ
①SELECT
テーブルから指定するカラムのデータを選択する
SELECT column1, column2, ...
FROM table_name;
テーブルのすべてのデータを選択する
SELECT * FROM table_name;
②SELECT DISTINCT
重複値を含めないデータを選択する
SELECT DISTINCT column1, column2, ...
FROM table_name;
③WHERE
先、既存のテーブル内のレコードを変更する時、条件を特定するためのwhereを使いました。
where条件は通常以下のようになります。
- 文字列での比較(text)
- 数値での比較(numbers)
- AND、OR、NOTなどの論理演算
例:
SELECT product_name, product_type
FROM Product;
WHERE product_type = 'clothes';
④GROUP BY
GROUP BYを使うと特定のカラムをキーにした合計値や平均値などが表示される結果となります。一般的に集計関数(COUNT、MAX、MIN、SUM、AVG)と一緒に使用されます。
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s);
- COUNT:テーブル内のレコード数(行数)を計算する
- SUM:テーブルの数値列のデータの合計値を計算する
- AVG:テーブルの数値列のデータの平均値を計算する
- MAX:テーブル内の任意のカラムのデータの最大値を求める
- MIN:テーブル内の任意のカラムのデータの最小値を求める
GROUP BYとWHEREを一緒に使用した場合のSELECT文の実行順序:
FROM → WHERE → GROUP BY → SELECT
例:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
⑤Having
Havingは集計関数と一緒に使って、カラムを集計した結果を特定する条件です。HavingとWHEREを区別しなければいけません。
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
例:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;
⑥ORDER BY
ORDER BYは取り出した結果をソートします。ASC(昇順)またはDESC(降順)を指定しないと、既定は昇順になります。
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
⑦BETWEEN
BETWEENはWHEREと一緒に、指定した範囲のレコードを検索するために使用されます。
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
⑧LIKE
LIKEで特定の文字列の検索を行うことができます。
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
LIKEと組み合わせで使用される2つのワイルドカードがあります。
- % —— 0文字以上の任意の文字列
- _ —— 任意の1文字
具体的な使い方は以下の通り:
⑨IN
WHEREと一緒に使って、複数の値を指定することができます。
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
⑩JOIN
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
JOINは、二つ以上のテーブルの値を組み合わせるために使用されます(テーブル間に関連がある場合)。 下図は、4種類のJOINを示しています。
⑪ビュー
ビュー(View)は仮想的なテーブルのことです。 通常のSQLテーブルと同じように、レコードとカラムを含めています。 ビューは常にデータベース内の最新のデータを表示します。
- ビューを作成する
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
- ビューを削除する
DROP VIEW <view_name>;
⑫サブクエリ
既存のテーブルを加工した物からデータを取り出したい場合、サブクエリは役に立ちます。
例えば、2018秋と2019春に開かれるコースを検索する場合:
SELECT DISTINCT course_id FROM section WHERE semester = 'Fall' AND year= 2018 AND course_id IN( SELECT course_id FROM section WHERE semester = 'Spring' AND year= 2019 );
以上はQiitaに公開した記事です。
誰でもすぐわかるデータベース基礎の基礎【知識ゼロからのデータ分析入門シリーズ(2)】
【学習計画】十週間で知識ゼロからのデータ分析入門で第三週がデータベースとSQLを学ぶことです。今回はデータベースの構造から始まり、人気のオープンソースのDBMS製品MySQLの使い方についてまでご紹介していきたいと思います。
オンラインでも書籍でもExcelに関するものが豊富で、一つを選らんで勉強すればだんだん身につけるようになるので、ここは詳しい説明しないことにしました。
データベースとSQLは、大量データの処理や自動化できないなど、Excelの解決できない問題を簡単に解けるだけではなく、ほかのデータ分析ツールとの架け橋にもなれます。だから、データベースとSQLについて、二回に分けて詳しく説明してたいと思います。今回はまずデータベースで、次回はSQLのこと。
1.そもそもデータベースとは?
データベース(DB、Database)は複数のデータを保存するところで、つまりデータ集合です。このデータ集合内のデータを抽出したり、編集したりすることができます。Excelと違うのは、膨大なデータを一瞬にして自動的に整理してくれて、手動で管理する必要がなくて、しかもすべでのデータがみんなに共用使用できて、別々に編集することによる更新漏れを避けることです。
現在、コンピュータ上でデータベースを管理するシステム(DBMS:Database Management System)のことや、そのシステム上で扱うデータ集合のことを、「データベース」と呼ぶことが多いです。
以下は現在主流となっている「関係データベース」について解説します。
関係データベースは、一つあるいは複数のテーブルを含めて、各テーブルに行と列があって、毎行に唯一のIDがあります。それはExcelと似ていますが、データベースのテーブル間に関係が存在しています。従って、データベース=複数のテーブル+テーブル間の関係という等式になります。
上記の関係から、関係データベースの構築には二つの方面から考える必要となります。
1.1 テーブルの構造
各テーブルに名前があり、列にそれぞれの項目名を設定し、行にデータを記録します。例えば、下図の「学生番号」というテーブルです。
フィールド「学籍番号」は上記のテーブルの識別子と設定されます。同姓同名の学生がいるかもしれませんが、学籍番号が異なるので、ひとりの学生を特定することができるからです。このようなフィールドがテーブルの主キーと言います。
1.2 テーブル間の関係
関係データベースがテーブルの集合で、同じデータベース内の複数なテーブルがお互いに結びついています。下図に示すような「学籍番号」と「学科」テーブルです。
「学籍番号」と「学科」は「学籍番号」によって関連付けられます。対応するデータベースでの操作がjoinです。このように2つのテーブルを組み合わせることによって、例えば、学生「伊藤尚」がどの学科に所属しているか調べることができます。
2.関係データベース管理システムMySQL
2.1 MySQLの特徴:
(1)MySQLはオープンソース(OSS)のRDBMSで、商用利用の場合はライセンスの購入が必要です。
(2)C言語、Java、R、Python、 PHP、Rubyなど多数の言語にて開発可能(ODBC、JDBC共に対応)
(3)標準的なSQL言語を使用しています。
2.2 MySQLのインストール
ダウンロード: https://dev.mysql.com/downloads/windows/installer/8.0.html
二番目をダウンロードします。
ダブルクリックしてインストールを開始します。
承認して「次へ」をクリックします。
一番目を選択します。「Next」をクリックします。
以下の画面が出るまで「Next」をクリックします。「Execute」をクリックします。
データベースのrootパスワードを入力します。これをしっかり覚えてください。
「Add User」をクリックして、ユーザ名とパスワードを入力します。
「Next」か「Execute」をクリックします。以下の画面でさっき設定したrootのパスワードを入力します。
「Finish」が出るまで「Next」か「Execute」をクリックします。「Finish」が出ると、MySQLのインストールが完了です。
「Wordbench」を起動します。local を選択し、rootのパスワードを入力します。
MySQLにビルトインのデータベースがあります。以下の画面でSQL文でデータを抽出できます。
3.データ分析ツールとMySQLデータベースの接続
データベースがデータを保存する集合で、SQLでデータの抽出や集計などの簡単な操作を実現できますが、多角的な分析や高度な分析には、やはりデータ分析ツールでデータベースと接続し、ドリルダウン/ドリルアップ/ドリルスルーなどを行います。ここでデータ分析ツールFineReportでMySQLデータベースとの接続方法を説明します。
FineReportはほとんどすべてのデータベースに接続でき、複数のデータソースを一枚のテンプレートに関連づけます。一回接続すると、いつでも気軽にデータを取り出せます。手順は以下の通り:
JDBCデータ接続を新規作成します。
データベースタイプでMySQLを選択します。下図に示すよに、FineReportがSQL Server,Oracle、AccessやPostgreなどの主流データベースに接続できます。
ドライバがデータベースのタイプによって自動的に表示されます。URL、ユーザーIDとパスワードを入力して、「接続テスト」をクリックします。「接続成功」が表示されると、データベースとの接続が完了します。
それで、データクエリウィンドウでMySQLデータベースからデータを抽出できます。ほんとうに簡単でしょう?データを準備したら、帳票あるいはダッシュボードの作成を始めましょう~(FineReport無料ダウンロード)
以上はQiitaに公開した記事です。
データ分析に欠かせない五つの考え方【知識ゼロからのデータ分析入門シリーズ(1)】
知識ゼロからのデータ分析入門シリーズの第一週はデータ分析の考え方を養うことです。
データ分析の重要性が高まるにつれて、便利なデータ分析ツールや手法が次々に現れています。しかし、効率的にデータ分析を行うためには、一定の思考と手順の流れが必要とされます。それを知らないと、多機能の分析ツールや手法に振り回されて、「分析のために分析」になりがちです。
ルート(√)、因数分解、解の公式などの解き方で二次方程式を解けるように、データ分析にも「解き方」が存在してます。
では、早速データ分析に必要な五つの考え方を説明しましょう。
考え方①:因数分解
皆さんきっと因数分解による二次方程式の解き方を知っているでしょう。データを分析する際に、起きている現象を、いくつかのさまざまな切り口で因数分解することで、その現象を引き起こしている原因となっている要素を見つけ出すことができます。
ここで、ECサイトの売上公式を例に分析してみます。
1.商品売上=販売量×単価
2.販売量=販売チャネルAの販売量+販売チャネルBの販売量+販売チャネルCの販売量
3.販売チャネルの販売量=クリック数×成約率
4.クリック数=表示回数×クリック率
ステップ①:売上減少の要因を見つける。
商品売上=販売量×単価。販売量が低いか、それとも単価が低いか?
ステップ②:販売量をもう一歩分解してみる。
販売チャンネル毎の販売量を分析して、どちらが下げたかを確認します。
ステップ③:販売チャンネルの販売量減少の要因を分析する。
クリック数が低いか、それとも成約率が低いか?もし成約率が低い場合、そのチャンネルのターゲット顧客が商品のターゲット顧客に一致するかを再確認しないといけません。
ステップ④:クリック数に影響する要因を分析する。
表示回数が足りないか、それともクリック数が低い?クリック数が低ければ、広告内容を改善したらどうですか?
このように、ゴールを因数分解しながら、データ分析の深堀りによって、過程から結果に至るまでフローして評価するのです。データ分析が苦手な人が絶対この考え方を頭には入れておいた方がいいと思います。
そのほかの例:
(資料提供:FineReport)
考え方②:比較
これは普段無意識でやっている人も多いと思うんですが、ある数字がいいか悪いかっていうのは、比較することで判断できるものだと考えています。
孤立したデータには意味がなくて、データを比較して、どこが違いうのかをわかるようになります。長さ、高さ、幅など、物事の特徴を述べる変数がありますが、比較による得る増加率、効率、利益などの指標こそ、データを分析する際によく使われるものです。
- 時間軸での比較(前年比、前月比...)
- 競合相手との比較(競合他社との売上比較、社内のサービス間での利益比較...)
- ユーザ属性での比較(20代と50代、男性と女性、関東と関西...)
- カテゴリ間の比較(...)
問題が起きているデータと、問題が起こっていないデータを比較することで、違いがなにによって発生しているのかを発見できます。それはよく他のデータ分析方法と組み合わせて利用されます。
例えば、ウェッブページの『直帰率55%』という数字だけでよいか悪いかを判断するのは難しいです。この場合、他のデータと並べて見て、「直帰率が70%よりはいい」と比較することで、よいか悪いかの説明ができます。他のデータ”をどうやって得るのか?自分のサイトの同じ性質のページ同士を比較して、あるページが直帰率40%なのにあるページは90%なら、改善できる可能性を考えられそうです。
考え方③:4象限マトリクス
4象限マトリクスとは、横軸、縦軸をそれぞれの中心点で交差させた図表のもので、課題の現状と改善方法(例えば、商品分析、市場分析、顧客管理など)を説く際に使われます。コンサルタントが好んで使うことが多いです。
例えば、上記の広告効果測定はCTR、CVRの二つの要素を横軸、縦軸として、広告効果を四つの象限に分類して、それぞれに適切なユーザ獲得施策を打ち出すことで、広告効果を上げていくというわけです。
また、4象限マトリクスより複雑なRFM分析は実際にRecency (最終購入日)、Frequency(累計購入回数)、Monetary (累計購入金額)三つの要素を選択して軸にする8象限マトリクスです。
RFM分析については、以下のような一般的解釈がされます。顧客を9種類にグループ化した上で、、それぞれのグループの性質を知って、マーケティング施策を取れます。
Rが高い顧客ほど将来の収益に貢献する可能性が高い
Rが低ければFやMが高くても他社に奪われ離反している可能性が高い
Rが同じならFが高いほど常連客になっている
Rが同じならFやMが高いほど購買力がある顧客
RやFが高くてもMが少ない顧客は購買力が低い
Fが低くMが高い顧客はRの高い方が良い顧客
Fが上がらないか下がっている顧客は他社に奪われている可能性が高い
RFMすべてが低い顧客は切り捨てることも検討
考え方④:パレートの法則(80:20の法則)
パレートの法則は2割の要素が、全体の8割を生み出しているという状態を示す経験則です。例えば、皆さんご存知の通り、世界の富の80%は世界の20%の富裕層が所有しているという事実です。パレートの法則はさまざまな事象に当てはまるといっても言い過ぎではありません。
商品ABC分析もパレートの法則の一つの応用例です。つまり、商品の売上の8割は、全商品のうちの2割で生み出していることです。ABC分析で「売れ筋商品」や「死に筋商品」を割り出し、在庫管理や販促に活用します。
下図はFineReportで作成し、そのアプリに表示した商品ABC分析のダッシュボードです。
ABC分析では、商品と売上を区分するだけでなく、顧客とその取引額を区分することもできます。例えば、企業に 80%の利益をもたらした顧客はどのぐらいですか。20% と想定すると、リソースが限られている場合に、この 20%の顧客に重点を置く必要があります。
現代でビジネスにおいて使われるパレートの法則の例:
- 売上の8割は、全従業員のうちの2割で生み出している。
- 仕事の成果の8割は、費やした時間全体のうちの2割の時間で生み出している。
- Webサイトは、2割のページにサイト全体の8割のアクセスが集中する
- あるソフトウエアの利用者の8割は、全体の2割の機能しか使っていない
パレートの法則によって、物事の重点を捉えて、特徴を発見してから、残りの 80% を 20% に変換する方法を考えてください。
考え方⑤:ファンネル
ファンネルとは、新規顧客の獲得、商品とサービスの購買過程などをフェーズ分けしたものをモデル化したものです。それは「プロセス化」の思考法です。
上図のマーケティングファンネルは顧客の獲得から購入へのコンバージョンまでの全体的な流れを示しています。コンバージョン率で各ステップのパフォーマンスを定量化してから、異常な指標から問題が起きているステップを発見することができます。それから、問題を解決して、そのステップを最適化して、最終的に購入のコンバージョン率を向上させる目的に達するのです。
実際に、ファンネルモデルのコールは分解と定量化にあります。グロースハックにおいて、最も有名なモデル「AARRR(アー)」モデルは同じくファンネルです。サービス全体をユーザの行動に合わせた5段階のステージに分け、各段階の離脱率をファネルの形で整理したものです。
以下のAARRR モデル図はユーザ全体のライフサイクルが徐々に減少する傾向を示しています。ユーザのライフサイクルを分解して定量化することによって、データを横方向と縦方向で分析できます。それによってどの段階に問題が存在するのかが明確になり、最適な施策を打つことが可能になります。
しかし、単一のファンネル分析は何の結果も得られないので、競合相手との比較、カテゴリ間の比較など、他の方法と組み合わせる必要があります。
下図の通り:
(資料提供:FineReport)
まとめ
上記の五つの考え方の役割をまとめます。実際の状況に応じて活用してみてください。
①因数分解:あるゴール、指標に影響する要素を見つけ出し、過程から結果までフローして評価する
②比較:データ間の違いそして違いがなにによって発生しているのかを発見する。
③4象限マトリクス:課題や問題をいくつかのパターンに分類して理解することで、細かい管理を実現する。
④パレートの法則:物事の重点を捉えることでリソースを集中して主な問題を解決する。
⑤ファンネル:全体のプロセス化、定量化および可視化によって、どの段階に問題が存在するかを明確化する。
以上はQiitaに書いた記事です。
*1:資料提供:https://growthhackjournal.com/
*2:資料提供:https://images.app.goo.gl/J2otUSWcLyK3avzy7
十週間で知識ゼロからのデータ分析入門
- 学習計画
- 第一週:データ分析の考え方を養う
- 第二週:Excel上級
- 第三週:データベースの原理とSQL
- 第四週:数理統計学
- 第五週:データ分析ソフトの運用
- 第六週:データ可視化
- 第七週:よく使われるビジネスモデル
- 第八週:Python/R言語
- 第九週:ビジネス理解と指標設計
- 第十週:グロースハッカー(Growth Hacker):データを成長の原動力とする
「文学系の人はデータ分析に向いていますか」
「プログラミング経験がありませんが、データアナリストになれますか」
「データ分析を勉強するなら、RとPythonを勉強しなければならないですか」
などはよく聞かれる話です。
実際にデータ分析は皆さんの想像以上に難しくありません。私の知り合いにHRまたはマーケティングからデータ分析に転職した人は少なくありません。データ分析において、データ分析ツールとプログラミングなどのデータ分析手法より、問題点に対する認識、分析の考え方と流れおよび結果の解説は重要なものです。
かといって、短時間で優秀なデータアナリストになれるわけではありません。データ分析の基礎知識を振り返えて、十週間ぐらいの学習計画に要約しました。ぎっしり詰まった内容ですけれども、決意を持っている方はこの計画に従ってちゃんと勉強すれば、完成できるはずだと思っています。
学習計画
- データ分析の考え方と方法
- Excel上級
- データベースとSQL入門
- 統計学
- データ分析ソフトの運用
- データ可視化
- よく使われるビジネスモデル
- Python/R言語
- ビジネス理解と指標設計
- グロースハッカー(Growth Hacker):データを成長の原動力とする
第一週:データ分析の考え方を養う
なぜデータ分析の考え方は重要ですか?
例えば、問題点を分析する際に、考え方がなければ、どこから着手すればいいのかわからないでしょう。
従って、データ分析の考え方を養う必要があります。このように、問題にあった時、素早く分析の切り口を見いだせるのです。
よく使われる思考モデル:
1)ピラミッドストラクチャー
問題を分類して、分解して、全面的に問題を考えること。まず思いついた要素を書いて、それからピラミッドモデルにまとめます。マインドマップで自分の考え方を記すのを推薦します。
これは私の使用しているマインドマップのソフトです。
2)数式化
構造化してから、要素間の相互関係を見つけて、+、-、×、÷などの計算をしてみます。これらの要素を数値化して分析することで、仮説を検証することができます。
3)ビジネス理解
データ分析の一つの目的は業務状況を踏まえて、その具体的な状況と結び付いて分析を行って、それに分析の結果をビジネスに運用することです。「構造化+数式化」した結論は所詮現象であり、結果を起こす原因を説明しません。だから、ビジネス観点から問題点を考えて、結果の背後に潜む原因を究明するのも大事です。
ビジネスの理解を深めるステップ:①業務部門との交流を強化する②ビジネス(業務部門と顧客)観点から考える③経験を積み重ねる
また、このような思考モデルは特定の業務シーンで、象限法、多次元法、仮説法、インデックス法、28法、対比法、ファンネルなどのデータ手法と結合することが多いです。これらの手法は分析モデルの構築を助けます。
思考モデルの利点は、物事や問題の視点を構築するのに役立つ視点や考え方の仕組みを提供することです。思考モデルの学習と訓練によって、成功の可能性を増やします。
第二週:Excel上級
Excelの学習はステップバイステップ(Step by step)の過程です。
基礎:簡単な表のデータ処理、フィルタリング、ソート
関数と公式:共通関数、高度データ計算、配列式、多次元参照、function
可視化グラフ:グラフィックアイコン表示、高度チャート、チャートプラグイン
ピボットテーブル、VBAプログラム開発
私のやり方は、基礎知識をおおむね勉強した上で、事例で練習することです。 よくどのようにエクセルの活用で問題を解決するかを考えてください。チャートプラグインの活用も必要とされます。
1) データ分析のテンプレートの作成に必ず身に着けるExcel関数:
日付関数:day,month,year,date,today,weekday,weeknum。日付関数はデータ分析に必須な関数です。それによってデータの表示を制御し、指定する範囲のデータを検索することができます。
数学関数:product,rand,randbetween,round,sum,sumif,sumifs,sumproduct
統計関数:large,small,max,min,median,mode,rank,count,countif,countifs,average。平均値、最大値、最小値、中央値などはよく使われる関数です。
クエリと参照関数:choose,match,index,indirect,column,row,vlookup,hlookup,lookup,offset。
vlookup関数が使いこなせないと、やや複雑な帳票を作成できません。
テキスト関数:find,search,text,value,concatenate,left,right,mid,len。テキスト関数はデータの整理段階に使用されます。
論理関数:and,or,false,true,if,iferror。
2) ピボットテーブル
ピボットテーブルの役割は、大量のデータをインタラクティブなレポートに転化することです。ピボットテーブルには、以下の重要な機能があります。
小計、平均値、最大値、最小値、自動ソート、自動スクリーニング、自動グループ化、比率、前期比、同期比、カスタム数式
第三週:データベースの原理とSQL
データはどこから取得しますか?——データベースから。
データをどう取り出しますか?——SQL。
入門の段階で、データベースを習熟しなくてもかまいません。常用するデータベースのタイプを知って、そしてデータのクエリ、再エンコーディング、追加および整理をマスターすることが優先です。また、データの並べ替え、データの交差、データの変換、データテーブルのマージなどもマスターしたほうがいいです。データのインポートとエクスポートならほかのツールを利用できます。データベースへの接続には、ODBCやその他のインターフェイスを使用できます。
https://prog-8.com/languages/sql
Progateは、スライドによるレッスンで基礎を学び、オンラインエディタでプログラミングをして実行結果を見ることができます。SQLの学習は三つのコースに分かれて、学習完了後に実践的な演習問題があります。
ここでコアなスキルを挙げます。
1) selectでフィールドを追加し、必要なデータを見出す
select cola,colb,colc into newtable from oldtable wherecola=’x’ and colb is not null;
この文をほとんどのデータの検索に使えます。
「select」の後ろはフォードです。「into newtable」は新しいテーブルに入れることを指します。新しいテーブルがない場合、データを検索します。「where」の後ろは条件です。
select cola from oldtable group by colaもよく使われます。
次はjoin、unionおよび曖昧検索です。
2) alterでフィールドを追加し、削除する
alterでフィールドと主キーの追加と削除を実現でき、とても有用です。
a:フィールドの追加
alter table tablename add colname varchar;
ヌルのフィールドを追加できます。varcharはデータのタイプです。
b:フィールドの削除
alter table tablename drop column colname;
3) updateでデータを更新する
a:一つの固定値に更新する
update table set col=1;
b:ほかのテーブルからデータベースを導入し、更新する
update table set col=tableb.col from tablebwhere table.id=tableb.id;
これは「table」と「tableb」の二つのテーブルのidを関連することです。
第四週:数理統計学
統計学はデータアナリストに必要な基礎知識だといえます。
データを抽出してから、解決すべき問題は:
最も一般的で予測可能な観察は何ですか?
観察の制限は何ですか?
データはどのように見えますか?
以上の問題を解決するには、統計ツールを使う必要があります。統計学をよく利用すれば、分析の深さと専門性を高められます。
従って、第四週に身に着けるべき知識は以下の通り:
1) 中心化傾向(中央値、モード、平均)
2) 変動(四分位、四分位範囲、異常値、分散)
3) 正規化(標準得点)
4) 正規分布
5) 標本分布(中心極限、標本分布)
6) 推定(信頼度、信頼区間)
7) 仮説検定
8) t検定
https://bellcurve.jp/statistics/course/
このサイトで統計学の知識(初級編、基礎編、中級編)とオンラインでの練習があります。
第五週:データ分析ソフトの運用
統計学の基礎知識を勉強したうえで、データの分析を開始できます。
第五週にExcel以外の分析ツールをマスターしなければなりません。
ここでSPSS、R、Pythonなどのツールはさておき、まずBIツールを勉強しましょう。BIツールによって、整理されたデータを短時間で分析し、Excelよりよっぽどいい効果を呈します。ほどんどの初心者にとって使いやすいと思います。
また、BIツールでデータの変換と加工もできます。でも、BIツールをあまり上手に使えない場合、やはりSQLで処理したほうがいいです。
第六週:データ可視化
データ可視化は簡単なデータ分析の過程なわけではありません。
どう適当なチャートを選択します?傾向、分布、周期、場所などを考慮しなければいけません。
見た目のいい可視化効果には、色、フォントなどのスタイルを設定する必要があります。
一番重要なのは、レイアウトの設計、つまりテーマ、指標間の関係および可視化の目的を明らかにすることです。
データを可視化するには、以下の四つの方法があります。
-
Excelのビルトインチャートで通常のチャートを作成します。 ダイナミックチャート、フィルタリング表示などの複雑なものなら、VBAで実現できます。
-
RやPythonなどのデータ分析言語を利用して、データを視覚化するためのチャート関数パッケージを呼び出します。
-
Echarts、HighCharts、D3.jsなどのオープンソースのチャートプラグインを統合します。これはソフトウェア製品とツールを開発する時によく使われる方法です。
-
データ可視化ツール。例えば、FineReportの独自開発のHTM5グラフと動画はほとんどの可視化ニーズを満たせるといえます。特に、gis地図マップですごくオシャレな可視化効果を出せます。必要があれば、サードパーティーのEchartsを統合することもできます。
データ可視化ツールの選択について、ビッグデータ可視化ツールを使えば無敵—8選一挙紹介!をご参照てください。
資料提供: FineReport
第七週:よく使われるビジネスモデル
象限法、多次元法、仮説法、インデックス法、28法、対比法、ファンネルなどのデータ手法に基づいて、特定の業務シーンには共通なビジネスモデルがあります。よく使われるモデルはRFMモデル、ファンネル分析、顧客ライフサイクル、バスケット分析です。また予測分析とクラスター分析などのデータマイニングモデルがよく利用されるデータマイニングモデルです。
第七週に分析モデルをマスターすること。深く理解すれば、今後の業務シーンに活用できます。
前にnoteに掲載され、今書籍した「ビジネスモデル2.0図鑑」はわかりやすく最新の100個のビジネスモデルを解説しています。noteに全文が公開されています。
https://note.mu/tck/n/n95812964bcbb
第八週:Python/R言語
データ分析能力の向上と就職活動の成功のために必ずPython/R言語を習得すべきです。
データ解析用のプログラミング言語はPythonとRです。 R言語は、統計分析や描画などに向いています。 Pythonは人気、実用性、使いやすさの点で最高の言語と思いますから、まずPythonの学習をおすすめします。
Pythonに多くのブランチがありますが、ここのテーマはデータ分析なので「Head First Python ―頭とからだで覚えるPythonの基本」をおすすめします。
学習サイトならCode Academyをおすすめします。それはPythonに関する基本知識と練習を含めており、とりあえずすべての練習を完成しましょう。https://www.codecademy.com/catalog/language/python
次に、Numpy、Pandas、Matplotlibの三つのライブラリを身につけます。
Numpyは、Pythonによる科学計算の基本パッケージです。Numpyをよく理解すれば、Pandasなどの他のツールを効果的に利用するのに役立ちます。 N次元配列、インデックス、配列スライス、整数インデックス、配列変換、一般関数、配列によるデータの処理と一般的な統計手法などが含まれます。
Numpy Basics TutorialでNumpyの関数とその使い方調べられます。https://docs.scipy.org/doc/numpy-1.15.0/user/basics.indexing.html
Pandasには高度なデータ構造と操作ツールが用意されているため、Pythonのデータ分析をより迅速かつ容易に行うことができます。series、data frams、axisからのデータの削除、損失データの処理などが含まれます。
Index PandasでPandasを勉強できます。https://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.Index.html
Matplotlibは強力なPython可視化ライブラリです。 数行のコードで散布図、折れ線グラフ、ヒストグラム、ボックスプロットなどを描画できます。
第九週:ビジネス理解と指標設計
前八週の学習内容から見ると、この計画はビジネス向けのデータ分析を重んじることがわかります。しかし、ビジネスの理解に近道がなくて、すこしずつ学ばなければいけません。入門の段階においてやはりロジックとデータ分析の能力の向上に力を入れたたほうがいいと思います。一週間で各業界に共通する指標を勉強すれば十分です。
あとは指標システムの設計です。 ほとんどのデータ分析職に「部署のデータの指標システムの確立と最適化する」という仕事内容があります。 優れたデータの指標システムは、データニーズを迅速に解決できるだけでなく、データの価値を掘り出して、現時点で最も対処すべき問題を反映します。 したがって、今週はビジネス指標を整理する考え方を習得しなければなりません。
第十週:グロースハッカー(Growth Hacker):データを成長の原動力とする
データアナリストとして、会社に貢献するには、まず自分の価値と未来の進路を明確にしましょう。
例えば、最近とても流行っているデータアナリストの一種はグロースハッカー(Growth Hacker)で、仕事がデータの分析でグロースを駆使させることです。
今週、伝統産業とWeb業界におけるデータを企業の成長の原動力とする成功事例を学習し、それに以下の問題を考えてください。
1.グロースハッカーになるために何の準備をしおかなければいけませんか?
2.仕事の際、他人にデータを提供してばかりいることをどう避けますか?
3.どうデータ活用を推進して、データの価値を最大限で発揮しますか?
4.どう周りの人と経営層がデータの価値に対する認識を変えますか?
以上はQiitaに書いた記事です。
データ分析や可視化についてもっと知りたい方は、お気軽にフォローしてください。