第2回目 回帰直線を表示する

ページ名:第2回目 回帰直線を表示する

このページの変更記録

  • 7/20 10:45 に公開
  • 7/20 10:50 2重カッコエラー (( で, ( ( とスペースを入れないと注釈扱いとなる。本来の Python では,スペースを開ける必要なし。
  • 7/20 20:43 課題に「データをどこのものを利用したか,URLや資料名をコメントで書いておくこと。」を追加
  • 7/20 22:08 サンプルプログラムから show( ) を取り除く。なくても表示可能であった。
  • 7/20 22:12 #(ここに3行空白が表示されているが,本来は1行のつもり。3行開ける必要ない)を追加
  • 7/20 22:27 例を使っている学生がいたので,誤解しない文章「例を使ってはいけない,グラフにする対象は,自分決めること」とした。
  • 7/20 22:55 課題の文面を「回帰直線を描きなさい」から「散布図と回帰直線を描きなさい」とした。
  • 7/21 12:45 サンプルの散布図に色指定を追加した。
  • 7/21 23:53 用語の混乱を訂正。分布図→散布図
  • 7/22 09:47 初期化プログラムを訂正

第2回課題実施報告の締め切りは,7/27 とします。
7/20 10:45 前の課題実施報告は,無視されます。


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


課題報告メールは,

  • 課題を実施した感想,あれば質問
  • 第2回目は,プログラムも

を報告してください。



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


サンプルはそのまま動作させると勉強になる


Python で回帰直線を表示する

プログラム作成にあたって,以下を先に実行しておく


#初期化プログラム。動作確認を含めて,プログラム作成のとき1度実行しておく
from math import *#数学関係の基本関数,定数が利用可能となる
from matplotlib.pyplot import * #グラフ関係を利用する
%matplotlib inline
from numpy import * #ベクトル演算,行列演算を効率化
pi, e #πと自然定数 e の値が表示されたら正常動作している


変数,値には型あり

⇒ 教科書 p.12, p.21


#変数,値に型(Python ではクラスともいう)あり
a = 3
b = 1.5
type(3), type(3), type(b), type(1.5)


型(=クラス)は,いっぱいある


#いろいろな型(=クラス)
a = 3
print(a, type(a))
b = 1.5
print(b, type(b)) # float とは,測定値形式 1.33 * 10**3 値が10の何乗かで,小数点が浮動することから
c = 1 + 2j # 虚数単位は,i でなく,j を使う
print(c, type(c))
d = (3, 13, 4)
print(d, type(d))
e = [1, 13, 4]
print(e, type(e))
f = array( (2, 7, 1) )
print(f, type(f))
g = {1, 13, 4, 1} # 集合
print(g, type(g))
f = {'red':'赤', 'desk':'机', 'pen':'ペン'} #辞書
print(f, type(f))
# 型は無限にある。自分で,好きな型(クラス)を作ることができる。


散布図を描く


#大量のデータを扱うときは,numpy.ndarray 型を使うとよい
#体重と身長のデータ
W = array( (62, 68, 58, 68, 52, 65, 70) )
H = array( (183, 178, 173, 178, 168, 181, 180) )
#散布図を描く
print(W)
print(H)
scatter(W, H) #W, H のデータを最初から順にペアにしてグラフとする


折れ線を描く


# グラフは,matplotlib モジュールの機能を利用している。
# 他にどんなグラフが描けるか,"matplotlib グラフの描き方" で検索すること
# plot() #折れ線グラフ
#
plot(H)


散布図を描く


a, b = polyfit(W, H, 1) #回帰直線 y = ax + b の a, b を求める
vH = a * W + b #回帰直線作図のための値を生成
#(ここに3行空白がある表示されているが,本来は1行のつもり。3行開ける必要ない。)


print(W)
print(H)
print(vH) #回帰直線を描くために作った仮の身長
#(余分な空白行が表示されている)


scatter(W, H, color='blue')
plot(W, vH, color='red') #回帰直線は折れ線の機能で描く
#(余分な空白行が表示されている)


print('回帰直線 y = ', a, 'x +', b) # y = ax + b を表示


課題

データの5組以上の実際のデータを使って,散布図と回帰直線を描きなさい。そのプログラムを報告すること。いい相関がでなくても問題なし。
プログラムは,ここのサンプルをコピーして修正すればよい。
データをどこのものを利用したか,URLや資料名をコメントで書いておくこと。


(投稿された他の学生のものはコピーして修正しないこと。)

例(例を使ってはいけない,グラフにする対象は,自分決めること)

  • 郵便物の重量と切手代
  • 机の上にあるものの,重さと購入時の価格
  • 気圧と温度
  • 湿度と降水量
  • 風力と降水量


登場した用語

  • クラス



質問と返答

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


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

他のグラフの描き方は触れず