280 likes | 389 Views
2008.12.2. 環境システム科学演習 2回目 FORTRAN 文法について ①コメント ②定数 ③配列 ④入出力文 ⑤文字の結合 ⑥ IF 文 ⑦ IF 文 ⑧副プログラム(サブルーチン) その他・・・・ 演習:相関 北極振動指数と日本各地の気温の関係を調べる. 北極海は国内旅行程度 の範囲にある. 日本の気候は バランスで決まる. 陸. 海. 偏西風. 陸. 海. 偏西風. 高温⇒低圧. 季節風. 低温⇒高圧. 季節風. 陸. 海. 低温⇒高圧. 高温⇒低圧. 偏西風. 温暖. 寒冷. 温暖. 寒冷.
E N D
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する ファイルを読み込んだり、 ファイルに書き込んだりする 暗黙の了解について: 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ループ 内側: Jが1~Nまでを繰返し行うという意味です。 上の表の矢印の順に作業を行います。 ここでは、11番のファイル「AO.TXT」から順番に1からM(=12)まで読み込むことを意味します。 Jについて2つおき行いたい場合には、 J=1,M,2 とします。 外側: 外側も同じです。上の表の点線にのように作業します。
⑦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)
散布図と相関の感覚的理解 • 直線からのズレが小さい
相関係数1とは? (xn+1, yn+1)=α(xn, yn) のとき、散布図は一直線 になる。 つまり、 y=αx の関係が成り立っていて、 xの値とyの値が1対1に対応 する場合に相当。 このケースが相関係数1 (xn+1, yn+1) (xn, yn)
a ・b a ・b | a | ・| b | | a | ・| b | = cosθ 2 2 2 2 x1×x2+ y1×y2 = √( x1 +y1 )× √ ( x2+y2 ) 相関係数の数学的な意味 (x2 y2) 数学的には、ベクトルのなす角度 に関係している。 直線に“のっかる”とは、ベクトルの なす角度が小さいこととして表現できる (x1, y1) (0,0) A とBのなす角度(θ)は cosθ = ベクトルの内積 a =(x1, y1) , b =(x2, y2) ×cosθ
相関係数の計算では、この性質を使っている。相関係数の計算では、この性質を使っている。
データの数が3個だったら? これでも、相関はあるといえるの? たまたま、何じゃない? ってことも考えられる。 データの個数に応じて、相関があり と言える相関係数の閾値がある 次のページの表で、 5%の有意水準というのは、 95%の確率で確からしい 1%の有意水準というのは、 99%の確率で確からしい ことを意味している。(詳細は省略) いくつかの地点の月平均気温を、 札幌(ATS.TXT)、東京(ATT.TXT) 、大阪(ATO.TXT) 、福岡(ATF.TXT) 、 南大東島(ATM.TXT)に入れてある。 それぞれの地点での北極振動指数(AO)との相関係数を求め、 相関があるか無いかを判定しなさい。
標本数(データ数)と相関係数の限界値 例えば、データ数が58個の場合、 相関係数が0.254以上の場合、95%の信頼で相関があると言える