プログラミング

統計解析を行う上で便利なプログラミング言語を比較!

ウマたん
ウマたん
当サイト【スタビジ】の本記事では、統計解析において便利なプログラミング言語「Python/R/Stan/SQL」を比較していきます。それぞれのプログラミング言語にどのような特徴があるのか、どのように勉強していけばよいのか見てきますよー!

現在消費財メーカーでデータサイエンティストをやっているウマたん(@statistics1012)です。

統計解析を行う上で必要なプログラミングのスキル。

世の中にはプログラミング言語を使わずとも統計処理を扱えるソフトウェアが存在しますが、やはりそれらでは不十分なことも多いです。

ロボたん
ロボたん
でもプログラミング言語っていくつかあってどれを選べばよいのか分かりづらいイメージ
ウマたん
ウマたん
そうなんだよねー!違いを理解して適切な言語を選ぼう!

統計処理ができるプログラミング言語はいくつかあってどれを使えばよいのか分かりづらい。

そこで!この記事では、統計処理を行う上で必要なプログラミング言語の特徴を比較しながら見ていきたいと思います。

ウマたん
ウマたん
プログラミングができるかできないかで大きく統計解析の深さが変わるよ!

なぜソフトウェアでは不十分か

大学では、簡易的に統計処理を実装することのできるソフトウェアを使うことが多いです。

SPSSやSASなどが主に用いられていますが、これらのソフトウェアのどこが不十分なのでしょう?

僕の大学では学部時代Statworksというマイナーツールを使っていました。

説明のための分析に重きを置いている

これらのソフトウェアは、不確定なことを予測するというよりも現状の分析と要因の特定に重きを置いています。

そのため、現在主流となりつつある機械学習手法ディープラーニングなどに関しては弱い。

一般的な統計解析を行う分には問題ありませんが、少し高度な手法になると実装できないんです。

カスタマイズ・チューニングができない

これらのソフトウェアは基本的な解析は実行できますが、パラメータをチューニングしたり複雑なロジックで解析を行ったりするのには適していません。

データ解析を究極に行うためには機械学習のパラメータをチューニングしながら、そのデータに則した解析を行っていく必要があります。

そのためソフトウェアを使ってしまうと柔軟性がなく、一歩踏み込んだ解析ができません。

お金がかかる

これらのソフトウェア、そこそこお金がかかります。SPSSは月額1万ほど。

RやPythonは無料のオープンソースプログラミング言語ですので、それらに比べると高額なのが分かると思います。

ウマたん
ウマたん
プログラミング言語が扱えれば無料で解析がバリバリできちゃうんだ!

ただ一方、グラフィックインターフェイスで誰でも簡単に操作できるので簡易的に実装でき解釈も容易。

RやPythonも一旦覚えてしまえばそれほど複雑ではないですが、やはりソフトウェアと比較すると敷居は高い。

ここは、データ解析に求める柔軟性と費用と相談して決めましょう。

統計解析に用いられるプログラミング言語

先ほどの説明を見てやっぱりソフトウェアでは不十分だ!と思った人は是非プログラミング言語を使ってみてください!

どのプログラミング言語も無料で使えて、柔軟性が高いです。

ソフトウェアで実現できなかった複雑なロジックを実装できます。それぞれの特徴を見ていきましょう!

R

統計解析と言えばR。大学の研究ではひたすらRを用いていました。

世界中の人々が日々パッケージを作って共有してくれているので、簡単なコードで様々なアルゴリズムを実装することができます。

もちろん自分で0からアルゴリズムを実装することもできますよー!

一般的にはプログラミング言語では変数宣言をしなくてはいけないのですが、Rでは変数宣言がいりません。非常に簡略的にコードを書くことが可能なんです。

また描画にも強い言語で、ggplot2というパッケージを用いれば簡単に見やすいグラフィックを表現することができます。

ただ、データ解析に特化しており開発言語ではないため、Rを使ってサービスを作ることはできません。

ウマたん
ウマたん
Rは他のプログラミング言語よりも実装が簡単なので、とりあえず統計解析してみたいー!という人いはオススメだよ!

Python

最も現在熱い言語がPython。プログラミング言語別の年収でも常に上位です。

Rと同様にデータ解析に特化していて、かつ頻繁にパッケージが開発されているので様々なアルゴリズムが簡易的に実装可能です。

Pythonには存在するけどRには存在しないアルゴリズムもいくつかあるので、最先端のアルゴリズムを実装したいならPythonを使った方が無難なイメージがあります。

また、Pythonは多くのリファレンスがあるので分からないことがあってもネットで調べれば大抵解決します。Rはそれほどまとまったリファレンスがありません・・・

そしてRと最も大きく違う点は、開発言語として使えるか否か。

Pythonは開発言語としても使えるので、アルゴリズムを回してそのままサービスローンチまで一気通貫で利用できます。

Pythonで出来ることを以下にまとめています!

