統計科学同演習

統計科学同演習
清 智也 (14 棟 438 号室) + TA’s
2014 年 4 月 11 日(金)
スライドは昨年度の同講義(柴田里程先生)の資料をもとにして作成しています.
1 / 24
統計学専攻の科目
I
3 年春
I
I
I
I
統計科学同演習(必修)
数理統計学第一同演習
アルゴリズム論
3 年秋
I
I
I
I
I
I
I
(数学専攻との共通科目を除く)
データ解析同演習
数理統計学第二同演習
データサンプリング
統計科学輪講
情報処理
計画数学
4年
I
I
I
I
時系列モデル
非線形モデル
統計数学続論第1
統計数学続論第2
2 / 24
統計学・データサイエンスの位置づけ
3 / 24
データ解析
I
データに語らせる.
I
データは現象の放つ光(柴田里程)http://datascience.jp
I
探索的データ解析(Exploratory Data Analysis, 1977)
Better to have an approximate answer to the right
question than a precise answer to the wrong
question. (John Tukey)
http://cm.bell-labs.com/cm/stat/tukey/tributes.html
I
モデル化しやすいように,データをなるべく均質的な部分に
分ける.
4 / 24
講義と演習の目標
I
統計科学同演習
I
I
I
I
実データを扱い,その様子を探る
データの特徴を捉える
データの間の関係を調べる
参考:データ解析同演習(秋学期)
I
I
データからモデルを構築する
モデルの有効性を検証する
5 / 24
進め方
詳しくは,配布資料「統計科学同演習案内」を読んでください.
I
原則として,3 限が講義,4 限が演習.
I
講義開始 10 分後に TA が出席をとる.
I
遅刻・欠席した場合は,演習レポートから 1 点減点.
演習レポート
I
I
I
I
期限:特に断りがなければ,翌週の火曜日午後 5 時
場所:14 棟の 14-434
演習レポートの解説は,次回の演習レポート開始前に行う.
6 / 24
成績評価
1. 演習のレポート: 5 点満点/回 × 14 回 = 70 点満点
2. 大レポート: 15 点満点/回 × 2 回 = 30 点満点
3. 筆記試験: 30 点満点
A: 80 点以上
B: 79∼70 点
C: 69∼60 点
D: 60 点未満
7 / 24
使用するソフトウェア:R
I
S: 統計解析のために作られた言語,環境.
I
I
I
ベル研究所で開発.日本では柴田・渋谷が貢献.
S-plus: S をベースにした商用ソフト.GUI などが豊富.
R: S とほぼ同等の機能を持つフリーソフトウェア.
I
オープンソース. http://cran.r-project.org
I
本講義では,R は目的ではなく手段の一つという位置づけで
ある.
I
目的によっては,Excel, C, Matlab 等の方が便利なことはあ
る.場合に応じて使い分ければよい.
8 / 24
R の特徴
I
ベクトル演算を基本とする(Matlab などと同様)
I
オブジェクト指向
I
関数型言語
I
書式は C 言語に類似
I
対話的に実行できる
I
ユーザによる拡張が容易
I
様々なプラットフォームに対応(Linux, Windows, Mac)
I
高度な解析を比較的容易に実行することができる
9 / 24
R の短所
I
ループを多用すると計算に時間がかかる.
I
解決策:ベクトル演算,内部ルーチンの利用
I
大量データの処理には不向き
I
S/R に慣れてしまうと他の言語を使うのが面倒になる
10 / 24
オブジェクトとは?
I
対象となるものすべて
I
I
I
実体+属性(名前,型,要素数,次元...)
自立的な反応をする
R でのオブジェクト
I
数値,文字列,ベクトル,行列,リスト,式,関数,...
11 / 24
R の使用例
S 式とその結果(S 式:S や R で入力する式)
> q()
# 終了
> 1+2
[1] 3
# 電卓として
> (1+2i)*(1-2i)
[1] 5+0i
> a = 3
> a^2
[1] 9
> a <- 3
# 複素数も使える(1i が虚数単位)
# 代入
# これも代入.
> integrate(function(x) 1/sqrt(1-x^2), -1, 1) # 数値積分
3.141593 with absolute error < 9.4e-06
12 / 24
データと変量
I
データ
I
I
I
広義:推論の根拠となる資料
狭義:
(複数の)変量の値の並び.あるいはその集まり.
変数と変量
I
I
I
変数:変化させたいもの(抽象的な存在)
変量:値が記録され得る具体的な存在
無理に区別しなくてもよい
13 / 24
データの読み込み
I
Excel で earthquake.csv を読み込んだ場合(図は Mac)
14 / 24
データの読み込み
I
CSV = Comma Separated Values
Year,Month,Day,Hour,Minute,Second,Latitude,Longitude,Depth,Magnitude
2011,3,10,1,58,31.9,35.76333333,136.865,8,3.2
2011,3,10,1,59,19.9,38.47333333,143.3716667,23,4.4
2011,3,10,3,16,14.1,38.27,142.8783333,29,6.4
2011,3,10,3,44,35.7,38.47833333,143.4316667,36,6.3
2011,3,10,6,0,54.6,38.25833333,142.9116667,28,4.9
2011,3,10,6,23,56.6,34.17333333,135.1316667,7,2.5
...
I
R では
> quake.d = read.table("earthquake.csv", sep=",", header=TRUE)
> quake.d = read.csv("earthquake.csv")
# 同等
15 / 24
> length(quake.d)
[1] 10
> names(quake.d)
[1] "Year"
"Month"
"Day"
[5] "Minute"
"Second"
"Latitude"
[9] "Depth"
"Magnitude"
"Hour"
"Longitude"
> attach(quake.d)
> Year[1:10]
[1] 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011
> class(quake.d)
[1] "data.frame"
データフレームというオブジェクト
16 / 24
データフレーム (data frame)
I
同じ長さのベクトルのリスト
I
I
ベクトル:同じ型の値の並び
ベクトルの長さ:要素数
I
データフレームは,行列として扱うことも可能.
I
クラス名は data.frame
17 / 24
データフレームの属性
> attributes(quake.d)
$names
[1] "Year"
"Month"
"Day"
[5] "Minute"
"Second"
"Latitude"
[9] "Depth"
"Magnitude"
"Hour"
"Longitude"
$class
[1] "data.frame"
$row.names
[1]
1
[11]
11
[21]
21
[31]
31
[41]
41
[51]
51
2
12
22
32
42
52
3
13
23
33
43
53
4
14
24
34
44
54
5
15
25
35
45
55
6
16
26
36
46
56
7
17
27
37
47
57
8
18
28
38
48
58
9
19
29
39
49
59
10
20
30
40
50
60
18 / 24
データを眺める
> dim(quake.d)
[1] 5126
10
> quake.d[1:10,]
Year Month Day Hour Minute Second Latitude Longitude Depth Magnitude
1 2011
3 10
1
58
31.9 35.76333 136.8650
8
3.2
2 2011
3 10
1
59
19.9 38.47333 143.3717
23
4.4
3 2011
3 10
3
16
14.1 38.27000 142.8783
29
6.4
4 2011
3 10
3
44
35.7 38.47833 143.4317
36
6.3
5 2011
3 10
6
0
54.6 38.25833 142.9117
28
4.9
6 2011
3 10
6
23
56.6 34.17333 135.1317
7
2.5
7 2011
3 10
6
23
59.7 38.17167 143.0433
9
6.8
8 2011
3 10
6
24
51.1 34.17333 135.1383
6
3.0
9 2011
3 10
8
36
56.1 38.39000 143.4067
35
5.2
10 2011
3 10
8
57
39.8 38.37500 143.3033
25
4.9
19 / 24
要約(Summary)
> summary(quake.d)
Year
Month
Min.
:2011
Min.
:3.000
1st Qu.:2011
1st Qu.:3.000
Median :2011
Median :3.000
Mean
:2011
Mean
:3.357
3rd Qu.:2011
3rd Qu.:4.000
Max.
:2011
Max.
:4.000
Day
Min.
: 1.00
1st Qu.:12.00
Median :15.00
Mean
:16.44
3rd Qu.:21.00
Max.
:31.00
Hour
Min.
: 0.00
1st Qu.: 5.00
Median :12.00
Mean
:11.72
3rd Qu.:18.00
Max.
:23.00
I
平均値
I
五数要約:最小値,第1分位点,中央値,第3分位点,最大値
20 / 24
作図の例
> x = 1:10
> x
[1] 1 2
3
4
5
6
7
8
9 10
> y = sin((2*pi/10)*x)
> y
[1] 5.877853e-01 9.510565e-01 9.510565e-01 5.877853e-01
[7] -9.510565e-01 -9.510565e-01 -5.877853e-01 -2.449294e-16
1.224647e-
> plot(x,y)
> plot(x,y,col="red",xlim=c(0,pi),ylim=c(-2,2))
> plot(x,y,type="h") # 垂線プロット
> plot(x,y,type="l") # 折れ線プロット
> z = cos(2*pi/10*x)
> points(x,z,type="l",col="blue") # 重ね描き
21 / 24
パッケージのインストール,読み込み
I
パッケージとライブラリ
I
パッケージ:オブジェクトの集まり,ヘルプなど.
ライブラリ:パッケージを R システムに取り込んだもの.R
のインストール時にいくつか用意されている.
I
今後,用語を区別せず使うことがあります.
I
I
今日の演習では mapdata というパッケージを使う.
I
パッケージのインストール方法は,プリント「統計科学同演
習案内」を参照.
I
一回インストールを行えば,library(ライブラリ名) で読み込
むことができる.
I
利用可能なライブラリは library() で分かる.
22 / 24
S/R オブジェクトの検索
I
オブジェクトの検索
I
I
I
I
検索リストの変更
I
I
I
I
検索リストを得る:search()
各検索場所のオブジェクトを表示:例えば objects(4)
ある名前のオブジェクトを検索:例えば find(”sin”)
追加:attach(リストオブジェクト)
削除:detach(番号)
attach, detach は使いすぎると混乱の元なので要注意.
ソースファイルからのオブジェクトの取り込み
I
source(”hoge.R”) (hoge.R にコマンドが書かれている場合)
23 / 24
貸出し PC について
I
学生証持参のうえ,ITC 窓口で PC を借りてください.授業
終了後は速やかに返却するように.
I
PC の利用には「ITC アカウント」が必要.
I
ITC アカウント:学部生は入学時に配布されている.三田,
日吉,信濃町,矢上,芝共立の5キャンパスのパソコン室で
使用できる.
I
ユーザ名,パスワードを忘れている場合は,学生証を持参の
うえ ITC まで行ってください.
24 / 24