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");
}
}
}
}