Pythonでできること7つをコード例をまじえてまとめておく!当サイト【スタビジ】本記事では、Pythonでできることを7つまとめていきます!!Pythonで何ができるのか分からない状況から深い理解にもっていきますよー!実際にPythonでの実装例や勉強方法も取り上げているのでぜひご自分の環境で手を動かして実装してみてくださいね!...
ウマたん
ウマたん
Python使えれば仕事にはまず困らないだろうなー!データ解析からサーバーサイドまで行けるんだ!

Stan

RやPythonほど有名ではないですが、非常にディープな解析を行えるのがStan。

複雑なデータになると、簡易的な回帰ではなく複雑な分布を想定したモデル構築が必要です。

分布のパラメータにさらに分布を想定して柔軟にモデル構築を行う階層ベイズという手法があるのですが、それを実装する上ではStanが必須になってきます。

SQL

データ分析の前手のデータ加工・集計・抽出に必要な言語!

SQLだけでも簡単な解析は可能ですが、解析自体はRやPythonに任せてしまった方がラクです!

とは言え、どんな状況でもまずはSQLが使えないとデータを分析・解析する前準備が整いません。

必ず習得しておくようにしましょう!

PC
SQLで覚えるべき書き方はSELECT文だけ!SELECT文とWHERE句・集計関数をマスターしよう!当サイト【スタビジ】の本記事では、SQLでマスターしておきたい基本的な構文SELECT文について見ていきます!SQLでは、基本SELECT文ができて後はそれにWHERE句や集計関数そして他テーブルのJOINなどが出来れば不自由しません!...

それぞれのプログラミング言語をどのように勉強するか

さて、それぞれのプログラミング言語の特徴が分かったところでそれらをどのように勉強していけばよいのでしょうか?

R

Rって意外と分からないことを調べてもネットに落ちていないことが多いんですよねー。

RtipsというサイトでRについて体系的にまとまっているのでそちらを参照すると良いでしょう。

また、RstudioというR用の統合開発環境が提供されており、非常に便利なので使ってみることをオススメします。

Rはプログラミング学習講座などでもなかなか扱われていない、手を動かしながらRtips等で調べて勉強していきましょう。

Rを勉強する本としてはこちらがオススメです!

created by Rinker
¥2,970
(2020/10/25 06:15:07時点 Amazon調べ-詳細)

 

Python

Pythonを勉強する環境は多くありますが、コーディングメインならPythonに特化したPyQが最もオススメ!

PyQ トップページ

なかなかPythonに特化してここまで教えてくれるオンライン学習プラットフォームはありません。

PyQについては以下の記事で詳しくまとめています!

【体験談】PyQの評判は?3か月本気でPythonを勉強してみたので徹底レビュー!PyQはPythonを学ぶ上で非常にオススメで評判の高いサービスです。ただ、他のサービスとの違いが分かりにくいのも事実。そこで当サイト【スタビジ】では、実際にPyQを3か月体験した僕がPyQのメリット・デメリット・評判について徹底的にレビューしていきます!...

また、自分の学びたい範囲に合わせて買い切り型で学べるUdemyもオススメ!

Udemyは世界最大の教育プラットフォームで全部で15万種類ものコースがあるんです。

たくさんのコースがありますが、強いて言うなら包括的に学べる最強コスパの以下のコースがオススメ!

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

Udemy コース データサイエンス
【オススメ度】
【講師】シリコンバレーのSplunkで働く現役エンジニア
【時間】28.5時間
【レベル】初級~上級

シリコンバレーで働く現役のデータサイエンティストの酒井さんのコースです。

シリコンバレーで働いている現地の様子なども知れるので米国で働くことを夢見ている人必見のコースになります。

このコースは初歩の初歩から上級レベルまで幅広く網羅しているのが特徴です。

それもそのはずUdemyのコースとしては相当ボリューミーな28.5時間というコンテンツ量。

テンポよく話すのでそれで28.5時間は相当なコンテンツ量です。

チーム開発を進めていく上でのPython記述法の極意も学べるのである程度Pythonに知見がある方でも勉強になります。

\30日間返金無料/

大量にあるコースからPython特化のコースを比較していますのでぜひチェックしてみてください!

Udemy Python
【20コース以上受講】UdemyのおすすめPythonコースを徹底レビュー!当サイト【スタビジ】の本記事では、世界最大の教育プラットフォーム「Udemy」のPython講座を20コース以上受講した僕がそれぞれのコースを徹底的にレビューしていきます!ぜひムダな時間を費やさず目的に沿った効率の良いPython学習を進めてくださいね!...

ただPyQもUdemyは良くも悪くも自分の完全独学なので、モチベーション続かないなーという人はプログラミングスクールに通うのがオススメ!

基本的にはオンライン学習コンテンツを進めていくものになりますが、現役エンジニアのメンターがついて分からないことは素早く対応してくれます。

オンラインスクールの中で僕はテックアカデミーを選びました。

テックアカデミーの体験記事をまとめているのでよければ読んでみてください!

