24
R の基本操作 統計解析 時系列データの解析 全球気象データ (NetCDF) の処理 初心者向け R 講座 縫村崇行 (NUIMURA, Takayuki) 環境学・雪氷研究室 R 勉強会 (CHERD) 2012/06/20 T. Nuimura 初心者向け R 講座

120620 chred r_presentation2

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

初心者向けR講座

縫村崇行(NUIMURA, Takayuki)

環境学・雪氷研究室

R勉強会 (CHERD)

2012/06/20

T. Nuimura 初心者向け R 講座

Page 2: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

Outline

1 Rの基本操作コマンドの入力グラフ作成外部データの入出力

2 統計解析統計処理検定

3 時系列データの解析

4 全球気象データ (NetCDF)の処理特定地域の解析全球での解析世界地図と相関結果のプロット

T. Nuimura 初心者向け R 講座

Page 3: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

Rの作図例

T. Nuimura 初心者向け R 講座

Page 4: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

Rの起動と終了

Rの起動

Windows:プログラムメニューから Rを選択

Linux:ターミナルで Rと入力 (大文字なのに注意)

Rの終了コマンド> q()#ワークスペースの保存についての質問は Noで OK

T. Nuimura 初心者向け R 講座

Page 5: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

数値入力と変数

数値の計算> 2 + 3[1] 5> 2 ˆ 8[1] 256

変数> temp.dc <- 10> temp.dc[1] 10> temp.df <- 9 / 5 * temp.dc + 32> temp.df[1] 50

T. Nuimura 初心者向け R 講座

Page 6: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

グラフの基礎 (plot関数)

1変数のプロット> temp <- c(10, 20, 15, 25, 20, 20)> plot(temp)

1 2 3 4 5 6

1015

2025

Index

tem

p

T. Nuimura 初心者向け R 講座

Page 7: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

グラフの基礎 (plot関数)

2変数のプロット> year <- c(2000, 2004, 2005, 2007, 2010, 2011)> plot(year, temp)

2000 2002 2004 2006 2008 2010

1015

2025

year

tem

p

T. Nuimura 初心者向け R 講座

Page 8: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

グラフの基礎 (plot関数)

2変数のプロット> year <- c(2000, 2004, 2005, 2007, 2010, 2011)> plot(year, temp, type=“l”, col=“red”, xlim=c(1990, 2020),ylim=c(0, 30))

1990 1995 2000 2005 2010 2015 2020

05

1015

2025

30

year

tem

p

T. Nuimura 初心者向け R 講座

Page 9: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

グラフの基礎 (histogram関数)

ヒストグラムの作成> hist(temp)

Histogram of temp

temp

Fre

quen

cy

10 15 20 25

0.0

0.5

1.0

1.5

2.0

2.5

3.0

T. Nuimura 初心者向け R 講座

Page 10: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

グラフの基礎 (histogram関数)

大量のデータのヒストグラム> hist(rnorm(10000))

Histogram of rnorm(10000)

rnorm(10000)

Fre

quen

cy

−4 −2 0 2 4

050

010

0015

00

T. Nuimura 初心者向け R 講座

Page 11: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

グラフの基礎 (histogram関数)

大量のデータのヒストグラム> hist(rnorm(10000), col=“lightblue”, breaks=100)

Histogram of rnorm(10000)

rnorm(10000)

Fre

quen

cy

−2 0 2 4

010

020

030

040

0

T. Nuimura 初心者向け R 講座

Page 12: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

Rで取り扱えるデータ

一般的なデータだと

xls:csvに変換しといたほうが簡単

csv:簡単に読み込める

txt:csv以外の文字(タブ、スペースなど)区切りデータ

dbf:GISの属性テーブル情報を扱いたいときなど

画像データ:画像処理も

科学関連のデータでは

GeoTiff:リモセンデータ

Shapefile:GISデータ

NetCDF:気候データで一般的

T. Nuimura 初心者向け R 講座

Page 13: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

CSVデータ読み込み

データのある場所に移動

# Windows: Cドライブの r_lectureフォルダの場合> setwd(“C:/r_lecture”)

# Ubuntu: /home/username/r_lectureフォルダの場合> setwd(“/home/username/r_lecture”)

read.csv関数

#月平均気温 (2001–2010)のデータ、> temp <- read.csv(“nagoya_temp.csv”)

T. Nuimura 初心者向け R 講座

Page 14: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

CSVデータ加工

matrix関数で 2次元配列に変換> temp.matrix <- matrix(temp[,2], 10, 12, byrow=T)

