18
データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。 Rのデータセットを使う 外部ファイルを使う 作業ディレクトリの確認と変更 データの探し方

データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

データの扱い(高校生のためのR入門)

Waseda Live Math

Rではさまざまなデータを分析することができる。

Rのデータセットを使う 外部ファイルを使う

作業ディレクトリの確認と変更 データの探し方

Page 2: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

作業ディレクトリ(working directory)の確認と変更

データの扱い

コマンドでは:

作業ディレクトリの確認> getwd()

メニューでは:◎Windowsの場合:「ファイル」→「ディレクトリの変更」

◎Macの場合:「その他」→「作業ディレクトリの変更」

topへ

Windows やmac では作業ディレクトリを変更できる。作業ディレクトリを自分のPCの“デスクトップ”に設定すると操作しやすい。

作業ディレクトリの変更> setwd(“dir_name”)

Waseda Live Math

Page 3: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

演習1:Rのデータセットの形式を確認する( 例:データセット名:sampleの場合)

データの扱い

②データセットの形式を確認しよう> str(sample) # データ構造の確認> class(sample) # データの形式の確認

>mode(sample) # データの形式の確認

①データセットの呼び出してみよう> sample

Rのデータの形式の確認には,物理的なmode()や抽象的なclass()がある。

mode():要素の確認・numeric, list, function, characterなど

class():属性の確認・数値(numeric):ベクトル (vector)・行列 (matrix)・配列 (array)・リスト (list)・テーブル(table)・データフレーム ( data.frame)・時系列データ(ts)など

topへ

Waseda Live Math

③データセットを形式をまとめよう

Page 4: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

演習2:Rのデータセットの扱い(crimtab:table型を例に)

データの扱い

①データセットの呼び出し(table型)> crimtab

②データセットの形式の確認(crimtab)> str(crimtab) # データ構造の確認> class(crimtab) # データの形式の確認

③データ形式の変換(例:データフレームへ変換)(crimtab1)>crimtab1 <- data.frame(crimtab)

④データ形式をcsvに変換してデスクトップへ保存(crimtab2.csv)>write.csv(crimtab1,"crimtab2.csv",row.names=FALSE)

⑤データの読み込み(crimtab2)> crimtab2<- read.csv (“crimtab2.csv”, header=TRUE)

# header=TRUE 最初の行にラベル有,FALSE ラベル無

⑥データcrimtab2を操作する・各列の抽出 crimtab2$Var1…中指

crimtab2$Var2…身長crimtab2$Freq…度数

・グラフ描画plot(crimtab2$Var1, crimtab2$Freq) plot(crimtab2$Var2, crimtab2$Freq)

・基本統計量(平均,標準偏差,中央値,モード)の計算

topへ

〇 作業ディレクトリ(working directory)をデスクトップへ

Waseda Live Math

Page 5: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

演習2の補足:データフレームについて str( )

データの扱い

③データ形式の変換(例:データフレームへ変換)(crimtab1)>crimtab1 <- data.frame(crimtab)

>str(crimtab1)

‘data.frame’: 924 obs. of 3 variables: # 924 データと3変数$ Var1: Factor w/ 42 levels “9.4”,“9.5”,“9.6”,..: 1 2 3 4 5 6 7 8 9 10 ... # 42レベルの因子(factor) $ Var2: Factor w/ 22 levels “142.24”,“144.78”,..: 1 1 1 1 1 1 1 1 1 1 ... #22レベルの因子(factor) $ Freq: int 0 0 0 0 0 0 1 0 0 0 ... # 整数型(int)のデータ

*factor型はデータ処理に不向きなデータ型であるので,この変数を数値型にする必要がある.そのためにcrimtab1をcsvファイルに変換した.

topへ

Waseda Live Math

Page 6: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

演習3:線型回帰分析(Rのデータセットcarsを使う)

データの扱い

①データセットの呼び出し(data.frame型)> cars

②データセットの形式の確認> str(cars) # データ構造の確認> class(cars) # データの形式の確認

③carsを線型回帰分析しよう(cars.lmの作成)・説明変量・目的変量の確認,2変量の相関係数を計算する・回帰直線の方程式を求める・回帰直線を含んだ散布図を描く・summary(cars.lm)を作成する・予測値と残差を計算する・60マイルの停止距離を求める

