テクノロジー

知っておくと開発に役立つ!Pythonで始める統計データ解析とは

知っておくと開発に役立つ!Pythonで始める統計データ解析とは

多くの人が「統計」という言葉から「数字・計算いっぱい」「グラフ」「難しそう」などの印象を感じますよね。しかしPython(パイソン)ならデータ解析・統計に適したプログラミング言語であるため、比較的数字少なく、グラフ等が簡単に引けます。

そうすると物事、数字、データの予測・傾向がわかり、「数字・データに騙されない」や「会社の売上向上」だけでなく、様々な社会・情勢に即した新たなサービスを作ることもできるようになるでしょう!

「統計」には幅広いことに利用でき、そしてすでに利用されています。学校の偏差値から天気予報、Amazonの推薦商品などが身近な例です。そこで本記事では、そのような役に立つ情報を簡単に導き出すために、ソフトウェアプログラミング言語Python(パイソン)を使用してデータを解析する方法をお伝えします。

Pythonとは何か、できることは何なのか

プログラミングのイメージPythonとはプログラミング言語の一つで、主にAI(人工知能)・統計・解析等のソフトウェア処理を行うことを目的として選択されることが多いです。なぜならば、上記処理を行うためのライブラリが多いため、Pythonを使えば1からアルゴリズムを構築する必要がなくソフトウェアのバグを回避でき、目的に沿ったツールやシステムを効率的に作れるでしょう。

例えば、数値計算・データ操作に関するライブラリには「Numpy」があり、統計処理手法などが多く含まれている「Scipy」というライブラリ、簡易なグラフ視覚化などが行えるなど「matplotlib」が揃っています。特に高度な処理・手法の多くが「Numpy」を前提とした別のライブラリになっていることもあり、世界中多くの人に使われています。

そのため特別な事情がない限り、AI(人工知能)・データ解析・統計手法のツールを開発したい場合は、Pythonを使用するほうが良いでしょう。というのもPythonを使っている人たちは世界中にいて、世界中の知識・ツールが多く参考になります。それらを使うことで、効率的に学ぶことができ、実際に手を動かして作ることで気がつくこともあるでしょう。

次では、具体的なPythonを使用した統計手法例について紹介します。

Pythonでできる統計処理とはどんなものか、初心者でもできるよう解説

統計のイメージ

本節では、統計解析の手法の一つとして、シンプルな単回帰分析をPythonのライブラリを用いて行う方法について紹介します。ここではAWS Cloud9という実行環境を用意し、そこでやってみましょう!まず、環境構築方法のリストです。

  1. インターネットブラウザでAWS アカウント取得し、AWS Management Consoleへのログイン
  2. サービスCloud 9を選択し、「Create environment」により環境を作成
  3. New EnvironmentでNameに「Example」と入力し、Descriptionも適当に入力
  4. Environment settingsのEnvironment typeにはEC2を選択、Instance Typeはt2.microを選択
  5. PlatformにAmazon linuxを選択し、NextStepを押下し、しばらく待機

これで、AWS のCloud 9という実行環境が整いました。次に今回使用するPythonのライブラリをインストールします。

画面には(Unixベースの)ターミナル画面が表示されます。その画面で以下を入力し、ライブラリのインストールを行いましょう。

# pipコマンドのアップグレード
sudo pip install –upgrade pip
# numpy, pandas, matplotlib, seaborn, sklearn ライブラリのインストール
pip install numpy
pip install pandas
pip install matplotlib
pip install seaborn
pip install sklearn

必要なライブラリのインストールが終わったので、次は検証に必要なデータの取得です。

$ wget https://raw.githubusercontent.com/karaage0703/machine-learning-study/master/data/karaage_data.csv

をターミナルに入力し、データをダウンロードしましょう。このデータはお祭りの来場者に対するからあげ屋さんの出店の数という架空のデータです。

さてこれで必要な環境は揃いました。では、Pythonの対話モードにより、プログラムを組んで単回帰解析を行います。

~/environment $ python
Python 3.6.10 (default, Feb 10 2020, 19:55:14)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import pandas as pd
>>> df = pd.read_csv(‘karaage_data.csv’)
>>> df.head()
x y
0 1 2
1 2 3
2 5 2
3 10 3
4 28 4
>>> x = df[[‘x’]] >>> y = df[[‘y’]]

以上により、CSVデータからプログラムへデータを読み込みます。続けて以下のプログラムによりデータを可視化してみましょう。

>>> import matplotlib as mat
>>> import seaborn as sns
>>> mat.pyplot.plot(x, y, ‘o’)
>>> mat.pyplot.savefig(‘fig1’)