# dim関数で次元数のチェック> dim(temp.matrix)[1] 10 12

T. Nuimura 初心者向け R 講座

Page 15: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

CSVデータ出力

2次元配列の列と行にラベルをつける

#列ラベルに月> colnames(temp.matrix) <- 1:12#行ラベルに年> rownames(temp.matrix) <- 2001:2010

2次元配列を CSVに出力> write.csv(temp.matrix, “temp_matrix.csv”)

T. Nuimura 初心者向け R 講座

Page 16: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

コマンドの入力グラフ作成外部データの入出力

NetCDFデータ読み込み

RNetCDFパッケージ

#パッケージの読み込み> library(RNetCDF)

#今回使用するデータは 5◦グリッド、# 1850 Jan.–2011 Oct.の月別気温偏差> nc <- open.nc(“CRUTEM3.nc”)> nc.data <- var.get.nc(nc, “temp”)

# dim関数で次元数のチェック> dim(nc.data)[1] 72 36 1942

※次元数はそれぞれ、経度方向 (W180⇒E180)、緯度方向(S90⇒N90)、時間 (1850年から 160年間×12 + 10)

T. Nuimura 初心者向け R 講座

Page 17: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

統計処理検定

2次元配列の計算

apply関数で縦・横それぞれの計算

#横方向、つまり年別の平均> apply(temp.matrix, 1, mean)

#縦方向、つまり月別の平均> apply(temp.matrix, 2, mean)

mean以外にも、sum、max、min、sd、summaryなども。

T. Nuimura 初心者向け R 講座

Page 18: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

統計処理検定

t検定

t.test関数

# 2001年と 2010年の気温差を検定> t.test(temp.matrix[1,], temp.matrix[10,])t = -0.1723, df = 22, p-value < 0.8648# 2001年と 2010年では有意な気温差なし

# 2001–2010の 1月と 2月の気温差を検定> t.test(temp.matrix[,1], temp.matrix[,2])t = -3.1955, df = 15.935, p-value < 0.005654# 1月と 2月では有意な気温差あり

T. Nuimura 初心者向け R 講座

Page 19: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

統計処理検定

無相関検定

cor.test関数

# 2001年と 2010年の気温の相関> cor.test(temp.matrix[1,], temp.matrix[10,])t = 22.804, df = 10, p-value < 5.93e-10cor 0.9905215#相関係数 0.99の有意な相関

T. Nuimura 初心者向け R 講座

Page 20: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

時系列データの解析の章は保科さんが担当します。

内容

時系列データプロット Download

移動平均 Download

最小二乗法で線形回帰 Download

周波数解析 Download

T. Nuimura 初心者向け R 講座

Page 21: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

特定地域の解析全球での解析世界地図と相関結果のプロット

任意の地域のデータの取り出し

多次元配列データの取り出し方

# 2次元配列の場合# temp.matrixから 2003–2006を抽出> temp.matrix[3:6,]

#加えて、6–9月を抽出> temp.matrix[3:6, 6:9]

3次元配列 (x, y, time)から、指定領域・期間を抽出するには、matrix[x範囲, y範囲, time範囲]

T. Nuimura 初心者向け R 講座

Page 22: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

特定地域の解析全球での解析世界地図と相関結果のプロット

meanRange.rスクリプトについて

配布したmeanRange.rスクリプトでは

1 抽出する、緯度経度範囲、期間 (1850–2011)の間で指定2 緯度、経度、年を配列番号に換算3 NetCDFデータから指定範囲・期間を抽出4 指定範囲内の JJAS平均を計算5 計算結果を出力

Download

T. Nuimura 初心者向け R 講座

Page 23: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

特定地域の解析全球での解析世界地図と相関結果のプロット

年輪データと全球グリッドの相関

配布した corGlobal.rスクリプトでは

1 解析する期間 (1850–2011)の間で指定2 年を配列番号に換算3 NetCDFデータから指定期間を抽出4 指定範囲内の JJAS平均を計算5 年輪データ (CSV)読み込み6 グリッドごとに相関を計算7 計算結果を出力

Download

T. Nuimura 初心者向け R 講座

Page 24: 120620 chred r_presentation2

R の基本操作統計解析

時系列データの解析全球気象データ (NetCDF)の処理

特定地域の解析全球での解析世界地図と相関結果のプロット

世界地図と相関結果のプロット

−150 −100 −50 0 50 100 150

−50

050

T. Nuimura 初心者向け R 講座