第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) なら,&bold(){303xxxx の7桁}とすること
最後は,報告する授業の回数です。01 から 15 まであります。
間の - は,半角のマイナス記号です。
応用編に入ったら報告するかしないかは,自由です。ただし,最終課題の報告は必須です。
----
教科書『Python Pocket Reference』
⇒ 教科書 p.数字,と書いてあれば,そこをみて,印をつけておくことをおすすめ。
&color(#FF0000){この講義では,自分のために役立つプログラムを作成できるようにする。料理でいうと,自炊ができるレベルを目指す。}
*初期化プログラム
⇒ [[Python の動かし方]]
講義では,Jupyter Notebook を利用する。以下を見ておくとよい。
[[これでわかる!!Jupyter Notebook超入門(16分)@Youtube>https://www.youtube.com/watch?v=4RjIa8mlmXg]]
<pre>
#初期化プログラム。動作確認を含めて,プログラム作成のとき1度実行しておく
from math import * # math モジュールを利用する
from matplotlib.pyplot import * #グラフ関係を利用する
%matplotlib inline
from numpy import * #ベクトル演算,行列演算を効率化
from scipy.stats import norm #正規分布の計算
pi # πの値が表示されたら,正常動作している
# 課題提出するときは,初期化プログラムをつける必要なし
</pre>
*データを用意する
<pre>
#身長のデータ 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] # データの型名と最初部分を表示して,確認
</pre>
*主な統計値をみる
<pre>
#最小値,最大値,平均,標準偏差
min(H), max(H), mean(H), std(H)
</pre>
*それぞれどこで書いてあるの?
<pre>
#それぞれ,計算する命令として,
#min( ), max( ), mean( ), std( )関数を使用した。
#通常,Python 言語では,命令は,関数の形式で書かれる。
#この関数は,どこで定義されているか?
#それぞれの__module__という特殊な変数で見ることができる。
min.__module__, max.__module__, mean.__module__, std.__module__
</pre>
 bulitins は,組み込みのもの(複数形のS付き)。最初から組み込まれているもの。車でいうとボティやタイヤに相当。mean( ) は,numpy モジュールと定義してある。車でいうとオプションにあたる。初期化のプログラムで,import 宣言をして,利用可能としている。車でいうとオプションにあたるクーラやラジカセ。import せずに使用できない。
*ヒストグラムと正規分図曲線を表示しよう。
<pre>
#ヒストグラムを2つ表示する
hist(H, bins=15, color='red') #区分数,色など指定できる
show() #グラフを表示する。ないと,プログラムの最後に表示する。
hist(H) #パラメータを省略すると,適当に処理される
</pre>
データが正規分布と無関係でも,強制的に正規分布のデータを作ってみる。
<pre>
#平均,標準偏差から,正規分布を強制的に作成する
#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') #折れ線を使って表示
</pre>
** ヒストグラムと正規分布曲線を重ねて表示する
<pre>
#ヒストグラムに正規分布曲線を重ねる
#平均,標準偏差から,正規分布を強制的に作成する
#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') #折れ線を使って表示
</pre>
*課題
 ヒストグラムに向いた適当な数字(20個以上)を用意し,ヒストグラムと強制的な生成した正規分布曲線を重ねて表示してください。
 今回,変数名の H は,必ず変更すること。重ねるときの比率は,例の0.06から変更すること。値のヒントは,ヒストグラムを単体で表示したときの値です。
**課題報告は
-課題を実施した感想,あれば質問
それに加えて
命令(関数)は,それぞれモジュールに保管されていることを理解した。
と書き
試したプログラムも書いてください。
(投稿された他の学生のものはコピーして修正しないこと。これをやると伝言ゲームのようにだんだんおかしなプログラムになる)
*** 現在(8/1 8:45)の伝言ゲームの弊害
--array( ) を使わず,( ( ) ) としている
--比率が,0.06 のまま
#hr
**登場した用語
モジュール
**質問と返答
講義への質問は,suehiro3721p@gmail.com まで
***比率が全くわかりません。
A のビルとBのビルを重ねるとします。そのとき,A のビルの高さが,40m,B のビルの長さが,30 m のとき,A に合わせるときは,B を B の高さの30 で割って,A の高さの40をかけます。つまり,40/30 をかけます。
正規分布をヒストグラムに合わせるとき,正規分布の高さを調べて,それで,割り,ヒストグラムの高さをかけます。
正規分布の高さは,plot(X, Y) を表示したらわかります。
** 講義メモ(先生のための覚え書き)

第4回目 ヒストグラム 正規分布図を描くの編集履歴一覧へ戻る