北極振動指数と日本各地の気温の関係を調べる 2008.12.2 環境システム科学演習 2回目 FORTRAN 文法について ①コメント ②定数 ③配列 ④入出力文 ⑤文字の結合 ⑥IF文 ⑦IF文 ⑧副プログラム(サブルーチン) その他・・・・ 演習:相関 北極振動指数と日本各地の気温の関係を調べる
北極海は国内旅行程度 の範囲にある 日本の気候は バランスで決まる
陸 海 偏西風
陸 海 偏西風 高温⇒低圧 季節風 低温⇒高圧
季節風 陸 海 低温⇒高圧 高温⇒低圧 偏西風
温暖 寒冷 温暖 寒冷 出典:探検しようみんなの地球 http://www.mofa.go.jp/mofaj/gaiko/oda/sanka/kyouiku/kaihatsu/chikyu/statistics/nature/graph_02.html
北極振動とは? 「北極海で気圧が下がれば、北大西洋、北太平洋で気圧が上がり」、 「北極海で気圧が上がれば、北大西洋、北太平洋で気圧が下がる」というパターン。 北極海で低気圧偏差のときーー>北極振動指数は正 北極海で高気圧偏差のときーー>北極振動指数は負 黒 白 灰 灰 黒 北極振動のパターン
①コメント Cから始まる行は、何もしない コメント行 !以降は、何もしない コメント
②定数 PARAMETER は定数を与える CHARACTER は文字であることを宣言 REAL なら実数であることを宣言 INTEGERなら整数であることを宣言 暗黙の了解について: 何も宣言しないならば、 A-H,O-Zは実数 I-Nは整数 になる
③配列 DIMENSION 配列であることを宣言
装置(この場合はファイル)をOPENする ④入出力 装置(この場合はファイル)をOPENする ファイルを読み込んだり、 ファイルに書き込んだりする 暗黙の了解について: 5番はキーボード 6番はCRT(画面) READ(*,*) の最初の*はキーボード WRITE(*,*) の最初の*は画面 つまり、 READ(*,*)はREAD(5,*) と同じ WRITE(*,*) はWRITE(6,*)と同じ 5番、6番以外はファイルを指定する
⑤文字の結合 CHARACTERで宣言しないときは、 ’ ’ で囲めば文字変数になる FNは3文字の文字であると宣言した。 ’ ’ で囲めば文字変数になる FNは3文字の文字であると宣言した。 ’A0’と’.TXT’は数値ではなく 文字「A0」と「TXT」である。 ’A0’ //FN// ’.TXT’ は、FNとして、 ATS を指定すると 「A0ATS.TXT」 という文字を意味する。
⑥DOループ 内側: Jが1~Nまでを繰返し行うという意味です。 上の表の矢印の順に作業を行います。 ここでは、11番のファイル「AO.TXT」から順番に1からM(=12)まで読み込むことを意味します。 Jについて2つおき行いたい場合には、 J=1,M,2 とします。 外側: 外側も同じです。上の表の点線にのように作業します。
⑦IF文 IFのブロック 判定を行う、IF文です。 ここでは、 もし、Jが11以上ならば、 IF(J.GE.11) THENと END IFに挟まれた部分の計算を行います。 実際には、Jが11よりも大きな値を取るのは、J=11かJ=12しかありません。 つまり、11月と12月だけ考えますよというものです。 IFのブロック 11月と12月の和を計算したので、その0.5倍しています。これは11-12月の平均を求めているのです。 ここでは、X(I)を計算しているものを説明します。 I=1(1950年)から始まります。 J=11のとき初めて、IFブロックに入ります。 そして、 AOTMPにAO(1,11)の値を入れますよとしています。 配列X(1)にAOTMPとX(1)を足したものを与えます。 この演算を行う前には、X(1)は、まだ何も数値を与えていないので、X(1)は0です。 演算後、次に、J=12になります。これも、11以上ですから、演算を行います。 このとき、X(1)には既に11月の値が入っていることに注意してださい。 そして、AOTMPには、AO(1,12)の値を入れます。 X(1)=AOTMP+X(1) とは、AO(1,11)とAO(1,12)を足したものを意味しているのです。 Y(I)も基本は同じです。 装置番号6番(画面)と装置番号13番「ファイル」に値を出力します。 IY(I):年 X(I):11-12月の平均北極振動指数 Y(I):11-12月の平均気温 です
⑧副プログラム (サブルーチン) 相関係数を画面に出力します 相関係数を計算する副プログラムを呼び出します。 主プログラムの変数と副プログラムの変数を PEARSON(X,Y,N,R) の括弧内で引き渡しします。 メインプログラムのX(N)、Y(N)、Nが 副プログラムに引き渡され、 副プログラムで計算されたRが メインプログラムに引き渡されます。 Rが求めるべき相関係数です 開いた装置は、閉じてあげます プログラムをSTOPさせ 終了させます(ENDさせます)。
相関係数とは? プログラムでファイルに出力したデータをエクセルで描いてみよう。 (1)開くをクリック (2)ファイルを指定
(3) (4) (5) (4)
(6) (7)
(8) (9) (10)
同じようにB列、C列データの散布図を作成
散布図と相関の感覚的理解 直線からのズレが小さい
相関係数1とは? (xn+1, yn+1) (xn, yn) (xn+1, yn+1)=α(xn, yn) のとき、散布図は一直線 になる。 つまり、 y=αx の関係が成り立っていて、 xの値とyの値が1対1に対応 する場合に相当。 このケースが相関係数1 (xn+1, yn+1) (xn, yn)
x1×x2+ y1×y2 = √( x1 + y1 ) × √ ( x2+ y2 ) 相関係数の数学的な意味 (x2 y2) 数学的には、ベクトルのなす角度 に関係している。 直線に“のっかる”とは、ベクトルの なす角度が小さいこととして表現できる (x1, y1) (0,0) A とBのなす角度(θ)は cosθ = a ・b | a | ・| b | ベクトルの内積 a =(x1, y1) , b =(x2, y2) = cosθ a ・b | a | ・| b | x1×x2+ y1×y2 = √( x1 + y1 ) × √ ( x2+ y2 ) 2 ×cosθ
相関係数の計算では、この性質を使っている。
データの数が3個だったら? いくつかの地点の月平均気温を、 これでも、相関はあるといえるの? たまたま、何じゃない? ってことも考えられる。 データの個数に応じて、相関があり と言える相関係数の閾値がある 次のページの表で、 5%の有意水準というのは、 95%の確率で確からしい 1%の有意水準というのは、 99%の確率で確からしい ことを意味している。(詳細は省略) いくつかの地点の月平均気温を、 札幌(ATS.TXT)、東京(ATT.TXT) 、大阪(ATO.TXT) 、福岡(ATF.TXT) 、 南大東島(ATM.TXT)に入れてある。 それぞれの地点での北極振動指数(AO)との相関係数を求め、 相関があるか無いかを判定しなさい。
標本数(データ数)と相関係数の限界値 例えば、データ数が58個の場合、 相関係数が0.254以上の場合、95%の信頼で相関があると言える