1. 21-Hidetaka-Ko

    Posted

    21-Hidetaka-Ko
Changes in title
+RのフロントエンドExploratoryで簡単にユニコーン企業のデータをスクレイピングしてきて、分析してみた
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,256 @@
+はじめてQiitaに投稿した[記事](http://qiita.com/21-Hidetaka-Ko/items/a7e2e87f46f82915c356
+)が100ストックを超え、割と好評だったので引き続き新しい記事を書いてみました。
+
+![Rのフロントエンドということで話題になっている、Exploratoryの対話的なデータ分析環境で「ヨーロッパはほんとに女性が活躍しやすい社会か」どうか分析してみた_-_Qiita.png](https://qiita-image-store.s3.amazonaws.com/0/91522/c538502d-a590-4310-e2a3-367288c71ef6.png)
+
+
+##0. はじめに
+
+![unicorn-webpage.png](https://qiita-image-store.s3.amazonaws.com/0/91522/2c0a9e10-d4c7-1a9c-95a4-8e82a25375db.png)
+
+![unicorn-webpage2.png](https://qiita-image-store.s3.amazonaws.com/0/91522/031f8ccf-fd67-2ca2-452c-45d4c4bc7f6f.png)
+
+
+
+実は、このデータは、世界中のユニコーン企業のデータを表しています。 ユニコーン企業というのは、上場していなくて、評価額が1ビリオンドル以上の評価額を得ている企業のことを指します。代表的なのだと、UberとかAirbnbとか。
+
+面白そうなデータですよね。どの国がユニコーンが多いのかとか、期間とValuationの関係性とか、いつユニコーン企業が多く生まれてるのかなって質問に答えることができそうです。ところが、こうやってウェブページにに埋まっていると、わざわざスクレイプするスクリプトを書いて、その後取ってきたデータを加工して分析できるようにするという過程が、結構めんどくさかったりしますよね。
+
+今、Rのフロントエンドということで話題になっているExploratoryだと、データ分析だけでなく、こういったウェブ・ページからデータをスクレイピングしてくるのがものすごく簡単でシンプル、さらにはその後のデータの加工もデータ分析しながら簡単に出来るといことなので、早速やってみました。
+
+##1. 簡単にスクレイピング
+
+![unicorn-webpage3.png](https://qiita-image-store.s3.amazonaws.com/0/91522/37beb535-263e-e0a7-047c-2dc62aab799c.png)
+
+
+Data Framesの横の+アイコンをクリックして、import Remote Dateを選んでください。
+
+![unicorn-scraping.png](https://qiita-image-store.s3.amazonaws.com/0/91522/2d8fa76e-e78e-5703-99e1-c3687f23cb7e.png)
+
+
+Webからデータをとってきたいので、Scrape Web Pageを選びます。
+
+![unicorn-scraping2.png](https://qiita-image-store.s3.amazonaws.com/0/91522/8946fc16-ef89-be76-24bf-cd6efe56ea4f.png)
+
+
+さっきのページのリンクを貼ります。
+
+![](images/unicorn-scraping3.png![unicorn-scraping3.png](https://qiita-image-store.s3.amazonaws.com/0/91522/214b83eb-9cee-bda2-03a1-7797ecb60208.png)
+)
+
+リンクを貼るだけでデータをスクレイピングしてこれました。
+
+![unicorn-scraping4.png](https://qiita-image-store.s3.amazonaws.com/0/91522/6ca68b65-a8fe-1d51-4bf7-333b62912762.png)
+
+
+![unicorn.png](https://qiita-image-store.s3.amazonaws.com/0/91522/ad2efd16-2e2d-fc4f-d025-5796892ea5d7.png)
+
+
+もっと視覚的にわかりやすいようにチャート画面に行って、ビジュアライズしてみます。
+
+![unicorn-chart.png](https://qiita-image-store.s3.amazonaws.com/0/91522/fab11a1f-2b61-4394-8354-9a1cd121e2bb.png)
+
+
+例えば、X軸にCountryを当てはめて、国ごとのユニコーン企業の数を出してみましょう。
+
+![unicorn-chart2.png](https://qiita-image-store.s3.amazonaws.com/0/91522/d0c83df6-0a5e-75b8-6ae2-7b327eefbaff.png)
+
+
+ここでは、スクレイピングでとってきたWEB上のデータですけど、GitHub、Google Analytics、Google Spread sheet、Mongo DB、MySQL、JSON REST APIなどのたくさんのデータベースから本当に簡単にデータをインポートしてきて分析することも可能です。
+
+
+##2. 日本にユニコーン企業はいるのか?
+
+日本にユニコーン企業がいるのか見てみましょう。日本だけにフィルタリングしたいので、カラムのヘッダーをクリックしてfilterコマンドを選びます。
+
+![unicorn-table.png](https://qiita-image-store.s3.amazonaws.com/0/91522/aa9378eb-fcf0-685f-f011-870e49944258.png)
+
+
+すると、自動的にfilter(Country == )が入力されます。次に、レコメンドされている候補からJapanを選びます。
+![unicorn-japan3.png](https://qiita-image-store.s3.amazonaws.com/0/91522/d09c187f-cc9b-94b2-db09-0693363945d3.png)
+
+実は、メルカリだけなんですよね。
+
+![unicorn-japan4.png](https://qiita-image-store.s3.amazonaws.com/0/91522/612949b2-b7e8-18ba-3c23-394b77b7ee39.png)
+
+
+ちなみに、いつもこうやってどういうカラム名、ファンクションを出したらいいのかっていうのを絶えずこのアプリケーションがチェックしてるのでいつもそのときに適したリストがレコメンドされてでてくるんです。だから、ユーザーはどこで何のfunctionを使わないといけないかを覚えておく必要はないんです。また、右に関数の説明や例が表示されるので、関数の意味をGoogleで調べる必要もありません。
+
+##3. データから数字だけを抜き出す
+
+次に、Valuationのところがキャラクターになっていて、通貨の記号がはいってるんですよね。
+
+![unicorn-valuation.png](https://qiita-image-store.s3.amazonaws.com/0/91522/1ed355f8-eeec-e2cc-57ee-e090a1a1b09d.png)
+
+
+![unicorn-valuation10.png](https://qiita-image-store.s3.amazonaws.com/0/91522/7adadebe-32d3-335d-3b60-fe0bc3777ff6.png)
+
+
+数字以外の記号が入っているせいで、このままだと、チャートに行って、X軸をcompany、次にY軸をValuation にしようにもsumっていう関数が使えないんですよね。
+
+![unicorn-valuation2.png](https://qiita-image-store.s3.amazonaws.com/0/91522/c29faa6f-87df-5c82-d64c-5b310227713c.png)
+
+
+今回は、通貨の記号ですけど、%が入ってたり、円がはいってたり。こういうのってけっこうありますよね。そういうのってけっこう、regular expression とか使いながら地道にとっていけなかったりするんですけど、Exploratoryでは、コマンド1つでいけるんですよ。
+
+要するに、通貨であれ、何かの記号であれ、数字だけを抜き出してきたいだけですよね? そういうときは、まずここをクリックしてみます。
+
+![unicorn-valuation3.png](https://qiita-image-store.s3.amazonaws.com/0/91522/5114494e-bec4-952f-d475-a5bbc7aebf28.png)
+
+数字だけに転換することを意味するConvert To Numberを選びます。
+
+![unicorn-valuation4.png](https://qiita-image-store.s3.amazonaws.com/0/91522/873ef5f1-0cd8-15e3-53fa-141ebf8bc388.png)
+
+すると、自動的に数字だけを抽出するコマンドが入力されます。サマリー画面も、テーブル画面もダラーを抜いたナンバーだけのカラムができましたね。
+
+![unicorn-valuation5.png](https://qiita-image-store.s3.amazonaws.com/0/91522/133260e1-e30e-ad5a-b14f-7d6575d14dc8.png)
+
+![unicorn-valuation6.png](https://qiita-image-store.s3.amazonaws.com/0/91522/5fe35e57-c74a-f82b-1605-6c4ea2130394.png)
+
+
+もう一回、さっきのチャートに戻って、Y軸をnumberのValuationができたのでそちらに変えます。そうすると、今度はsumっていう関数が使えますよね。
+
+![unicorn-valuation7.png](https://qiita-image-store.s3.amazonaws.com/0/91522/68a1e1bf-504f-21a6-f807-45160d5f2a16.png)
+
+
+で、これがあまりにも数が多すぎてもしょうがないので、top_n()という関数を使って、上位10位だけ見てみましょう。
+
+![unicorn-valuation8.png](https://qiita-image-store.s3.amazonaws.com/0/91522/c163222d-39c4-edfc-1d06-30ada4ab66b0.png)
+
+
+![unicorn-valuation9.png](https://qiita-image-store.s3.amazonaws.com/0/91522/bf3670f0-f8fd-472c-8c2a-d82c1eeb79dc.png)
+
+これで評価額がトップ10のユニコーン企業を見ることができました。
+
+##4. ユニコーン企業になって、どれくらいたっているか
+
+Date.Joinedは、ユニコーン企業にいつなったか、で、それから何年経過しているかを計算するのに使えます。ユニコーン企業になって、どれくらいたっているかとそこから今日までのValuationを比べてどういう関係性があるのかちょっと見てみたいと思いませんか?
+
+そのために、まずこのDate.JoinedのカラムがcharacterになっているのでDateに変えてみましょう。
+ここが、4/8/2015となっているのでMonth Day Yearを選びます。
+![unicorn-when.png](https://qiita-image-store.s3.amazonaws.com/0/91522/53e71187-be57-bc16-6eb9-8b6aec070275.png)
+
+
+これでサマリーを診てもらうと、こういうふうにもともとはcharacterだったのがDateに変わって、こういうふうにヒストグラムになっているのがわかりますね。
+
+![unicorn-when2.png](https://qiita-image-store.s3.amazonaws.com/0/91522/47c01a21-6d7f-81d6-4e41-914e50f8f6ad.png)
+
+
+
+これを今日の日付の2016年から単純にマイナスすると、ユニコーンになってから今日までどれくらいたっているかを表しますよね?
+
+それを表すyears_since_joinedという新しいカラムを作りたいと思います。
+
+![unicorn-when3.png](https://qiita-image-store.s3.amazonaws.com/0/91522/df146fa0-080d-1a42-68ad-ca604498a7a8.png)
+
+
+
+これでチャートのほうに戻ってもらって、今度逆にScatter Plotなんか使って、X軸にyear_since_joinedを、Y軸に、Valuation,
+Labelにcompanyを指定すると、いくつかのdotが出てきましたよね。
+
+例えば、Uberなんかは約3年かかって50ビリオンの評価額になっていることがわかりますね。
+
+![unicorn-when4.png](https://qiita-image-store.s3.amazonaws.com/0/91522/fcf43d78-df72-6534-cd33-e46a7e918bc9.png)
+
+
+
+##5.累積を表すチャートを出す
+
+次に、最近ITバブルなんて言われたりしてますけど、ユニコーン企業も一気に増えていったりしてるのでしょうか?
+
+チャートを見てみますと、いついくつのユニコーン企業が生まれたのかをわかっても、累積されたものとして計算されてないので、どんな感じで増えていってるのかがわかりにくいですよね?なので、合計数が累積されたチャートを作りたいと思います。
+
+そのために、まずDate.Joinedをグルーピングします。
+これでテーブルviewを見ると、ここにDate.Joinedでグルーピングされてるのがわかりますね。
+
+![unicorn-cum.png](https://qiita-image-store.s3.amazonaws.com/0/91522/ad9e2072-9cab-0249-986a-305832fb39cb.png)
+
+
+
+次にsummarize関数を使って、グルーピングされたdateごとのユニコーン企業の数を見てみたいと思います。
+
+![unicorn-cum2.png](https://qiita-image-store.s3.amazonaws.com/0/91522/8f274ce7-7446-9e7e-9086-973f2433f3fd.png)
+
+
+チャート画面に行ってみます。
+
+![unicorn-cum3.png](https://qiita-image-store.s3.amazonaws.com/0/91522/60675587-a80c-7d28-b9b9-e2eb0dddcea5.png)
+
+
+例えば、これで2015年に80社近く、ユニコーン企業が生まれたりしているということがこれでわかりました。
+
+
+次に、明示的に、日付でソートしてみましょう。
+
+![unicorn-cum4.png](https://qiita-image-store.s3.amazonaws.com/0/91522/72d7556e-7f08-6638-5f5f-4cb41f579e1a.png)
+
+
+この状態で、cumsum関数というのを使うと、countの累積を計算できます。なので、累積を表したcum_countという新しいカラムを作りたいと思います。
+
+![unicorn-cum5.png](https://qiita-image-store.s3.amazonaws.com/0/91522/2b93639a-8fbc-bacf-0461-1ce1d1a9a549.png)
+
+
+これでチャートに行って、チャートタイプをLineに、Y軸をcum_countに変えてみると
+
+![unicorn-cum6.png](https://qiita-image-store.s3.amazonaws.com/0/91522/9417d7cb-91f9-51a3-8c60-e9a927c7ac29.png)
+
+
+ユニコーン企業が2014年を機にいっきに増えてることがわかったりします。
+
+
+##最後に
+
+ウェブ・ページに退屈な形でテーブルとして埋まっていたデータも、こうしてExploratoryを使って、簡単にすばやくスクレイピングしてきて、さらにはデータ分析には物足りなかったデータを簡単に加工し、その結果をビジュアライズすることで、最初はまったく気づくことのなかった、
+
+”ユニコーン・スタートアップの数が2014年以後、いっきにものすごい勢いで増えていってる”
+
+ということを発見することができました。
+
+ところで、確かにこちらシリコンバレーでもユニコーン・スタートアップの話を聞かない日はありませんが、この異常なほどの増加現象はバブルなのでしょうか?さらに、こういった現象は本当に持続可能なのでしょうか?
+
+その点について、DHHさんから大変興味深い意見がMediumの方で掲載されていましたので、そちらの記事を翻訳したものをみなさんとシェアさせていただきたいと思います。とても良い記事で、Mediumで1位、Hacker Newsで3位くらいになっていました。もちろん、DHH氏本人から翻訳の許可を頂いています。
+
+![dhh-allow.png](https://qiita-image-store.s3.amazonaws.com/0/91522/528c9f41-23f3-7ea9-80a1-3ea31c536676.png)
+
+
+ちなみに、DHH氏はRuby on Railsの生みの親で、Basecampという会社のCTOでもあります。「小さなチーム大きな仕事」「強いチームはオフィスを捨てる」を書いた人です。
+
+####ブログ: Reconsider (投資家をチームに入れていいのか?)
+
+あなたは、今スタートアップ業界にはびこる “ディスラプトマニア”の空気に嫌気がさしていませんか。そう、私が今日ブログを書いた理由は、そんな人達が、周りにとって、やっかいで吐き気がするほどの感覚を持っていて、ディスラプトマニアになることがスタートアップが生き残るたった1つの道ではないということを気づいてほしいからです。既存産業をディスラプトしようとユニコーン企業になることに夢中になることは、スタートアップをはじめることに対して、他人のモチベーションを押し出すだけでなく、ここにいるみなさんや世界中の人達を徹底的に毒することにもなりうるのです。
+
+
+今の起業家たちと話すときは、ネットワーク効果の話や、或はマネタイズのいい言葉を話題にしない日はありません。
+この雰囲気では、「スタートアップ」という単語は、ビジネス全体を支配することへの追求を描くことだけに狭まっていくでしょう。スタートアップは成功によって得られる財産やユニコーン企業を創ることにとりつかれています。インターネットで、または、インターネットのために仕事をするすべての世代の人たちは、 神めいた存在であるユニコーンや成功に付随するもので溢れた強迫観念と化しています。
+
+しかし、だれが彼らを責めることができるというのでしょうか?この一連の夢物語はたえず強まっているのです。
+
+(中略)
+
+ユニコーンの象徴は、雑誌の表紙を飾るモデルの顔と同じ感じです。何倍にも加工され、細心を払って配置され、何時間にもわたって働かされます。
+
+ウェブは、これまでで最も優れた起業プラットフォームだと思います。参入障壁が低く、圧倒的に多くの人にリーチすることができます。僕はウェブが大好きです。そこに許可は不要で、リーチは広大で、実装に多様性があります。資金へのアクセスという架空の壁を信じちゃいけません。そんなものは存在しないのです。
+
+自分のモチベーションを分析して、問いただしましょう。思い切って資金を断り、何か役に立つものを立ち上げましょう。宇宙にちょっとのくぼみを生むだけで十分です。
+
+自分の承認欲求を抑えましょう。
+
+そして、いつまでも幸せに暮らしましょう。
+
+元の[英語記事](https://m.signalvnoise.com/reconsider-41adf356857f#.yw9dbjqgt
+)もどうぞ。
+
+
+##興味を持っていただいた方、実際に触ってみたい方へ
+
+Exploratoryは[こちら](http://docs.exploratory.io/tutorials/flight4.html
+)からβ版の登録ができます。こちらがinviteを完了すると、ダウンロードできるようになります。
+
+チュートリアルは[こちら](http://docs.exploratory.io/tutorials/intro.html
+)から見ることができます。
+
+英語が読める方は[Introducing Exploratory Desktop — UI for R](https://blog.exploratory.io/introducing-exploratory-desktop-ui-for-r-895d94ef3b7b#.4dncgv1rt
+)もどうぞ
+
+Exploratoryの日本ユーザー向けの[Facebookグループ](https://www.facebook.com/groups/1087437647994959/members/
+)を作ったのでよろしかったらどうぞ