topへ

speed dist

1 4 2

2 4 10

3 7 4

4 7 22

5 8 16

6 9 10

・ ・ ・

2変量の線型単回帰の場合:y=a+bx 型cars: data.frame型

Waseda Live Math

Page 7: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

演習3の補足:線型回帰分析 (summaryを分析)

データの扱い

・cars.lmの作成

・2変量の相関係数を計算する>cor(cars$speed, cars$dist)

[1] 0.8068949

・回帰直線の方程式を求める> round(coefficients(cars.lm), 2)

(Intercept) speed -17.58 3.93

(予測)・60マイルの停止距離を求める

dist=3.93*speed-17.58を利用

topへ

Waseda Live Math

・summary(cars.lm)の作成> summary(cars.lm)

Residuals:Min 1Q Median 3Q Max

-29.069 -9.525 -2.272 9.215 43.201

Coefficients:Estimate Std. Error t value Pr(>|t|)

(Intercept) -17.5791 6.7584 -2.601 0.0123 * speed 3.9324 0.4155 9.464 1.49e-12 ***

Residual standard error: 15.38 on 48 degrees of freedomMultiple R-squared: 0.6511, Adjusted R-squared: 0.6438 F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12

残差の四分位数

係数 標準誤差 t 値 p 値(小さいほどこの係数は有効)

決定係数 調整済み決定係数

決定係数が1に近いほど回帰モデルは実データに近い

2変量の線型単回帰の場合:y=a+bx 型

Page 8: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

演習3の補足:非線型回帰分析(多項式回帰を例に)

データの扱い

> y<-cars$dist> x<-cars$speed

> cars.nlm1<-nls(y~a+b*x+c*x^2+d*x^3,start=c(a=1,b=1,c=1,d=1),trace=T)2257006763 : 1 1 1 110634.36 : -19.50504910 6.80110597 -0.34965781 0.01025205

> summary(cars.nlm1)Formula: y ~ a + b * x + c * x^2 + d * x^3

Parameters:Estimate Std. Error t value Pr(>|t|)

a -19.50505 28.40530 -0.687 0.496b 6.80111 6.80114 1.000 0.323c -0.34966 0.49988 -0.699 0.488d 0.01025 0.01130 0.907 0.369

Residual standard error: 15.2 on 46 degrees of freedom

Number of iterations to convergence: 1 Achieved convergence tolerance: 2.441e-08

topへ

2変量の非線型単回帰の場合(多項式で近似:y=a+bx+cx2+dx3型)

Waseda Live Math

> cars.nlm2<-nls(y~b*x+d*x^3,start=c(b=1,d=1),trace=T)2056255663 : 1 110751.04 : 1.97514708 0.00257267

> summary(cars.nlm2)Formula: y ~ b * x + d * x^3

Parameters:Estimate Std. Error t value Pr(>|t|)

b 1.9751471 0.3250123 6.077 1.91e-07 ***d 0.0025727 0.0008204 3.136 0.00292 ** ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 14.97 on 48 degrees of freedom

Number of iterations to convergence: 1 Achieved convergence tolerance: 3.102e-09

p 値の判断:値が比較して大きいa, c を無視する

再モデル化:b, d で再度計算する

p 値がかなり小さくなった:よってモデルの精度があがった。

係数

係数

Page 9: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

データの扱い

topへ

Waseda Live Math

> plot(x,y)

> lines(x,fitted(cars.nlm1),lty=1,col=2)

> lines(x,fitted(cars.nlm2),lty=1,col=4)

演習3の補足:非線型回帰分析(多項式回帰を例に)

col=2:赤のグラフcol=4:青のグラフ

2変量の非線型単回帰の場合(多項式で近似:y=a+bx+cx2+dx3型)

元のデータによりよく適合(fit)する関数を探索する

Page 10: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

演習4:重回帰分析(Rのデータセットairqualityを使う)

データの扱い

①データセットの呼び出し(data.frame型)> airquality

②データセットの型の確認>str(airquality)

③欠損値の削除(欠損値がある場合)> airq <-na.omit(airquality) #欠損値の削除

④相関関係> round(cor(airq),3) # 小数第3位の相関係数

topへ

多変量での回帰分析(重回帰分析入門) airquality: data.frame型

Ozone Solar.R Wind Temp Month Day

