C#による 単線形回帰

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

Keyword: 単線形回帰

概要

本サンプルは単線形回帰を行うC#によるサンプルプログラムです。 本サンプルは以下に示される観測値について単線形回帰分析を行い、回帰定数、回帰係数、回帰の残差の平方和や自由度を出力します。

単線形回帰のデータ 

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

入力データ

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

このデータをダウンロード
g02ca Example Program Data
1.0       20.0
0.0       15.5
4.0       28.3
7.5       45.0
2.5       24.5
0.0       10.0
10.0      99.0
5.0       31.2 

  • 1行目はタイトル行で読み飛ばされます。
  • 2〜9行目には縦1列めに独立変数(x)の値、縦2列めに従属変数(y)の値を指定しています。

出力結果

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

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

  Case     Independent     Dependent
 number     variable       variable 
   1         1.0000        20.0000 
   2         0.0000        15.5000 
   3         4.0000        28.3000 
   4         7.5000        45.0000 
   5         2.5000        24.5000 
   6         0.0000        10.0000 
   7        10.0000        99.0000 
   8         5.0000        31.2000 

 
  Mean of independent variable               =   3.7500
  Mean of   dependent variable               =  34.1875
  Standard deviation of independent variable =   3.6253
  Standard deviation of   dependent variable =  28.2604
  Correlation coefficient                    =   0.9096

  Regression coefficient                     =   7.0905
  Standard error of coefficient              =   1.3224
  t-value for coefficient                    =   5.3620

  Regression constant                        =   7.5982
  Standard error of constant                 =   6.6858
  t-value for constant                       =   1.1365

 Analysis of regression table :-

       Source        Sum of squares  D.F.    Mean square     F-value

 Due to regression    4625.303       1.000    4625.303      28.751 
 About  regression     965.245       6.000     160.874 
 Total                5590.549       7.000 

  • 3〜12行目にケース番号、独立変数と従属変数が出力されています。
  • 15行目に独立変数の平均が出力されています。
  • 16行目に従属変数の平均が出力されています。
  • 17行目に独立変数の標準誤差が出力されています。
  • 18行目に従属変数の標準誤差が出力されています。
  • 19行目に相関係数が出力されています。
  • 21行目に回帰係数が出力されています。
  • 22行目に回帰係数の標準誤差が出力されています。
  • 26行目に回帰係数のt値が出力されています。
  • 25行目に回帰定数が出力されています。
  • 26行目に回帰定数の標準誤差が出力されています。
  • 27行目に回帰定数のt値が出力されています。
  • 33行目に回帰による平方和、自由度、平均平方とF値が出力されています。
  • 34行目に回帰についての偏差の平方和、自由度、平均平方が出力されています。
  • 35行目に総平方和と総自由度が出力されています。

ソースコード

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

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


このソースコードをダウンロード
//      g02ca Example Program Text
//      C# version, nAG Copyright 2008
using System;
using NagLibrary;
using System.IO;
namespace NagDotNetExamples
{
  public class G02CAE
  {
    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/g02cae.d");
        }
        else
        {
          sr = new DataReader(datafile);
        }
        int i = 0;
        const int n = 8;
        double[] result = new double[20];
        double[] x = new double[n];
        double[] y = new double[n];
        int ifail;
        Console.WriteLine("g02ca Example Program Results");
        //      Skip heading in data file
        sr.Reset();
        sr.Reset();
        for (i = 1; i <= n; i++)
        {
          x[i - 1] = double.Parse(sr.Next());
          y[i - 1] = double.Parse(sr.Next());
        }
        Console.WriteLine(" ");
        Console.WriteLine(" {0}", " Case     Independent     Dependent");
        Console.Write(" {0}", "number     variable       variable");
        Console.WriteLine(" ");
        for (i = 1; i <= n; i++)
        {
          Console.Write("   {0}{1,15:f4}{2,15:f4}", i, x[i - 1], y[i - 1]);
          Console.WriteLine(" ");
        }
        Console.WriteLine(" ");
        Console.WriteLine(" ");
        // 
        G02.g02ca(n, x, y, result, out ifail);
        // 
        if (ifail < 0)
        {
          Console.WriteLine(" ");
          Console.WriteLine("** g02ca failed with ifail = {0,5}", ifail);
        }
        else
        {
          if (ifail != 0)
          {
            Console.Write("  {0}{1,5}", "Routine fails, ifail =", ifail);
          }
          else
          {
            Console.WriteLine("  {0}{1,8:f4}", "Mean of independent variable               = ", result[0]);
            Console.WriteLine("  {0}{1,8:f4}", "Mean of   dependent variable               = ", result[1]);
            Console.WriteLine("  {0}{1,8:f4}", "Standard deviation of independent variable = ", result[2]);
            Console.WriteLine("  {0}{1,8:f4}", "Standard deviation of   dependent variable = ", result[3]);
            Console.WriteLine("  {0}{1,8:f4}", "Correlation coefficient                    = ", result[4]);
            Console.WriteLine(" ");
            Console.WriteLine("  {0}{1,8:f4}", "Regression coefficient                     = ", result[5]);
            Console.WriteLine("  {0}{1,8:f4}", "Standard error of coefficient              = ", result[7]);
            Console.WriteLine("  {0}{1,8:f4}", "t-value for coefficient                    = ", result[9]);
            Console.WriteLine(" ");
            Console.WriteLine("  {0}{1,8:f4}", "Regression constant                        = ", result[6]);
            Console.WriteLine("  {0}{1,8:f4}", "Standard error of constant                 = ", result[8]);
            Console.WriteLine("  {0}{1,8:f4}", "t-value for constant                       = ", result[10]);
            Console.WriteLine(" ");
            Console.WriteLine(" {0}", "Analysis of regression table :-");
            Console.WriteLine(" ");
            Console.WriteLine(" {0}", "      Source        Sum of squares  D.F.    Mean square     F-value");
            Console.WriteLine(" ");
            Console.Write(" {0}", "Due to regression");
            for (i = 12; i <= 15; i++)
            {
              Console.Write(" {0,11:f3}", result[i - 1]);
            }
            Console.WriteLine(" ");
            Console.Write(" {0}", "About  regression");
            for (i = 16; i <= 18; i++)
            {
              Console.Write(" {0,11:f3}", result[i - 1]);
            }
            Console.WriteLine(" ");
            Console.Write(" {0}", "Total            ");
            for (i = 19; i <= 20; i++)
            {
              Console.Write(" {0,11:f3}", result[i - 1]);
            }
            Console.WriteLine(" ");
          }
        }
        // 
      }
      catch (Exception e)
      {
        Console.WriteLine(e.Message);
        Console.Write("Exception Raised");
      }
    }
  }
}


関連情報
Privacy Policy  /  Trademarks