第4回目 ヒストグラム 正規分布図を描く

ページ名:第4回目 ヒストグラム 正規分布図を描く

このページの変更記録

  • 7/30 12:30 公開
  • 7/30 13:17 誤字訂正
  • 7/30 18:11 課題修正
  • 8/01 08:40 課題修正,比率変更を目立つようにした
  • 8/09 14:34 比率の解説を質問コーナーに追加

第4回課題実施報告の締め切りは,8/5 とします。
(締め切りに遅れても受付はします)


課題報告メールの件名は
A-303xxxx-04 名前(漢字名がのぞましい)
のように,してください。名前以外は,必ず,半角文字を使用してください。
最初は,A or B で,クラス(A, B は,大文字で半角文字を守ること)
次の数字は,学生番号(y303xxxx) なら,303xxxx の7桁とすること
最後は,報告する授業の回数です。01 から 15 まであります。
間の - は,半角のマイナス記号です。
応用編に入ったら報告するかしないかは,自由です。ただし,最終課題の報告は必須です。



教科書『Python Pocket Reference』
⇒ 教科書 p.数字,と書いてあれば,そこをみて,印をつけておくことをおすすめ。
この講義では,自分のために役立つプログラムを作成できるようにする。料理でいうと,自炊ができるレベルを目指す。


初期化プログラム

Python の動かし方
講義では,Jupyter Notebook を利用する。以下を見ておくとよい。
これでわかる!!Jupyter Notebook超入門(16分)@Youtube



#初期化プログラム。動作確認を含めて,プログラム作成のとき1度実行しておく
from math import * # math モジュールを利用する
from matplotlib.pyplot import * #グラフ関係を利用する
%matplotlib inline
from numpy import * #ベクトル演算,行列演算を効率化
from scipy.stats import norm #正規分布の計算
pi # πの値が表示されたら,正常動作している
# 課題提出するときは,初期化プログラムをつける必要なし


データを用意する


#身長のデータ 2019年度授業参加大学2年男子から40人
H = array((

       183, 178, 173, 178, 168, 
       181, 180, 165, 180, 165,
       177, 179, 169, 165, 175, 
       170, 167, 170, 185, 170,
       163, 171, 163, 166, 169,
       169, 160, 160, 163, 167,
       170, 178, 174, 177, 164,
       167, 165, 170, 184, 174
   ))

type(H), H[0:4] # データの型名と最初部分を表示して,確認


主な統計値をみる


#最小値,最大値,平均,標準偏差
min(H), max(H), mean(H), std(H)


それぞれどこで書いてあるの?


#それぞれ,計算する命令として,
#min( ), max( ), mean( ), std( )関数を使用した。
#通常,Python 言語では,命令は,関数の形式で書かれる。
#この関数は,どこで定義されているか?
#それぞれの__module__という特殊な変数で見ることができる。
min.__module__, max.__module__, mean.__module__, std.__module__


 bulitins は,組み込みのもの(複数形のS付き)。最初から組み込まれているもの。車でいうとボティやタイヤに相当。mean( ) は,numpy モジュールと定義してある。車でいうとオプションにあたる。初期化のプログラムで,import 宣言をして,利用可能としている。車でいうとオプションにあたるクーラやラジカセ。import せずに使用できない。


ヒストグラムと正規分図曲線を表示しよう。



#ヒストグラムを2つ表示する
hist(H, bins=15, color='red') #区分数,色など指定できる
show() #グラフを表示する。ないと,プログラムの最後に表示する。
hist(H) #パラメータを省略すると,適当に処理される


データが正規分布と無関係でも,強制的に正規分布のデータを作ってみる。


#平均,標準偏差から,正規分布を強制的に作成する
#X 軸の値を生成。平均から±標準偏差*3
X = arange(mean(H)-3*std(H), mean(H)+3*std(H), 0.1)
#確率密度関数(X,平均、標準偏差)
Y = norm.pdf(X, mean(H), std(H))
plot(X, Y, color='red') #折れ線を使って表示


ヒストグラムと正規分布曲線を重ねて表示する


