以下の問題の実証をしたく作成したプログラム
問題
変数x(x>0) 、yの間にy=x2なる関係が成立している場合の、変数xとyの相関係数を求めよ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Sub 相関係数() Const StartPos As Long = 1 Const Count As Long = 3000 Const EndPos As Long = StartPos + Count Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("sheet1") ws.Cells.ClearContents Dim i As Long, j As Long '公式 Dim X As Long, Y As Long ws.Cells(1, "A") = "X" ws.Cells(1, "B") = "Y=X^2" ws.Cells(1, "C") = "相関係数" For i = StartPos To EndPos '計算 X = i Y = X ^ 2 ' Xの2条 ws.Cells(i + 1, "A") = X ws.Cells(i + 1, "B") = Y DoEvents Next i ws.Range("C2") = "=CORREL(A:A,B:B)" End Sub |
実行すると、C2に相関係数が出力される。出力結果は 1以下 具体的にはデータ数30000 で 0.968266006
コメント