111130 r lecture_presentation
DESCRIPTION
研究室内で行ったR講習会のプレゼンファイルTRANSCRIPT
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
R講習会
Takayuki NUIMURA
名大・雪氷研
30th Nov. 2011
Takayuki NUIMURA R 講習会
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
Outline
1 Rの基本操作コマンドの入力グラフ作成外部データの入出力
2 統計解析統計処理検定
3 時系列データの解析
4 全球気象データ (NetCDF)の処理特定地域の解析全球での解析世界地図と相関結果のプロット
Takayuki NUIMURA R 講習会
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
Rの作図例
Takayuki NUIMURA R 講習会
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
コマンドの入力グラフ作成外部データの入出力
Rの起動と終了
Rの起動
Windows:プログラムメニューから Rを選択
Linux:ターミナルで Rと入力 (大文字なのに注意)
Rの終了コマンド> q()#ワークスペースの保存についての質問は Noで OK
Takayuki NUIMURA R 講習会
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 講習会
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 講習会
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 講習会
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 講習会
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 講習会
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 講習会
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 講習会
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
コマンドの入力グラフ作成外部データの入出力
Rで取り扱えるデータ
一般的なデータだと
xls:csvに変換しといたほうが簡単
csv:簡単に読み込める
txt:csv以外の文字(タブ、スペースなど)区切りデータ
dbf:GISの属性テーブル情報を扱いたいときなど
画像データ:画像処理も
科学関連のデータでは
GeoTiff:リモセンデータ
Shapefile:GISデータ
NetCDF:気候データで一般的
Takayuki NUIMURA R 講習会
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 講習会
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
コマンドの入力グラフ作成外部データの入出力
CSVデータ加工
matrix関数で 2次元配列に変換> temp.matrix <- matrix(temp[,2], 10, 12, byrow=T)
# dim関数で次元数のチェック> dim(temp.matrix)[1] 10 12
Takayuki NUIMURA R 講習会
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 講習会
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 講習会
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
統計処理検定
2次元配列の計算
apply関数で縦・横それぞれの計算
#横方向、つまり年別の平均> apply(temp.matrix, 1, mean)
#縦方向、つまり月別の平均> apply(temp.matrix, 2, mean)
mean以外にも、sum、max、min、sd、summaryなども。
Takayuki NUIMURA R 講習会
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 講習会
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 講習会
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
時系列データの解析の章は保科さんが担当します。
内容
時系列データプロット Download
移動平均 Download
最小二乗法で線形回帰 Download
周波数解析 Download
Takayuki NUIMURA R 講習会
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 講習会
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
特定地域の解析全球での解析世界地図と相関結果のプロット
meanRange.rスクリプトについて
配布したmeanRange.rスクリプトでは
1 抽出する、緯度経度範囲、期間 (1850–2011)の間で指定2 緯度、経度、年を配列番号に換算3 NetCDFデータから指定範囲・期間を抽出4 指定範囲内の JJAS平均を計算5 計算結果を出力
Download
Takayuki NUIMURA R 講習会
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
特定地域の解析全球での解析世界地図と相関結果のプロット
年輪データと全球グリッドの相関
配布した corGlobal.rスクリプトでは
1 解析する期間 (1850–2011)の間で指定2 年を配列番号に換算3 NetCDFデータから指定期間を抽出4 指定範囲内の JJAS平均を計算5 年輪データ (CSV)読み込み6 グリッドごとに相関を計算7 計算結果を出力
Download
Takayuki NUIMURA R 講習会
R の基本操作統計解析
時系列データの解析全球気象データ (NetCDF)の処理
特定地域の解析全球での解析世界地図と相関結果のプロット
世界地図と相関結果のプロット
−150 −100 −50 0 50 100 150
−50
050
Takayuki NUIMURA R 講習会