asaのブログ

プログラミングの勉強まとめ

プログラミングを使った市場分析の方法2

 前回市場分析の目的を明らかにしました。

 14項目を調べてそれをもとにして戦略を決定する作業が市場分析でした。それでは上から順に分析方法を調べたり、やってみたり、実装してみたりといった作業に入ります。

 前回ターゲットとして書籍市場と美術品市場をあげていました。が、今回オークションの研究と合わせて行いたいと思って書籍市場を除けました。

 

f:id:asa_r:20171104133845p:plain

 

 ■分析項目

 まず市場分析の分析項目をWikiで参照しましょう。一般的に市場規模というと売上総額を指しているようですが、他にも顧客数も市場規模に含まれますし、顧客数が入るのであれば企業数も参考にした方が良いでしょう。

 そこで今回調べるのは以下の項目です。オークションの分析に使いたかったので今回は美術品オークションの規模を測るのに終始するとしましょう。

  • 美術品市場の売上総額
  • 美術品市場の顧客数
  • 美術品市場の企業数

 ■分析手法

 市場規模の分析手法にはいくつかの方法があります。

 本来であれば今ターゲットとしている市場の全員に対して、いくらで何をどのくらい買ったのかといった全数調査をする必要があるでしょう。それが分かれば正しい市場規模を知ることができます。

 が...日本における市場規模を調べるにしても128057352人調べる必要があります。福岡県だと5071968人の調査が必要です。(平成27年国勢調査

 全数調査は基本的に行えないことを念頭にして、市場規模はどれくらいだろうかということを調査していきます。

 分析手法としては以下にあげるものがあります。

  • 任意の企業の売上高とシェアから算出
  • 任意の上位プレイヤーの売上高とシェアから算出
  • 顧客数×顧客単価×購入頻度

などのフェルミ推定を下にした分析手法や

マーケティングモデルを応用した分析手法があります。

 1次データを取るのはなかなか難しく、今回は2次データを下に美術品市場の市場規模を見ていきます。

 

■美術品市場の市場規模

 美術品の市場規模は”日本のアート産業に関する市場調査(2016)”によると全体で2431億円です。内オークションチャネルからの購入は国内で148億円、国外で44億円となっています。

 美術品を全く購入しない人がこの調査によると、調査対象の74.4%ですから、何らかの美術品を購入する人は25.6%になります。

 オークションチャネルに存在するプレイヤー数はこの調査からは分かりません。

 従って求めたかった市場規模の概観(2016)は

  • 美術品市場の売上総額:192億円
  • 美術品市場の潜在顧客数:32494080人
  • 美術品市場の企業数:不明

となります。顧客数は2016年10月1日における日本の人口に美術品を購入する人の割合をかけて推定しています。チャネル別の人口はここからは分かりかねます。

 ただ狭いですね〜。ついでに世界の美術品市場については

 https://www.tefaf.com/home

で調査を行なっています。

プログラミングを使った市場分析の方法1

 プログラミングを使った市場分析をしばらく取り扱ってみたい思います。

 ネットや書籍を調べても分析のフレームワークや手法が概念だけ示されていたり、相互の関連がどのように繋がっているのかが分からなかったのでこれをまとめ行こうと思います。

 本記事はしばらくの間

 ”データから分析までの具体的な流れを把握すること”

 ”それをプログラミングに落とし込んでいくこと”

 ”分析のベストプラクティスを発見すること”

 ”ゲーム理論を分析の実践まで使うこと”

を目的として進めていきます。最後の目標が一番大きかったりします。市場分析という巨大な分野をゲーム理論で統一的に記述できたら嬉しい限りです。

 ターゲットととする市場は今回好きなものを選びました。

 ・美術品市場

 ・本

 美術品市場の分析はかなり難しいものになりそうでしたので、本の市場との並行処理でこなして行こうと思います。

 使用する言語は

 ・C++

 ・R

辺りを使っていきます。また、GUIを構築する際はQtを使います。

 

市場分析

  1. 概略

 まずはWikiを調べてみました。市場分析とはそもそも何を知るためのものなのでしょうか。そこから振り返りましょう。

 まずマクロ的な要素を取り出してみました。これだけ知ることができれば各プレイヤーの立ち位置がどこなのか、現状はどうなっているのかを知ることができます。

  • 市場規模
  • 市場の成長率
  • 市場におけるシェア
  • 市場のセグメント
  • 主要プレイヤー
  • 市場の動向
  • 市場のコスト構造
  • 流通経路

 次に市場のプレイヤーが市場分析で知りたいこと、ミクロ的な要素を取り上げます。

  • 成功要因の抽出
  • 市場の採算性
  • 市場機会
  • 強み弱み
  • 事業継続性
  • ターゲット市場のシェア

Wikiに上げられているのはこのくらいです。

 他にもプレイヤーによっては市場分析で何を知りたいのかが変わってくるでしょう。個人的にまとめるなら、プレイヤーが打った戦略が有効か、戦略的行動によってどのように市場が形成されるかという記述的側面と、どう振る舞うべきかという規範的側面を明らかにするために分析するのだと考えられます。

 概略はこの程度でいいでしょうか。少し他のサイトも調べてみると重要な点が抜けていました。自社が誰と市場内で戦略の打ち合いをしているのか知らないと、そもそも戦略の分析をすることもできませんね。なので、市場分析によって知りたいことには

  • 顧客
  • 競合

についても加えられます。以上で市場分析で知りたいことが何なのかが分かりました。

 

f:id:asa_r:20171104133845p:plain

 

 市場分析は以上の14項目を入力に戦略を出力する作業と捉えることができます。

 漠然と市場分析するぞと考えているとアウトプットがぐちゃぐちゃになってしまうでしょう。誰とどのようなルールでゲームをしていてという意識は常に持っておく必要があるのが分かります。

 

■参考

 

OpenGL ウィンドウ表示までのテンプレ

 毎回同じコードを書くのが億劫なので、一部をテンプレ化しました。ここは実際描画にはあまり関係ないのでさらっと流してしまっていい気がします。

 ちなみにglmは計算用のライブラリです。必要に応じてインクルードします。 

gist69c5f12f4e840125832752093c795849

 

OpenGL 初めてのGLFW&GLEW

 これまでGLUTを使っていましたが、新しいバージョンに対応したOpenGLを使いたかったのでGLFWとGLEWを使って見ました。

 

 こちらのテキストを参考にさせていただきました。ただ四角形を表示させるだけなんですがかなり骨が折れます。

 http://marina.sys.wakayama-u.ac.jp/~tokoi/GLFW.pdf

 

  挙動はこんな感じです。

 

f:id:asa_r:20170829184312g:plain

 

 コードは下の通りとなりますが、これで何かしたかというとそうでもありません。いつも使うようなテンプレができたくらいです。

 

giste30ed3c7ea6dbed37e1e3680f39d77fc

  

OpenGL Bezier曲線

 ベジエ曲線の自分のチートペーパーを作成しました。ついでにOpenGLでそれを実装してみました。

 

 まずチートペーパーから

f:id:asa_r:20170827105639j:plain

 

 ベジエ曲線は所与の線を t : ( 1 - t ) に内分し、それをさらに内分して内分して…を繰り返して最終的な点を求めていきます。結果としてtに依存するn次曲線が得られます。各点に与えられる重みを一般化するとBernstein基底関数を得ます。これを元にベジエ曲線は最終的に最後の行の式にまとめられます。ええ、簡潔でいい式です。

 

 一度感覚を掴むと簡単に理解できますが、いまいちピンと来ない時は下のリンクが役に立ちます。曲線が描かれる様子をアニメーションで見ることができるので直感的に理解できます。

blog.sigbus.info

 

 で式が理解できても実装できないとなんの意味もないので少し描いてみました。素直にそのまま書いてみたので、ベジエ曲線ってどんなものだっけと忘れた時に役にたつかもです。

 

 コード

gistf67c50c45b3d50609fd1ac296cae6b17

 

 ベジエ曲線は次のようになります。

f:id:asa_r:20170827111933p:plain

 

 実際の描画点の計算は次のようになっています。t、x、yの順番に出力されています。

 

f:id:asa_r:20170827112108p:plain

 

MacでOpenGL環境の導入 with Xcode

 更新が途切れ途切れになっていましたが、引っ越し後のバタバタも去り大体のイベントを消化し、後のことも大体の目処がついたのでようやく落ち着いてコードが打てるようになりました。

 

 というわけで今回はずっとやりたかったGLSLに取り組むためOpenGL環境を整えたいと思います。具体的にはGLFWとGLEWを導入します。実際に実装するのはQtでも構いません。Qtをしばらく勉強しましたが、クロスプラットフォームGUIを構築できるQtはかなり便利です。さらにQtではOpenGLのサポートが厚いです。ただ、例えば単体で少し何かを動かしてみたいと思った時には床井先生もおしゃっていますがQtは少しカロリー高めです。

 

 環境構築にかかる時間は正味で少し調べたりすると大体30分程度かかりますが、手順通りやると10分程度で終わります(Xcodeが導入済みとして)。GLFWとGLEWを導入すると今後あげるリンクにあるチュートリアルを実行することができます。またリファレンスを辿ればそのほかの機能を十分に使うことができそうです。

 

 手順

    1. Homebrewのインストール

    2. GLFWのインストール

    3. GLEWのインストール

 4. Xcodeの設定

 

 1.Homebrewの導入

 パッケージ管理ツールのHomebrewを導入します。XcodeでもAppleが対応しているパッケージを導入することができますが、残念ながらGLFWとGLEWは対応していません。GLUTは最新のモダンなOpenGLには対応していないのでシェーダリングランゲージを使おうと思ったら上の二つを導入する必要があります。

 

 Homebrewのインストールは極めて簡単でターミナルを立ち上げて公式サイトにあるコマンドをコピー&ペーストで終わりです。ここまで大体2、3分です。

brew.sh

 

 2. GLFWの導入

 こちらも一瞬で終わります。ターミナルを立ち上げたまま、再び公式サイトのコマンドをコピー&ペーストで終了です。ここまで4分。

brewformulas.org

 

 3. GLEWの導入

 基本操作はGLFWと一緒です。ターミナルを立ち上げたまま公式サイトのコマンドをコピー&ペースト。ここまで5分

brewformulas.org

 

 4.Xcodeの設定

 Xcode側に先ほど導入したパッケージの場所を教えてやります。具体的にはライブラリとヘッダファイルを設定するだけです。

 

 ライブラリ等の場所は通常だと開けない場所にあります。先にフォルダを開けるようにFinderで少し手を加えておきます。下の記事通りにやればOKです。

d.hatena.ne.jp

 

 後はこちらの記事の”Xcodeの設定”を参考にすれば設定完了です。

qiita.com

 

 で大体10分くらいで終わります。

 

 動作確認

 一応動作を確認しておきます。ウィンドウが表示されれば成功です。ちなみにGLFWにはシングルバッファモードがありません。バッファのスワップを忘れないようにしてください(自分はこれを忘れやすいです)。

gist1a7fbbc24eddac57a427cfb0eb61ee22

入門Qt4プログラミングを読む1

 『入門Qt4プログラミング』を終わらせて次の本なり文献なりに移りたいと思います。かといって流し読みしただけでは大事な点を取りこぼしてしまうこともあるのでざっくり役に立つようにまとめていこう思います。

 

 序文ではQtがどのようなライブラリかを解説しています。ここで気に留めておきたいのはQtのコミュニティが紹介されている点です。

 まずQtの公式サイトのトップページはこちらです。

www.qt.io

 こちらをざっと見ていきましょう。Qtの使用例が最初に紹介されています。

www.qt.io

 全て紹介できませんが、グラフィック周りについては少し調べて見ました。

 

1. Randeon Software Crimson Edtion

  これが一体なんなのかさっぱりわかりませんでした。調べたところAMDが自社のチップセット用に開発したドライバやAPIの総称を言うようです。これまで.NETで開発されていた同製品をQtに変更。起動時間を大幅に縮小することができたということです。

 グラフィックスドライバについてはこちらの記事は参考になりました。AMDのエンジニアとの対談記事です。

4Gamer.net ― 一問一答「ATI Catalyst」。AMDのドライバ担当者にいろいろ聞いてみた

 ちなみにこちらのATI CatalystはRandeon Softwareの前身に当たるソフトです。グラフィック大手のAMDはゲーム市場に力を入れているようです。また、OpenCLなどのGPGPU技術をが盛んな印象もあります。

 他の記事については下を参考にしてください。

Radeon Software[HARDWARE] - 4Gamer.net

Devgurus | Community

 

 2. Formlabs

 3Dプリンタの製造メーカーです。同社ではマルチプラットフォームOpenGLC++が使えるという理由からQtを採用しています。

 Form 2 | Formlabs

 

 3. EyeTech

 視線をトラッキングするシステムを作っている会社です。ここではマルチプラットフォームに対応しているという点からQtを採用しました。

 Qt - Case EyeTech Digital Systems

 

 4. eyeMaps

 カメラに映った山などを3Dモデル化。山の情報などを表示することができるかなり革新的なソフトです。こちらもQtで作成されています。

 Built with Qt | eyeMaps | 3D augmented reality app

 

 あとはQtの開発者フォーラムも見ておきたいです。特に質問がなくても自分が知らなかったことを話しているとなんだろうと考えるきっかけになります

 Home | Qt Forum

 最後に見て欲しいのはQtのドキュメントです。QtCreaterを使うとf1でドキュメントをかなり読むことができますが、時間があるときに網羅的に読むならこちらが良いです。

 Qt Documentation

 

 序文の中身で大事なのは上の通りです。次回は目次から本の内容を俯瞰してコード例を打ち込みながら本を完了させていきたいと思います。