R言語の基礎と記述統計

Download Report

Transcript R言語の基礎と記述統計

第2回 R による記述統計
•
•
•
•
第8章
第9章
第2章
第3章
R における(数値)データ
データフレーム
1つの変数の記述統計
2つの変数の記述統計
• 1.6.5パッケージのインストール
• 1.6.3新しい関数の定義と利用
Rにおけるデータ(8章P205-)
代入(付置)
関数
変数(スカラー)
データフレーム(表)
合成 c( )
合成
data.frame()
変数(ベクトル)合成
縦合成 cbind( )
横合成 rbind( )
編集edit()
NO.
名前 得点 身長
1
青木 5
165
20
和田 8
180
matrix( )
変数(行列)
(数字だけからなるもの)
抽出
DF名$変数名
統計分析の
対象となるデータ表
(異なる型の混在可)
1.6.5パッケージの利用(p35)
• Rの基本パッケージには,基本的な関数や
命令が登録されている.
• 専門的な関数や統計手法は,内容ごとにま
とめて,パッケージとして用意されている.
• パッケージは必要なときにネット上の登録
サイトに読みに行く.(接続先を登録)
• パッケージ→パッケージのインストール
• library(使用するパッケージ名)
8.1 スカラー,ベクトル(p205)
•
•
•
•
•
•
•
変数名は,英数字でも,全角文字でもよい
大文字と小文字は区別される
x <- 5 (x に5というスカラーを代入)
y1 <- c(1,2,4,6,7) ベクトルy1に値を代入
y2 <- 1:5
1から5の連続整数
y3 <- seq(10,2,-2) 10から2まで-2ずつ変化
y4 <- rep(1,8)
同じ数字を個数並べる
8.2ベクトルの基本演算
• 項毎の四則演算
– veca + vecb,veca – vecb,veca * vecb,veca / vecb
• ベクトル間の内積
– veca %*% vecb
• ベクトルのスカラー倍
– veca * 5
• ベクトルの要素を取り出す
– veca[2], veca[2:4], veca[c(2,4,5)]
8.3 行列(p210)
• 要素を全部指定するならmatrix
– matrix(行列の要素の並び,nrow=行数,ncol=列数)
– matrix(1:12, nrow=3,ncol=4) またはmatrix(1:12,
3, 4)
– 列方向優先で要素が並ぶ.行方向優先なら
matrix(要素,行数,列数,byrow=TRUE)
• 列ベクトルを横方向に連結するならcbind
– cbind(veca,vecb)
• 行ベクトルを上下にかさねるのは rbind
– rbind(veca,vecb)
8.3行列の基本演算(p213)
• 要素ごとの四則演算 +-*/
• 転置行列 t( )
• 行列の積
– mata %*% matc mata %*% t(mata)
• 行列の要素
– mata[行,列] 指定なしで全部を取り出す
• 行列式
• 逆行列
• 固有値
det( )
solve( )
eigen( )
9.1外部データファイルの読み込み方
データフレームに代入(付置)する.
• テキストファイル(タブ区切り)
データフレーム名 <- read.table( “ファイル名”, header=TRUE)
• クリップボード(Excelでコピー)
データフレーム名 <- read.table( “clipboard”,header=TRUE)
• CSVファイル(コンマ区切り)
データフレーム名 <- read.csv( “ファイル名”)
Excelファイルを直接読むためには,xlsxパッケージ内の関数を使う
2章で使うデータフレームの
Excel File
クリップボードから読み込み
データフレーム名$データ名 として使う
Excelファイルの直接読み込み
• xlsファイル
– gdataパッケージを読み込む(perlがある場合)
– library(gdata)
– データフレーム名<-read.xls(“xlsファイル名”)
• xlsxファイル
– xlsxパッケージを読み込む(javaが必要)
– library(xlsx)
– データフレーム名<-read.xlsx(“xlsxファイル名”)
9.7データフレームの編集(p246)
• 新DF名 <- edit(データフレーム名)
– データエディタウインドウで編集できる
データフレームの操作関数
save(DF, file=(“ファイル名.xdr”)
データフレーム(表)
変数
NO.
名前 得点 身長
1
青木 5
165
XDR形式(バイナリー)ファイル
DF <- load( “ファイル名.xdr”)
Subset(DF, 条件式,select=c(変数リスト))
条件を与えて一部のケース
を取り出す
ケース
20
和田 8
180
data.frame(DF1,DF2, ・・・)
merge(DF1,DF2, ・・・,all=TRUE)
データフレームを
横方向に結合
Subset(DF, select=c(変数リスト))
リストに従い一部の
変数を取り出す
DF1[n+1:n+k] <- DF2
現在存在しないケース番号に
別のデータフレームを代入し
て,縦方向に結合
Transform(DF, 変数=計算式)
データフレーム中の変数
を計算式で置き換える.
新変数も追加可能
第2章 1つの変数の記述統計
• データの持つ特徴を簡潔に記述する
– 20人の英語の成績データ
– →「このクラスは大体このような英語力です」
• 数値要約 「大体60点です」
2.3変数の種類
• 量的変数
(四則演算ができる.平均が意味を持つ)
– 比例尺度(0が意味を持つ)絶対零度
– 間隔尺度(間隔のみが意味を持つ)高度,温度
• 質的変数・・・・カテゴリーデータ(factor変数)
– (四則演算が意味を持たない)
– 順序尺度(大小関係が意味を持つ)好き嫌い
Factor Ordered
– 名義尺度(単に区別しているだけ)
Factor non-ordered
データフレーム名$データ名 として使う
カテゴリーデータ(順序付)の定義
• 文字列を用いてデータフレームを作る
カテゴリー変数名<-factor(factor変数,水準を表す文字列
のベクトル, labels=各水準の意味を示す文字ベクトル
,ordered=TRUE)
• カテゴリーを表す数値を用いて定義する
カテゴリー変数名<-factor(数値変数,水準を表す数字のベクトル,
labels=各水準の意味を示す文字ベクトル,ordered=TRUE)
• 連続数値データから分類して作る
カテゴリー変数名<-cut(数値変数,breaks=分割点ベクト
ル,right=FALSE,labels=意味を示す文字ベクトル
,ordered_result=TRUE)
2.4変数の視覚的表現(p.40)
度数分布表 table(ベクトル)
ヒストグラム hist(ベクトル)
度数分布表(離散分布)
• データがとりうる値のそれぞれについて,
その出現回数を度数 frequency という
可能な値 度数
x1
f1
x2
f2
fi
xk
fk
f1
合計
n
x1
xi
度数分布表を図(棒グラフ)で表したものをヒストグラム
(histogram) という
階級による度数分布表
階級
階級値
9.95 ~ 10.85 10.4
10.85~11.75 11.3
11.75~ 12.65 12.2
12.65~13.55 13.1
13.55 ~14.45
14.45~15.35
15.35~16.25
度数 相対度数 累積度数 累積相対度数
1
0.02
1
0.02
14.0
14.9
15.8
6
7
12
0.12
0.14
0.24
7
14
26
0.14
0.28
0.52
12
9
3
0.24
0.18
0.06
38
47
50
0.76
0.94
1.00
Sturgesの式 :データ数 に対して階級数を決める一つの目安
階級数 = 1 
log
10
n
log
10
2
nが50前後→ 5~7階級
nが100前後→ 8~12階級
nが100以上→ 10~20階級
階級による度数分布の表現
n
fi
fi
Fi
f1
f1
x1
xi
ヒストグラム
F1
x1
xi
度数折れ線
b1
bi
累積度数折れ線
bk
箱ひげ図 boxplot(変数名) MIN,1QL,Median,3QL,MAX
2.5平均 2.6代表値 (p42)
• 代表値 20人の値を代表するひとつの値
• 平均=合計の値/データの個数
mean(ベクトル)=sum(ベクトル)/length(ベクトル)
• 中央値(median)
– median(ベクトル)
• 最頻値(mode)
特性値(代表値)
• 代表値:分布の特徴を代表する数値
– 平均 mean
1 n
x   x i
n i 1
– メディアン(中位数)median
x (k  1 )

 n  2k  1
~
x 


 ( x ( k )  x ( k 1) ) / 2  n  2 k
– モード(最頻値) mode
• 最多の頻度を持つ階級の階級値
x 
1
k

n
f i xi
i 1
n / 2  Fi  1
~
x  a i 1  h
Fi  Fi  1
2.7散布度(p46)
• 分布の特徴を把握しようとする場合,中心
的位置を表す「代表値」に加えて,どの程度
のちらばり,バラツキがあるのかを示すこ
とが必要となる.
– 散らばり,ばらつきの程度を表す数値を「散布
度」という.
• 分散=平均からの偏差の2乗の平均値
=2乗の平均値-平均値の2乗
• 標準偏差=分散の正の平方根
特性値(散布度)
• 散布度:データが平均のまわりに集中して分布
するか,平均のまわりから散らばって分布するか
の程度を表わす数値
– 分散 variance
n
1
2
2
 ( x )   ( x i  x )
n i 1
– 平均偏差 mean deviation
MD ( x ) 
1

n
x i  x
– 四分偏差 quartile deviation
Q ( x) 
2
2
( Q 3 ( x )  Q1 ( x ))
k

n
( xi  x ) f i
2
i 1
n
i 1
1
 ( x) 
1
MD ( x ) 
1
k

n
i 1
xi  x f i
標準偏差
• 分散の正の平方根
– もとのデータと同じ単位を持つ
 ( x) 
1
n

n
i 1
( x i  x )
2
 ( x) 
1
k
(x

n
i 1
 x ) fi
2
i
不偏分散と不偏標準偏差
• 標本分散:データからそのまま計算した分散
– (平均からの偏差2乗の和/データ数)
• 標本標準偏差:その平方根
• 不偏分散:データが母集団からのサンプルであ
ると考えたときの母集団の分散:var( )
– 平均からの偏差2乗の和/(データ数ー1)
• 不偏標準偏差:不偏分散の平方根 :sd( )
1.6.3関数を自作する(p31)
• 標本分散を求める関数 varp( ) を新しく作る
varp <- function(x) {
+ 標本分散 <- var(x) *(length(x)-1)/length(x)
+ 標本分散
+}
• 使うときは,すでにある関数と同様に,
> varp(テストa)
[1] 6.3
Rにおける記述統計
• 個別の関数
– Mean(変数名),sd(変数名)
• NA (欠損値)があると計算できない
• Mean(変数名,na.rm=TRUE)
– 代替関数の定義
• Mean2 <- function(x) mean(x, na.rm=TRUE)
• Mean2(変数名)
• 数個の記述統計を一括表示
– Summary(変数名)
• 特定の関数を選択的に適用
– Sapply(対象となる変数,関数,na.rom=TRUE)
2.9 その他の散布度
• 平均偏差:「平均からの偏差の絶対値」の平均値
dvave <- function(x) {
+ 平均偏差 <- mean(abs(x - mean(x)))
+ 平均偏差
+}
• 範囲(レンジ):最大値と最小値との差
> drange <- function(x) {
+ 範囲 <- max(x) - min(x)
+ 範囲
+}
2.10標準化(p51) 2.11偏差値(p53)
• Z得点:
– (データの値-平均値)/標準偏差
– この得点の平均は0,分散,標準偏差は1
• 偏差値:z得点×10+50
– 偏差値の平均は50,分散は100,標準偏差は10
2章練習問題(p54)
(1)以下はA大学とB大学の学生(各10人)の一日
のテレビの視聴時間(単位は分)のデータです.大
学ごとにヒストグラムを描いてみましょう
A大学:60,100,50,40,50,230,120,240,200,30
B大学:50,60,40,50,100,80,30,20,100,120
(2)上記のデータについて,大学ごとに平均と標準
偏差を求めてみましょう
(3)上記のデータについて,大学ごとにデータを標
準化してみましょう
【問題1】代表値の算出
次のデータは,あるカルチャーセンターにおける読書会の
会員40名の年齢である.スタージェスの式をもちいて度
数分布表・ヒストグラム・累積度数分布図を作成せよ.ま
た,平均値,最大値,最小値,中位数,最頻値を求めよ.
53 37 19 45 60 51 40 23 41 58
57 44 65 44 43 23 36 62 35 47
37 46 72 51 24 18 31 50 54 29
50 43 30 49 36 53 43 54 40 44
【問題2】代表値の算出
• 問題1のデータから,分散,標準偏差,4分偏差
を求めよ.
• 問題1で作成した度数分布表から,それらの数
値を求めて比較せよ
53 37 19 45 60 51 40 23 41 58
57 44 65 44 43 23 36 62 35 47
37 46 72 51 24 18 31 50 54 29
50 43 30 49 36 53 43 54 40 44
【問題3】分散の計算方法
• 分散は次式で定義されている
 ( x) 
2
n
1

n
2

( xi  x )
i 1
• その値は次の方法で計算できることを示せ
 ( x) 
2
1
n

n
i 1
( x i )  x
2
2
【問題4】標準偏差による基準化
• あるクラスの英語の試験の平均点 x は67で標
準偏差 ( x )は8.5.また,数学の試験の平均点 y
は53で標準偏差  ( y ) は12.6でした.
• このクラスのA君の成績は英語が75点で数学が
68点でした.
• A君のクラスでの成績は,英語と数学のどちらの
順位が上でしょうか.
第3章 2つの変数の記述統計
• データの持つ特徴を簡潔に記述する(p55)
– ここでは、2つの変数の関係を記述したい
• 相関 「国語の点数が高い人ほど、英語の点数
が高い」(量的変数同士の関係)
• 連関 「洋食派には甘党が多く、和食派には辛党
が多い」(質的変数同士の関係)
• 相関があっても、因果関係によるものかは不明
– 「国語の成績が良いから、英語の教科書がうまく理解
できて、英語の成績が上った」のかどうかは不明
散布図 Scatter Diagram
• 変量 x, y の組の測定値 ( x i , y i ) を
平面上にプロットした図
y
y
x
y
x
plot(ベクトル1,ベクトル2)
x
2変量の関係を表わす数値
1
• 共分散 covariance
C ( x, y ) 
n
– 測定単位の影響を受ける
1
– 不偏共分散
C ( x, y ) 
n
 ( x   x )( y   y )
i
i
i 1
n
( x   x )( y   y )

n 1
i
i
i 1
cov(ベクトル1,ベクトル2)
±1.0
• 相関係数 correlation coefficient
 ( x, y ) 
C ( x, y )
 ( x ) ( y )
cor(ベクトル1,ベクトル2)
強い相関
± 0.7
中程度の相関
± 0.4
弱い相関
± 0.2
相関なし
0.0
クロス集計表
table(数学,統計)
> 数学 <- 指導法データ$数学
> 統計 <- 指導法データ$統計
> table(数学,統計)
統計
数学 嫌い 好き
嫌い 10 4
好き 2 4
Φ係数
• Φ係数:2値の質的データを1,0で置き換え
たときの相関係数
> 数学イチゼロ <-ifelse(数学=="好き",1,0)
> 統計イチゼロ <- ifelse(統計=="好き",1,0)
> 数学イチゼロ
[1] 0 0 1 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0
> 統計イチゼロ
[1] 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0
> cor(数学イチゼロ,統計イチゼロ)
[1] 0.3563483
2変量の度数分布表(クロス集計表)
• 変量がとりうる値が多いとき
y
x
x1
・・・
・・・
y1
f 11
:
:
xm
f m1
・・・
計
f 1
・・・
共分散
C ( x, y ) 
1
m
計
f1n
f 1
:
:
f mn
f n
f m
n
n
(x


n
i 1
yn
i
 x )( y j  y ) f ij 
j 1
相関係数  ( x , y )  C ( x , y )
 ( x ) ( y )
1
m
n
x


n
i 1
j 1
i
y j f ij  x y
【問題5】データからの相関係数の計算
• 次のデータについて,共分散,相関係数を求めよ
表 1.3: 二酸化硫黄と二酸化窒素の濃度
時刻
二酸化硫黄
二酸化窒素
1
2
3
4
5
6
7
8
9
10
11
12
x
23
21
18
17
17
15
13
14
16
17
17
35
y
43
28
17
16
16
10
5
5
8
13
11
28
時刻
二酸化硫黄
二酸化窒素
13
14
15
16
17
18
19
20
21
22
23
24
x
38
51
109
90
78
75
34
33
29
31
25
25
y
21
37
65
65
50
58
42
52
55
55
55
51
【問題6】同時度数分布表からの相関係数の計算
• ある学校のあるクラス50名の英文法の試験の成績xと
英会話の成績yの同時度数分布は以下のようであった
• 英文法の平均点と分散を求めよ
• 英会話の平均点と分散を求めよ
• 共分散と相関係数を求めよ
y
x
44.5
24.5
1
34.5
1
44.5
54.5
64.5
74.5
84.5
計
1
2
1
2
4
1
4
2
1
54.5
1
3
8
5
3
20
64.5
1
2
2
4
1
10
2
3
5
1
1
74.5
84.5
計
5
10
17
14
8
4
50