1 41 190 7.4 67 5 1

2 36 118 8.0 72 5 2

3 12 149 12.6 74 5 3

4 18 313 11.5 62 5 4

5 NA NA 14.3 56 5 5

6 28 NA 14.9 66 5 6

・ ・ ・ ・ ・ ・ ・

Waseda Live Math

相関係数 Ozone Solar.R Wind Temp Month Day

Ozone 1.000 0.348 -0.612 0.699 0.143 -0.005

Solar.R 0.348 1.000 -0.127 0.294 -0.074 -0.058

Wind -0.612 -0.127 1.000 -0.497 -0.194 0.050

Temp 0.699 0.294 -0.497 1.000 0.404 -0.097

Month 0.143 -0.074 -0.194 0.404 1.000 -0.009

Day -0.005 -0.058 0.050 -0.097 -0.009 1.000

※重回帰分析の目的(これはかなり難しい内容だが概略を説明する)この例では、Ozone(目的変数)がSolar.R, Wind,Temp,Month,Dayを

説明変数としてよく説明できるか分析していく。そして、たくさんの変数のなかからいくつかの変数を選択し、良いモ

デルを作り、目的変数を説明変数で予測したり、どの説明変数が影響力が強いかなどを分析していく。

Page 11: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

演習4の補足(重回帰分析)

データの扱い

topへ

重回帰分析の入り口:y=a0+a1x1+a2x2+a3x3 型

Waseda Live Math

複数間のデータを分析するにはどのように考えていけばいいだろうか?このairqualityの場合,例えば,目的変量をSolar.R,説明変量をOzone, Wind, Tempとしてもその説明変量間にも関連(交互作用)があるので,単純に

y=a0+a1x1+a2x2+a3x3

とはいかないが,まずはこのモデルで行う(もう少し複雑な方法もある)。

①対散布図の作成>pairs(airq)

②多変数のモデル(air.lm1)の作成>air.lm1<-lm(Solar.R~Ozone+Wind+Temp, data=airq)

③結果>summary(air.lm1)

④回帰診断図>par(mfrow=c(2,2)) # 2行2列の図表示>plot(air.lm1)

対散布図

Page 12: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

演習4の補足(airqualityを例に回帰分析)

データの扱い

topへ

重回帰分析の回帰診断図(残差分析)

Waseda Live Math

標準化残差正規Q-Qプロット

150 200 250

-100

0100

Fitted values

Resid

uals

Residuals vs Fitted

16419

-2 -1 0 1 2

-2-1

01

2

Theoretical Quantiles

Sta

ndard

ized r

esid

uals

Normal Q-Q

164

9

150 200 250

0.0

0.5

1.0

1.5

Fitted valuesS

tandard

ized r

esid

uals

Scale-Location164 9

0.00 0.10 0.20

-2-1

01

2

Leverage

Sta

ndard

ized r

esid

uals

Cook's distance

0.5

Residuals vs Leverage

9148

4

回帰診断図

>summary(air.lm1)

Residuals:Min 1Q Median 3Q Max

-152.56 -55.71 -10.10 65.72 186.44

Coefficients:Estimate Std. Error t value Pr(>|t|)

(Intercept) 16.0955 96.5896 0.167 0.8680 Ozone 0.9790 0.3795 2.580 0.0112 *Wind 3.8735 2.9271 1.323 0.1886 Temp 1.1439 1.2071 0.948 0.3454 ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 85.69 on 107 degrees of freedomMultiple R-squared: 0.1404, Adjusted R-squared: 0.1163 F-statistic: 5.827 on 3 and 107 DF, p-value: 0.0009995

残差の正の平方根-推定値 標準化残差-てこ比(Leverage)

残差-推定値

Page 13: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

演習4:重回帰分析(Rのデータセットairqualityを使う)

データの扱い

①次の2変量に着目して線型回帰分析(air.lm)

Solar.R:目的変量,Ozone:説明変量の場合.(太陽光量)

> air.lm<-lm(Solar.R~Ozone, data=airq)

> summary(air.lm)

> plot(airq$Ozone, airq$Solar.R)

> abline(air.lm, lwd=2)

②あとは演習3と同様にして分析する相関係数(cor),予測値・残差(predict,residuals)の計算

topへ

多変量を単回帰分析する場合(際立つ2変量に着目)