#ヒストグラムに正規分布曲線を重ねる
#平均,標準偏差から,正規分布を強制的に作成する
#X 軸の値を生成。平均から±標準偏差*3
X = arange(mean(H)-3*std(H), mean(H)+3*std(H), 0.1)
#確率密度関数(X,平均、標準偏差)
Y = norm.pdf(X, mean(H), std(H))
HD = hist(H, color='blue')
r = max(HD[0])/0.06 #ヒストグラムと曲線のトップをあわせる比率 (それぞれ変更すること)
plot(X, Y*r, color='red') #折れ線を使って表示



課題

 ヒストグラムに向いた適当な数字(20個以上)を用意し,ヒストグラムと強制的な生成した正規分布曲線を重ねて表示してください。
 今回,変数名の H は,必ず変更すること。重ねるときの比率は,例の0.06から変更すること。値のヒントは,ヒストグラムを単体で表示したときの値です。



課題報告は

  • 課題を実施した感想,あれば質問

それに加えて


命令(関数)は,それぞれモジュールに保管されていることを理解した。


と書き
試したプログラムも書いてください。


(投稿された他の学生のものはコピーして修正しないこと。これをやると伝言ゲームのようにだんだんおかしなプログラムになる)

現在(8/1 8:45)の伝言ゲームの弊害

    • array( ) を使わず,( ( ) ) としている
    • 比率が,0.06 のまま


登場した用語

モジュール


質問と返答

講義への質問は,suehiro3721p@gmail.com まで


比率が全くわかりません。

A のビルとBのビルを重ねるとします。そのとき,A のビルの高さが,40m,B のビルの長さが,30 m のとき,A に合わせるときは,B を B の高さの30 で割って,A の高さの40をかけます。つまり,40/30 をかけます。
正規分布をヒストグラムに合わせるとき,正規分布の高さを調べて,それで,割り,ヒストグラムの高さをかけます。
正規分布の高さは,plot(X, Y) を表示したらわかります。


講義メモ(先生のための覚え書き)

シェアボタン: このページをSNSに投稿するのに便利です。


最近更新されたページ

トップページ

https://wiki3.jp/MathPython 内で書かれていることは,ご自由にご利用ください。管理者により改変されることもあります。工学部学生のための Python 入門(大学のプログラム入...

Python の動かし方

Jupyter Notebook を使うほぼ互換の Google Colaboratory を使うGoogle ドライブの中で,「新規」の「その他」の中で,Google Colaboratoryを選ぶ...

第14回目 課題実装例

このページの変更記録09/19 執筆中第14回目の課題はありません。今後の Python 利用 Pyrhon プログラムの料理でいうと自炊レベルとは,必要に応じて,自分専用の関数を作れることといってい...

第11回目 辞書型

このページの変更記録08/24 公開09/27 課題報告メモを削除09/27 サンプル一部変更教科書『Python Pocket Reference』⇒ 教科書 p.数字,と書いてあれば,そこをみて,...

第15回目 単位課題

このページの更新記録1019 質問への返答追加08/12 00:15 準備運動のようにキーボード練習をする,を追加08/13 13:16 質問への返答追加。締め切りについて。09/19 16:49 課...

第10回目 インストール

このページの変更記録08/16 17:12 公開08/31 15:07 分子コードの例を追加,文章の言い回し一部訂正インストールAnaconda(アナコンダ)をインストールする 2020年夏現在,Py...

第5回目 For ループ

このページの変更記録08/01 09:09 公開 08/01 09:15 訂正 08/01 12:19 サンプルプログラムに行が余分に空いて表示されると書く08/01 12:54 用語に,「ブロック」...

py3Dmol で画像が出ない。

ブラウザのキャシュエラーキャシュをクリアをする。Ctrl キー押しながら,更新ボタンをおすまたは,キャシュクリアーするツールを起動するChromebook だとhttp://atomurl.net/c...

第8回目 CSVファイル

このページの変更記録08/07 17:52 公開08/07 18:08 誤字訂正,言い回し変更08/08 00:32 サンプルプログラムに「#確認用表示」のコメントを追加08/08 00:36 課題文...

モジュール

ソースプログラムの保管単位 Python 言語の仕様上最初から入っているもの標準モジュールインストール時にいっしょに入るもの外部モジュール組込みモジュール,標準モジュール でないモジュール。組込みモジ...