111130 r lecture_presentation

24
R の基本操作 統計解析 時系列データの解析 全球気象データ (NetCDF) の処理 R 講習会 Takayuki NUIMURA 名大・雪氷研 30th Nov. 2011 Takayuki NUIMURA R 講習会

Upload: takayuki-nuimura

Post on 30-Jun-2015

1.431 views

Category:

Technology


1 download

DESCRIPTION

研究室内で行ったR講習会のプレゼンファイル

TRANSCRIPT

Page 1: 111130 r lecture_presentation

R の基本操作統計解析

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

R講習会

Takayuki NUIMURA

名大・雪氷研

30th Nov. 2011

Takayuki NUIMURA R 講習会

Page 2: 111130 r lecture_presentation

R の基本操作統計解析

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

Outline

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

2 統計解析統計処理検定

3 時系列データの解析

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

Takayuki NUIMURA R 講習会

Page 3: 111130 r lecture_presentation

R の基本操作統計解析

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

Rの作図例

Takayuki NUIMURA R 講習会

Page 4: 111130 r lecture_presentation

R の基本操作統計解析

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

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

Rの起動と終了

Rの起動

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

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

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

Takayuki NUIMURA R 講習会

Page 5: 111130 r lecture_presentation

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

Takayuki NUIMURA R 講習会

Page 6: 111130 r lecture_presentation

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

Takayuki NUIMURA R 講習会

Page 7: 111130 r lecture_presentation

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

Takayuki NUIMURA R 講習会

Page 8: 111130 r lecture_presentation

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

Takayuki NUIMURA R 講習会

Page 9: 111130 r lecture_presentation

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

Takayuki NUIMURA R 講習会

Page 10: 111130 r lecture_presentation

R の基本操作統計解析

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

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

グラフの基礎 (histogram関数)

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

Histogram of rnorm(10000)

rnorm(10000)

Fre

quen

cy

−4 −2 0 2 4

050

010

0015

00

Takayuki NUIMURA R 講習会

Page 11: 111130 r lecture_presentation

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

Takayuki NUIMURA R 講習会

Page 12: 111130 r lecture_presentation

R の基本操作統計解析

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

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

Rで取り扱えるデータ

一般的なデータだと

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

csv:簡単に読み込める

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

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

画像データ:画像処理も

科学関連のデータでは

GeoTiff:リモセンデータ

Shapefile:GISデータ

NetCDF:気候データで一般的

Takayuki NUIMURA R 講習会

Page 13: 111130 r lecture_presentation

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”)

Takayuki NUIMURA R 講習会

Page 14: 111130 r lecture_presentation

R の基本操作統計解析

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

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

CSVデータ加工

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

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

Takayuki NUIMURA R 講習会

Page 15: 111130 r lecture_presentation

R の基本操作統計解析

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

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

CSVデータ出力

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

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

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

Takayuki NUIMURA R 講習会

Page 16: 111130 r lecture_presentation

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)

Takayuki NUIMURA R 講習会

Page 17: 111130 r lecture_presentation

R の基本操作統計解析

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

統計処理検定

2次元配列の計算

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

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

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

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

Takayuki NUIMURA R 講習会

Page 18: 111130 r lecture_presentation

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月では有意な気温差あり

Takayuki NUIMURA R 講習会

Page 19: 111130 r lecture_presentation

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の有意な相関

Takayuki NUIMURA R 講習会

Page 20: 111130 r lecture_presentation

R の基本操作統計解析

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

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

内容

時系列データプロット Download

移動平均 Download

最小二乗法で線形回帰 Download

周波数解析 Download

Takayuki NUIMURA R 講習会

Page 21: 111130 r lecture_presentation

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範囲]

Takayuki NUIMURA R 講習会

Page 22: 111130 r lecture_presentation

R の基本操作統計解析

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

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

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

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

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

Download

Takayuki NUIMURA R 講習会

Page 23: 111130 r lecture_presentation

R の基本操作統計解析

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

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

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

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

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

Download

Takayuki NUIMURA R 講習会

Page 24: 111130 r lecture_presentation

R の基本操作統計解析

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

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

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

−150 −100 −50 0 50 100 150

−50

050

Takayuki NUIMURA R 講習会