これによりCloud9上でfig1が作成されます。このファイル名をクリックすることで、実際のグラフを見ることができます。続けて、sklearnライブラリによる単回帰分析を行いましょう。

>>> from sklearn.linear_model import LinearRegression
>>> model_lr = LinearRegression()
>>> model_lr.fit(x, y)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)

これで完了です。では可視化してみましょう。

>>> mat.pyplot.plot(x, model_lr.predict(x), linestyle=”solid”)
>>> mat.pyplot.savefig(‘fig2’)

これによりfig2.pngというファイルがCloud9コンソール上に表示されますので、それをクリックすると、結果が直線で表示されるでしょう。

このようにライブラリを使用すれば、こんなに早く簡単に単回帰分析が行えます!なお、scikit-learnライブラリを使用せずにNumpyのみ(基本数値処理ライブラリ)を使用した場合はこちらに記載されています。

Pythonで基礎から機械学習 「単回帰分析」

先ほど単回帰分析をライブラリを用いて行いました。次では、Pythonで統計データ解析時の留意点について軽く記載します。

Pythonで統計データ解析をするときに気を付けたいこと

データのイメージPythonでは多くの統計手法のライブラリが用意されています。実現したい手法をスクラッチにより1から制作することもアルゴリズムの理解の上では非常に重要なことです。しかしながら、すでに理解したことに手法についてはライブラリを使うことで効率的に制作ができますので、迷わず使いましょう。

一方、統計において適用する手法を理解していないのであれば、まずは勉強することが大切。いくつものサンプルを通して、データの作り方・モデルの作り方・手法の適用方法・視覚化方法など学びましょう。

Pythonの統計学を学ぶときにおすすめの本

本のイメージPythonで統計データ解析を学んでいく上でいちばん重要なライブラリは「NumPy」です。そのため、Pythonという言語を学びながら、NumPyについて十分に扱える文献はこちら。

統計で多くのデータを扱うためには、行列計算が必須です。行列計算は高校数学Cで出てくるものですが、この本では必要な部分だけ抜粋しています。また様々な事例を課題化・データ化として落とし込みを行っており、現実世界の問題点を統計学へ適用する訓練にもなるため、参考になる文献ですので一度目を通しましょう。

次ではPythonにより統計データ解析ができるようになるメリットについて記載します。

Pythonの統計ができるようになって、資格を取ろう!

資格のイメージPythonにより統計(データ解析)ができるようになることのメリットですが、まずPythonで統計・解析ができるようになると(将来的に)年収が上がります。

昨今、AI(人工知能)だけでなくIT界で望まれている人材の一つがデータサイエンティストだと言われています。データサイエンティストは、多くの事象を数字としてデータに落とし込み、結果に影響する相関関係を解析することで、結果を推測することができるでしょう。そのため、多くの経営者が根拠のある判断を下せるので、需要が高いです。

またデータサイエンティストになるかどうかはさておき、統計学は自社の現在の利益を向上させるためにも多くの助けになるでしょう。よって積極的に学んでおいて絶対に損はありません。

データサイエンティストの資格勉強を目指すことは、モチベーションにもつながるでしょう。基本的なIT知識を問われる「情報技術者試験」はもちろんのこと、Ptyhonに特化した「Python 3 エンジニア認定基礎試験」は受けましょう。更に、技術・知識を求められる人材になるためには、「統計検定」などがあります。

まとめさて本記事ではまず、統計データ解析を行う意義について記載し、ソフトウェアプログラミング言語のPythonにより解析する方法をお伝えしました。

Pythonは多くの統計・データ分析に適したライブラリが充実しているため、世界中で使用されおり、初心者でも効率的に学び始められます。ライブラリを使用した具体的な例として、Amazon Cloud 9上で環境構築し、単回帰分析が容易に実行できます。

しかしながら、Pythonにより様々な統計手法が容易に実行できますが、その手法を理解してからライブラリ等を使用しましょう。また、Pythonにより理論と実践を学び、積み重ねて行くことは、合理的な判断と根拠を示すことができるようになりますので、信頼度があがるメリットもあります。

Pythonは統計データ解析を行う上でベストな選択肢であり、初心者にもおすすめです。またAI(人工知能)の普及に伴い、必ず今後も必要になるツールの一つです。統計学だけを学び、今後アナリストとしての道を選択するのも良いですが、机上の空論で終わらせず、結果を出す意味でも手が動かせる(プログラミングできる)人材はさらに価値が高くなるでしょう。

そのような人材になれば、必ずどこの企業もあなたを重要視するに違いありません。ぜひ少しづつ学びあなたの価値を上げていきましょう!

トップへ戻る
タイトルとURLをコピーしました