public void PrintPacfs() { pacfs = AutoCorrelation.CalculatePacfs(acfs); Console.WriteLine("###############################################\n"); Console.WriteLine("PACFS:"); foreach (var num in pacfs) { Console.WriteLine(num); } }
public static int EstimateOrder(double[] data, int maxOrder) { double significanceLevel = 2 / Math.Sqrt(data.Length); int order = maxOrder; double[] acfs = AutoCorrelation.CalculateAcfs(data, maxOrder); double[] pacfs = AutoCorrelation.CalculatePacfs(acfs); for (int i = 0; i < maxOrder; i++) { if (Math.Abs(pacfs[i + 1]) < significanceLevel) { return(i); } } return(order); }
public static int EstimateOrder(double[] data, int maxOrder) { var significanceLevel = 2 / System.Math.Sqrt(data.Length); var order = maxOrder; var acfs = AutoCorrelation.CalculateAcfs(data, maxOrder); var pacfs = AutoCorrelation.CalculatePacfs(acfs); for (var i = 0; i < maxOrder; i++) { if (System.Math.Abs(pacfs[i + 1]) < significanceLevel) { return(i); } } return(order); }
private void Execute(object obj) { ErrorIsVisible = Visibility.Hidden; if (!InputIsValid()) { return; } ArtaNumbers.Clear(); Acfs.Clear(); Pacfs.Clear(); try { var context = new ArtaExecutionContext((ArtaExecutionContext.Distribution)Distribution, new double[] { correlationCoefficient }); var artaProcess = context.ArtaProcess; artaNumbers = new double[iterations]; artaNumbers = new double[iterations]; for (var i = 0; i < Iterations; i++) { artaNumbers[i] = artaProcess.Next(); ArtaNumbers.Add(new ListHelper(artaNumbers[i], 0, 0)); } acfs = AutoCorrelation.CalculateAcfs(artaNumbers, lag); foreach (var item in acfs) { Acfs.Add(new ListHelper(0, item, 0)); } pacfs = AutoCorrelation.CalculatePacfs(acfs); foreach (var item in pacfs) { Pacfs.Add(new ListHelper(0, 0, item)); } Order = OrderEstimator.EstimateOrder(artaNumbers, lag); ExportIsEnabled = true; } catch (Exception exception) { ErrorMessage = exception.Message; ErrorIsVisible = Visibility.Visible; } }
public static void Main(String[] args) { RealDistribution distribution = new ExponentialDistribution(1.0); double[] artaCorrelationCoefficients = { 0.3, 0.3, -0.1 }; IArtaProcess arta = ArtaProcessFactory.CreateArtaProcess(distribution, artaCorrelationCoefficients); double[] data = new double[10000]; for (int i = 0; i < data.Length; i++) { data[i] = arta.Next(); } int maxLag = 10; double[] acfs = AutoCorrelation.CalculateAcfs(data, maxLag); double[] pacfs = AutoCorrelation.CalculatePacfs(acfs); Console.WriteLine("#########################"); Console.WriteLine("ACFS"); foreach (double d in acfs) { Console.WriteLine(d.ToString()); } Console.WriteLine('\n'); Console.WriteLine("#########################"); Console.WriteLine("PACFS"); foreach (double d in pacfs) { Console.WriteLine(d); } Console.WriteLine('\n'); Console.WriteLine("#########################"); Console.WriteLine("Order"); Console.WriteLine(OrderEstimator.EstimateOrder(data, maxLag)); }
public ArtaStatistics Pacfs() { pacfs = AutoCorrelation.CalculatePacfs(acfs); printPacfs = true; return(this); }