Waseda Live Math

0 50 100 150

05

01

00

15

02

00

25

03

00

airq$Ozone

air

q$

So

lar.

R

Page 14: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

データの扱い

◎単回帰分析の場合:

①線型モデルの作成(lm)

②2変量の相関係数の計算

③回帰直線の方程式を算出

④回帰直線を含んだ散布図の描画

⑤summary(cars.lm)の分析

⑥予測値と残差の計算

⑦非線型モデル(nls)でのより精密化

※分析の視点:相関関係や予測

topへ

Waseda Live Math

参考:回帰分析の手順

データを選択する(2変量の場合) データを選択する(多変量の場合)

◎重回帰分析の場合:

①多変量の相関係数の計算

②対散布図の描画

③変数の選択

④重回帰モデルの作成(lm)

⑤summary(cars.lm)の分析

⑥回帰診断図の描画

⑦変数の選択しなおし(より精密化)

※分析の視点:予測や影響の強い因子の特定

Page 15: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

データの扱い

データの読み込み:sample.csvをsample1として読み込む.

> sample1 <- read.csv (“sample.csv”, header=TRUE) # header=TRUE 最初の行にラベル有,FALSE ラベル無

データの書き込み:sample1をsample2.csvとして保存する.

> write.csv (sample1, “sample2.csv”, row.names=FALSE)

# row.names=FALSEとすると最左列のヘッダ無

参考:外部ファイルを利用して分析するために ( 例:sample.csv)

前処理〇 作業ディレクトリ(working directory)をデスクトップ〇 sample.csvをデスクトップへ〇 EXCELファイル(sample.xlsx)の場合は,sample.csvに変換しておくといい。

topへ

Waseda Live Math

Page 16: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

データの扱い

参考:グラフ描画とデータ型 topへ

Waseda Live Math

グラフを描画するためにデータの型によっては,変換する必要がある.

難易度 データの型(構造) 描画のポイントとコマンド例

低 ts(time series) 時系列による描画(plot)

中 vector, matrix ベクトルや行列による描画(barplot/hist)

中 data.frame項目列による描画(plot/pie/pairs)、

四分位数による描画(boxplot)

高 table data.frameに変換加工後、描画

Page 17: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

データの扱い

〇Rのデータセット「The R Datasets Package」

https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/00Index.html

〇「データカタログサイト」

各府省の保有データをオープンデータとして利用できる。

http://www.data.go.jp/

〇RESAS(地域経済分析システム)

https://resas.go.jp/#/13/13101

〇GIS(地理情報システム)

https://www.esrij.com/getting-started/what-is-gis/

topへ

Waseda Live Math

参考:データの探し方

Page 18: データの扱い(高校生のためのR入門)データの扱い(高校生のためのR入門) Waseda Live Math Rではさまざまなデータを分析することができる。Rのデータセットを使う

データの扱い

topへ

Waseda Live Math

参考:お勧めRデータセット

ability.cov:Ability and Intelligence Tests.airquality:New York Air Quality Measurements.attitude:The Chatterjee-Price Attitude Data.BOD:Biochemical Oxygen Demand.cars:Speed and Stopping Distances of Cars.co2:Mauna Loa Atmospheric CO2 Concentration.crimtab:Student's 3000 Criminals Data.Formaldehyde:Determination of Formaldehyde.freeny:Freeny's Revenue Data.freeny.x:Freeny's Revenue Data.freeny.y:Freeny's Revenue Data.HairEyeColor:Hair and Eye Color of Statistics Students.Harman23.cor:Harman Example 2.3.Harman74.cor:Harman Example 7.4.

iris:Edgar Anderson's Iris Data.iris3:Edgar Anderson's Iris Data.islands:Areas of the World's Major Landmasses.longley:Longley's Economic Regression Data.morley:Michelson Speed of Light Data.mtcars:Motor Trend Car Road Tests.pressure:Vapor Pressure of Mercury as a Function of Temperature.quakes:Locations of Earthquakes off Fiji.sleep:Student's Sleep Data.UCBAdmissions:Student Admissions at UC Berkeley.UKDriverDeaths:Road Casualties in Great Britain 1969-84.USJudgeRatings:Lawyers' Ratings of State Judges in the US Superior Court.women:Average Heights and Weights for American Women.WorldPhones:The World's Telephones.