LoginSignup
2
0

More than 5 years have passed since last update.

1. Pythonを利用して統計解析 - 一様乱数の作成

Last updated at Posted at 2018-02-07

Google Colaboratory を利用した統計解析

スプレッドシートで同じことをする場合は1. スプレッドシートを利用して統計解析 一様乱数の生成を参照

Pythonを利用してインタラクティブに解析を行う場合には、Jupyter Notebookが大変便利だけれど、コマンドラインを利用してコンピュータの環境の設定ができない場合には、かなりハードルが高いものとなってしまう。

そんな場合には、Google Colaboratoryがとても便利

利用時は次の点に留意

  • ブラウザーとしてGoogle Chromeを利用(他のブラウザーはサポートされていない)
  • Googleのアカウントが必要

Google Chromeを起動して、Googleアカウントにログインしたら、Google Colaboratory
colab.research.google.com_notebooks_welcome.ipynb(iPad).pngを開く

メニューバーの"File"をクリック
colab.research.google.com_notebooks_welcome.ipynb(iPad) (1).png

表示されるドロップダウンリストから"New Python3 notebook"をクリック
Screen Shot 2018-02-07 at 14.59.29.png

実際にプログラムが動作するのは、Google Cloudの上なので、新しいNotebookを作成するにはちょっと時間がかかる
colab.research.google.com_drive_17DC8dWoYBNEWsnnDwFpp58dExVMy15mB(iPad).png

右肩のステータスの表示が"CONNECTED"となるまで、少し待つ。
(Notebookを開いている間に、接続が切れてしまうことがあるので、その時をこの部分をクリックして、再度"CONNECTED"となることを確認する。)

ここでは初期設定を実施

  • %matplotlib inline: Jupyter notebookを利用した時にグラフをその場で表示するためのおまじない
  • matplotib : グラフ作成用モジュール
  • numpy : 数値計算用モジュール
%matplotlib inline
from matplotlib import pyplot
from numpy import random, array

フィールドの内部のコードを実行するには、フィールドの左部分の:arrow_forward: ボタンを押す
colab.research.google.com_drive_19eZ6f13sGEadzZZDuss-XmGkKyzPoQlv(iPad).png

numpy を利用して乱数を作成する

NUMBER_OF_VALUES に 何個の乱数を作成するかを指定

  • 実行する度に異なった乱数が生成される
  • 乱数の生成範囲は [0,1) 0以上1未満の実数

メニューの"+ CODE"をクリックしてフィールドを追加

NUMBER_OF_VALUES = 10
random_number_array = random.random(NUMBER_OF_VALUES)

random_number_array

フィールドの内部のコードを実行するには、フィールドの左部分の:arrow_forward: ボタンを押す

colab.research.google.com_drive_1FAKiWuc4aBrfcBc9YL7sf8IPm3Y3TBAF(iPad).png

作成した乱数のヒストグラムを表示

メニューの"+ CODE"をクリックしてフィールドを追加

pyplot.hist(random_number_array, bins=5)
pyplot.show() 

フィールドの内部のコードを実行するには、フィールドの左部分の:arrow_forward: ボタンを押す

colab.research.google.com_drive_1FAKiWuc4aBrfcBc9YL7sf8IPm3Y3TBAF(iPad).png

数が少ないので、一様乱数かどうか、グラフからは良くわからない

そこで、もっと多数の乱数を生成する

NUMBER_OF_VALUES = の値を変更する
メニューの"+ CODE"をクリックしてフィールドを追加

NUMBER_OF_VALUES = 100000
large_random_number_array = random.random(NUMBER_OF_VALUES)
pyplot.hist(large_random_number_array, bins=10)
pyplot.show() 

フィールドの内部のコードを実行するには、フィールドの左部分の:arrow_forward: ボタンを押す

colab.research.google.com_drive_1FAKiWuc4aBrfcBc9YL7sf8IPm3Y3TBAF(iPad) (1).png

10万個のデータを利用した結果、度数が全ての領域でほぼ同じ事から一様乱数にみえる

スプレッドシートからデータをコピペする

Python等の言語を利用する場合にスプレッドシートのデータを気軽にコピペして使えないからかも知れないので、スプレッドシートからデータをコピーして利用する

スプレッドーシート上で

  • データの範囲をマウス等を利用して選択

  • データをコピーする

下記のフィールド上で
* temp='''の次の行から'''の間にデータをペーストする(記載されているデータを置き換える)
メニューの"+ CODE"をクリックしてフィールドを追加

temp = '''
0.3196471909
0.5988571351
0.04787251204
0.9621505055
0.6476701195
0.415422835
0.4098646439
0.7477808772
0.09884921312
0.1879705363
'''

data = array([float(item) for item in temp.split()])

data

フィールドの内部のコードを実行するには、フィールドの左部分の:arrow_forward: ボタンを押す

colab.research.google.com_drive_1FAKiWuc4aBrfcBc9YL7sf8IPm3Y3TBAF(iPad) (2).png

こうしてスプレッドシートのデータをコピペして利用できる

取り込んだデータの統計値を計算

  • 平均値を算出: data.mean()
  • データの個数: data.size メニューの"+ CODE"をクリックしてフィールドを追加
print(f'Average: {data.mean()}  Data count: {data.size}')

フィールドの内部のコードを実行するには、フィールドの左部分の:arrow_forward: ボタンを押す
colab.research.google.com_drive_1FAKiWuc4aBrfcBc9YL7sf8IPm3Y3TBAF(iPad) (2).png

今回利用したノートブック(そのままでは編集できないので、Google Driveに保存してから利用)

今日はここまで:smiley:

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0