Location : Home > Languages > Perl > Package
Title : Statistics::LSNoHistory
Toolbox Logo

名称

 Statistics::LSNoHistory - データ履歴なしで最小2乗法で線形回帰を求める


概要

# 点をコンストラクト
$reg = Statistics::LSNoHistory->new(points => [
   1.0 => 1.0,
   2.1 => 1.9,
   2.8 => 3.2,
   4.0 => 4.1,
   5.2 => 4.9
   ]);

# 他のコンストラクト方法
$reg = Statistics::LSNoHistory->new(
   xvalues => [1.0, 2.1, 2.8, 4.0, 5.2],
   yvalues => [1.0, 1.9, 3.2, 4.1, 4.9]
);
# または
$reg = Statistics::LSNoHistory->new;
$reg->append_arrays(
   [1.0, 2.1, 2.8, 4.0, 5.2],
   [1.0, 1.9, 3.2, 4.1, 4.9]
);
# または
$reg = Statistics::LSNoHistory->new;
$reg->append_points(
   1.0 => 1.0, 2.1 => 1.9, 2.8 => 3.2, 4.0 => 4.1, 5.2 => 4.9
);

# 過去の回帰からコンストラクトしてもよい
 $reg = Statistics::LSNoHistory->new(
   num => 5,
   sumx => 15.1,
   sumy => 15.1,
   sumxx => 56.29,
   sumyy => 55.67,
   sumxy => 55.83,
   minx => 1.0,
   maxx => 5.2,
   miny => 1.0,
   maxy => 4.9
);

# 各ブランチは以下のように初期化
$branch = Statistics::LSNoHistory->new(%{$reg->dump_stats});
$reg->append_point(6.1, 5.9);
$branch->append_point(5.8, 6.0);

# 回帰値を計算していくつか出力
printf("Slope: %.2f\n", $reg->slope);
printf("Intercept %.2f\n", $reg->intercept);
printf("Correlation Coefficient: %.2f\n", $reg->pearson_r);
...

説明

 本パッケージは完全なデータ履歴を格納していなくても最小2乗法による線形回帰を行う。他の方法と同様に(最小2乗法の意味で)以下の式を満たす最良の m, k を求める。

y = m*x + k fits data points (x_1,y_1),...,(x_n,y_n).

 多くの線形回帰を含むアプリケーションでは新たなデータが追加された場合には過去の回帰に用いた全てのデータを要求することが多い。しかしここでは全データ履歴は必要がなく、中間的な統計量があればよい。その数はガウスのおかげで6つで済む。
 ユーザインタフェースはオブジェクトを初期化して生データまたは中間統計量を処理する。


コンストラクタの引数

 コンストラクタ(またはクラスメソッド new)はいくつかの引数をとる。初期化のシナリオは引数の種類により、以下のカテゴリーがある。


メソッド


バグ

 この方法はデータを格納する他の方法よりも丸め誤差について疑わしい。スケールについては処理前に十分配慮が必要である。


著者

 John Pliam, <pliam@cpan.org>


参考資料

 CPAN モジュールとしては: Statistics::OLS, Statistics::Descriptive, Statistics::GaussHelmert, Statistics::Regression.

 統計に関する本・数学に関するハンドブック・数値解析に関する包括的な本。
 Press et al, Numerical Recipes in L [L in {C,Fortran, ...}], Nth edition [N > 0], Cambridge Univ Press.


コピー

 完全な情報は ファイル COPYING にある。

Toolbox Logo
Updated : 2007/07/23