【体験談】テックアカデミー評判は?3か月本気受講してみたので徹底レビュー!当ブログ【スタビジ】では、様々なプログラミングスクールの中からテックアカデミーのメリット・デメリット・評判について3か月の体験談をもとに赤裸々にレビューしていきます。...

無料体験も行っているのでとりあえず取り組んでみても良いでしょう!

PythonはGoogleで調べると様々なリファレンスが出てくるので、調べながら手を動かしてみると近いが早いです。

ちなみに当サイト【スタビジ】では、Pythonを勉強するためのロードマップを以下の記事でまとめていますのでこちらも参考にしてみてください。

Python 勉強
【入門】初心者が3か月でPythonを習得できるようになる勉強法!当ブログ【スタビジ】の本記事では、Pythonを効率よく独学で習得する勉強法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...

Stan

Stanは、なかなか体系的に勉強するのが難しいんです。

こちらの書籍が非常に分かりやすいのでオススメです!

Rをある程度理解できていればこの書籍を読むことでStanの実装もできるかと思います。

created by Rinker
¥3,300
(2020/10/25 06:15:08時点 Amazon調べ-詳細)

Stanを勉強する上でのオススメ本は以下にまとめていますので良ければご覧ください!

PC
複雑な統計モデリングに便利!Stanの勉強法とオススメ本!当サイト【スタビジ】の本記事では、統計モデリングに重要なプログラミング言語「Stan」の勉強法について見ていきます!PythonとRと同時に勉強することでStanによる複雑なモデリングをカンタンに実装することができますよー!...

また、Python×Stanで学びたいなら以下のUdemy講座がオススメ!

【PythonとStanで学ぶ】仕組みが分かるベイズ統計学入門

Udemy コース PythonとStan
【オススメ度】
【講師】企業の研究者・開発者
【時間】11.5時間
【レベル】中級~上級

Python×Stanで実装を行いながら、複雑な統計モデリングベイズ統計学を学んでいきます。

僕自身、大学院時代ベイジアンだったのですがベイズ統計学って奥が深くて難しいくせに教材が少ないんですよー!!

基本的なベイズの知識から階層ベイズさらに状態空間モデルまで広範に学ぶことができます。

ベイズの領域で理解に苦しむMCMCの分野も概念とPythonでの実装を同時に行ってくれるので非常に分かりやすい!

なかなかPython×Stanが学べる教材ないので、なんならこれくらいしかないです。Stanが学べる教材って本当に貴重なんですよー!

\30日間返金無料/

SQL

SQLは分析屋だけでなくデータベース屋さんなども使用する言語で、幅広く使われています。

そのためリファレンスが豊富で、ネットで調べるだけで様々な情報にアクセスすることが可能!

記法も複雑ではなく、習得しやすいので是非早めに学習しておきましょう!

個人的には以下の書籍が分かりやすく練習問題も豊富でオススメです!

これ1冊やれば、後は実践で大丈夫かなーという感じです。

以下の記事でSQLのおすすめ勉強法についてまとめています!

SQL
SQLを最速でマスターできるオススメ本と勉強方法!当サイト【スタビジ】の本記事では、SQLを勉強するのにオススメな本と勉強法についてまとめていきます!SQLはデータサイエンスの基本であり必ずマスターしておかなくてはいけない言語です。早い段階から手を動かすことで理解が深まりますよー!...

まとめ

もし現在SPSSなどのツールを使っていて、限界を感じているもしくは費用が高いと感じている人は、是非プログラミング言語を使ってみてください!

しかしプログラミングは勉強方法が分かっても勉強を続けるのは忍耐力がいります。

こちらの記事でプログラミング学習に挫折しない方法をまとめていますので良ければご覧ください!

PC
【体験談】プログラミングを挫折しない方法3つの秘訣!当サイト【スタビジ】の本記事では、プログラミングを挫折しないで独学で勉強し続けられる方法についてまとめていきます。プログラミングを挫折し続けてきたからこそ伝えられる価値があると思い、今までの経験を基に徹底的にお話しいていきますよー!...

少しでも参考になれば幸いです。

プログラミングを駆使して統計解析をブーストさせよう!

プログラミングと合わせて統計学や機械学習の理論も学んでおくことをオススメします!

以下の記事で勉強法についてもまとめていますので合わせてチェックしてみてください!

統計学入門に必要な知識と独学勉強方法を簡単に学ぼう!当ブログ【スタビジ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に独学で勉強していけばよいかをお話ししていきます。統計学は難しいイメージが少しありますが、学び方をしっかり考えれば大丈夫!...
機械学習
機械学習入門に必要な知識と勉強方法をPythonとRの実装と一緒に見ていこう!当サイト【スタビジ】の本記事では、入門者向けに機械学習についてカンタンにまとめていきます。最終的にはどのように機械学習を学んでいけばよいかも見ていきます。細かい手法の実装もPython/Rを用いておこなっていくので適宜参考にしてみてください。...
Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!