Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
データの扱い(高校生のためのR入門)
Waseda Live Math
Rではさまざまなデータを分析することができる。
Rのデータセットを使う 外部ファイルを使う
作業ディレクトリの確認と変更 データの探し方
作業ディレクトリ(working directory)の確認と変更
データの扱い
コマンドでは:
作業ディレクトリの確認> getwd()
メニューでは:◎Windowsの場合:「ファイル」→「ディレクトリの変更」
◎Macの場合:「その他」→「作業ディレクトリの変更」
topへ
Windows やmac では作業ディレクトリを変更できる。作業ディレクトリを自分のPCの“デスクトップ”に設定すると操作しやすい。
作業ディレクトリの変更> setwd(“dir_name”)
Waseda Live Math
演習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
③データセットを形式をまとめよう
演習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
演習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
演習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
演習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 型
演習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 値がかなり小さくなった:よってモデルの精度があがった。
係数
係数
データの扱い
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)する関数を探索する
演習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を
説明変数としてよく説明できるか分析していく。そして、たくさんの変数のなかからいくつかの変数を選択し、良いモ
デルを作り、目的変数を説明変数で予測したり、どの説明変数が影響力が強いかなどを分析していく。
演習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)
対散布図
演習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)
残差-推定値
演習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
データの扱い
◎単回帰分析の場合:
①線型モデルの作成(lm)
②2変量の相関係数の計算
③回帰直線の方程式を算出
④回帰直線を含んだ散布図の描画
⑤summary(cars.lm)の分析
⑥予測値と残差の計算
⑦非線型モデル(nls)でのより精密化
※分析の視点:相関関係や予測
topへ
Waseda Live Math
参考:回帰分析の手順
データを選択する(2変量の場合) データを選択する(多変量の場合)
◎重回帰分析の場合:
①多変量の相関係数の計算
②対散布図の描画
③変数の選択
④重回帰モデルの作成(lm)
⑤summary(cars.lm)の分析
⑥回帰診断図の描画
⑦変数の選択しなおし(より精密化)
※分析の視点:予測や影響の強い因子の特定
データの扱い
データの読み込み: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
データの扱い
参考:グラフ描画とデータ型 topへ
Waseda Live Math
グラフを描画するためにデータの型によっては,変換する必要がある.
難易度 データの型(構造) 描画のポイントとコマンド例
低 ts(time series) 時系列による描画(plot)
中 vector, matrix ベクトルや行列による描画(barplot/hist)
中 data.frame項目列による描画(plot/pie/pairs)、
四分位数による描画(boxplot)
高 table data.frameに変換加工後、描画
データの扱い
〇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
参考:データの探し方
データの扱い
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.