関連情報

C#による 一変量時系列の偏自己相関係数

C#によるサンプルソースコード
使用関数名:g13ac

Keyword: 一変量時系列, 偏自己相関係数, PACF

概要

本サンプルは一変量時系列の偏自己相関係数の計算を行うC#によるサンプルプログラムです。 本サンプルは以下に示される自己相関係数を分析し、偏自己相関係数、予測誤差の分散比と自己回帰パラメータを出力します。

偏自己相関のデータ 

※本サンプルはNAG Library for .NETに含まれる関数 g13ac() のExampleコードです。本サンプル及び関数の詳細情報は g13ac のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで

入力データ

(本関数の詳細はg13ac のマニュアルページを参照)

このデータをダウンロード
g13ac Example Program Data
 10  5
    0.8004    0.4355    0.0328   -0.2835   -0.4505
   -0.4242   -0.2419   -0.0550    0.3783    0.5857 

  • 1行目はタイトル行で読み飛ばされます。
  • 2行目にラグの数(nk)、偏自己相関係数の数(nl)を指定しています。
  • 3〜4行目にラグに関する自己相関係数(r)を指定しています。

出力結果

(本関数の詳細はg13ac のマニュアルページを参照)

この出力例をダウンロード
g13ac Example Program Results

 Lag  Partial    Predictor error  Autoregressive
      autocorrn  variance ratio   parameter

 1     0.800          0.359          1.108
 2    -0.571          0.242         -0.290
 3    -0.239          0.228         -0.193
 4    -0.049          0.228         -0.014
 5    -0.032          0.228         -0.032


  • 3〜10行目にはラグ、偏自己相関係数、予測誤差の分散比と自己回帰パラメータが出力されています。

ソースコード

(本関数の詳細はg13ac のマニュアルページを参照)

※本サンプルソースコードは .NET環境用の科学技術・統計計算ライブラリである「NAG Library for .NET」の関数を呼び出します。
サンプルのコンパイル及び実行方法


このソースコードをダウンロード
//      g13ac Example Program Text
//      C# version, NAG Copyright 2008
using System;
using NagLibrary;
namespace NagDotNetExamples
{
  public class G13ACE
  {
    static bool defaultdata = true;
    static string datafile = "";
    static void Main(String[] args)
    {
      if (args.Length == 1)
      {
        defaultdata = false;
        datafile = args[0];
      }
      StartExample();
    }
    public static void StartExample()
    {
      try
      {
        DataReader sr = null;
        if (defaultdata)
        {
          sr = new DataReader("exampledata/g13ace.d");
        }
        else
        {
          sr = new DataReader(datafile);
        }
        int i,   nk,   nl,   nvl; int ifail;
        Console.WriteLine("g13ac Example Program Results");
        //      Skip heading in data file
        sr.Reset();
        sr.Reset();
        nk = int.Parse(sr.Next());
        nl = int.Parse(sr.Next());
        double[] ar = new double[nl];
        double[] p = new double[nl];
        double[] r = new double[nk];
        double[] v = new double[nl];
        Console.WriteLine("");
        if (nl > 0 && nk > 0)
        {
          sr.Reset();
          for (i = 1; i <= nk; i++)
          {
            r[i - 1] = double.Parse(sr.Next());
          }
          //
          G13.g13ac(r, nk, nl, p, v, ar, out nvl, out ifail);
          //
          if (ifail < 0)
          {
            Console.WriteLine("");
            Console.WriteLine("** g13ac failed with ifail = {0,5}", ifail);
          }
          else
          {
            if (ifail != 0)
            {
              Console.WriteLine("  {0}{1,5}", "g13ac fails. ifail = ", ifail);
              Console.WriteLine("");
            }
            if (ifail == 3)
            {
              Console.WriteLine("  {0}{1,2}{2}", "   Only", nvl, "valid sets were generated");
              Console.WriteLine("");
            }
            if ((ifail == 0) || (ifail == 3))
            {
              Console.WriteLine(" {0}", "Lag  Partial    Predictor error  Autoregressive");
              Console.WriteLine(" {0}", ("     autocorrn  variance ratio") + ("   parameter"));
              Console.WriteLine("");
              for (i = 1; i <= nvl; i++)
              {
                Console.Write(" {0}{1,10:f3}{2,15:f3}{3,15:f3}\r\n", i, p[i - 1], v[i - 1], ar[i - 1]);
              }
              Console.WriteLine("");
            }
          }
        }
        //
      }
      catch (Exception e)
      {
        Console.WriteLine(e.Message);
        Console.WriteLine("Exception Raised");
      }
    }
  }
}


Results matter. Trust NAG.

Privacy Policy | Trademarks