Transcript 北極振動とは?
2008.12.2 環境システム科学演習 2回目 FORTRAN 文法について ①コメント ②定数 ③配列 ④入出力文 ⑤文字の結合 ⑥IF文 ⑦IF文 ⑧副プログラム(サブルーチン) その他・・・・ 演習:相関 北極振動指数と日本各地の気温の関係を調べる 1 北極海は国内旅行程度 の範囲にある 日本の気候は バランスで決まる 陸 海 偏西風 陸 偏西風 高温⇒低圧 海 低温⇒高圧 季 節 風 陸 低温⇒高圧 季 節 風 偏西風 海 高温⇒低圧 温暖 寒冷 温暖 寒冷 出典:探検しようみんなの地球 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 配列であることを宣言 I=1 2 3 … N-2 N-1 N J=1 AO(1,1) AO(2,1) AO(3,1) … AO(N-2,1) AO(N-1,1) AO(N,1) 2 AO(1,2) AO(2,2) AO(3,2) … AO(N-2,2) AO(N-1,2) AO(N,2) 3 AO(1,3) AO(2,3) AO(3,3) … AO(N-2,3) AO(N-1,3) AO(N,3) … … … … … … … … M-2 AO(1,M-2) AO(2,M-2) AO(3,M-2) … AO(N-2,M-2) AO(N-1,M-2) AO(N,M-2) M-1 AO(1,M-1) AO(2,M-1) AO(3,M-1) … AO(N-2,M-1) AO(N-1,M-1) AO(N,M-1) M AO(1,M) AO(2,M) AO(3,M) … AO(N-2,M) AO(N-1,M) AO(N,M) ④入出力 装置(この場合はファイル)を OPENする ファイルを読み込んだり、 ファイルに書き込んだりする 暗黙の了解について: 5番はキーボード 6番はCRT(画面) READ(*,*) の最初の*はキーボード WRITE(*,*) の最初の*は画面 つまり、 READ(*,*)はREAD(5,*) と同じ WRITE(*,*) はWRITE(6,*)と同じ 5番、6番以外はファイルを指定する ⑤文字の結合 CHARACTERで宣言しないとき は、 ’ ’ で囲めば文字変数になる FNは3文字の文字であると宣言した。 ’A0’と’.TXT’は数値ではなく 文字「A0」と「TXT」である。 ’A0’ //FN// ’.TXT’ は、FNとして、 ATS を指定すると 「A0ATS.TXT」 という文字を意味する。 ⑥DOループ I=1 2 3 … N-2 N-1 N J=1 AO(1,1) AO(2,1) AO(3,1) … AO(N-2,1) AO(N-1,1) AO(N,1) 2 AO(1,2) AO(2,2) AO(3,2) … AO(N-2,2) AO(N-1,2) AO(N,2) 3 AO(1,3) AO(2,3) AO(3,3) … AO(N-2,3) AO(N-1,3) AO(N,3) … … … … … … … … M-2 AO(1,M-2) AO(2,M-2) AO(3,M-2) … AO(N-2,M-2) AO(N-1,M-2) AO(N,M-2) M-1 AO(1,M-1) AO(2,M-1) AO(3,M-1) … AO(N-2,M-1) AO(N-1,M-1) AO(N,M-1) M AO(1,M) AO(2,M) AO(3,M) … 内側: Jが1~Nまでを繰返し行うという意味です。 上の表の矢印の順に作業を行います。 ここでは、11番のファイル「AO.TXT」から 順番に1からM(=12)まで読み込むことを 意味します。 Jについて2つおき行いたい場合には、 J=1,M,2 とします。 外側: 外側も同じです。上の表の点線に のように作業します。 AO(N-2,M) AO(N-1,M) AO(N,M) ⑦IF文 判定を行う、IF文です。 ここでは、 もし、Jが11以上ならば、 IF(J.GE.11) THENと END IFに挟まれた部分の計算を行います。 実際には、Jが11よりも大きな値を取るのは、J=11か J=12しかありません。 つまり、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)も基本は同じです。 IFのブロック 11月と12月の和を計算した ので、その0.5倍しています。 これは11-12月の平均を求 めているのです。 装置番号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) (4) (5) (6) (7) (8) (9) (10) 14 12 10 8 6 系列1 系列2 4 2 0 -21940 -4 1960 1980 2000 2020 • 同じようにB列、C列データの散布図を作成 13 y = 0.524x + 10.414 2 R = 0.1636 12 11 系列1 線形 (系列1) 10 9 8 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 散布図と相関の感覚的理解 • 直線からのズレが小さい 相関係数1とは? (xn+1, yn+1)=α(xn, yn) のとき、散布図は一直線 になる。 0.4 (xn+1, yn+1) 0.3 0.2 0.1 (xn, yn) 0 -1.5 -1 -0.5 -0.1 -0.2 -0.3 -0.4 0 0.5 1 1.5 つまり、 y=αx の関係が成り立っていて、 xの値とyの値が1対1に対応 する場合に相当。 このケースが相関係数1 相関係数の数学的な意味 (x2 y2) (x1, y1) 数学的には、ベクトルのなす角度 に関係している。 直線に“のっかる”とは、ベクトルの なす角度が小さいこととして表現できる (0,0) A とBのなす角度(θ)は cosθ = a ・b | a | ・| b | ベクトルの内積 a =(x1, y1) , b =(x2, y2) a ・b = | a | ・| b | cosθ x1×x2+ y1×y2 = √( x12 + y12) × √ ( x2+2 y2 )2 ×cosθ 相関係数の計算では、この性質を使っている。 データの数が3個だったら? これでも、相関はあるといえるの? 1.2 たまたま、何じゃない? ってことも考えられる。 1 0.8 データの個数に応じて、相関があり と言える相関係数の閾値がある 0.6 0.4 0.2 0 -1.5 -1 -0.5 -0.2 -0.4 0 0.5 1 1.5 次のページの表で、 5%の有意水準というのは、 95%の確率で確からしい 1%の有意水準というのは、 99%の確率で確からしい ことを意味している。(詳細は省略) いくつかの地点の月平均気温を、 札幌(ATS.TXT)、東京(ATT.TXT) 、大阪(ATO.TXT) 、福岡(ATF.TXT) 、 南大東島(ATM.TXT)に入れてある。 それぞれの地点での北極振動指数(AO)との相関係数を求め、 相関があるか無いかを判定しなさい。 標本数(データ数)と相関係数の限界値 例えば、データ数が58個の場合、 相関係数が0.254以上の場合、95%の信頼で相関があると言える データ数(N) 自由度(N-2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 5%有意水準 0.997 0.95 0.878 0.811 0.755 0.707 0.666 0.632 0.602 0.576 0.553 0.532 0.514 0.497 0.482 0.468 0.456 0.444 0.433 0.423 0.413 0.404 0.396 0.388 1%有意水準 1 0.99 0.959 0.917 0.875 0.834 0.798 0.765 0.735 0.708 0.684 0.661 0.641 0.623 0.606 0.59 0.575 0.561 0.549 0.537 0.526 0.515 0.505 0.496 データ数(N) 自由度(N-2) 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 42 44 46 48 58 68 78 88 98 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 44 46 48 50 60 70 80 90 100 5%有意水準 0.381 0.374 0.367 0.361 0.355 0.349 0.344 0.339 0.334 0.329 0.325 0.32 0.316 0.312 0.304 0.297 0.291 0.285 0.279 0.254 0.235 0.22 0.207 0.197 1%有意水準 0.487 0.479 0.471 0.463 0.456 0.449 0.442 0.436 0.43 0.424 0.418 0.413 0.408 0.403 0.393 0.384 0.376 0.368 0.361 0.33 0.306 0.286 0.27 0.256