Statistics::Descriptive
モジュールは、調整済み平均を計算するためのFull
クラスを提供します。そこからトリミングされた標準偏差を得る方法はありますか?それは既にトリミングされた平均を得るためにデータをソートしているので、難しい部分は完了です。Perl統計::説明とトリム標準偏差
3
A
答えて
3
あなたのデータはすべて正、またはすべて負の数値である場合、あなたはわずか2つの$スタットオブジェクト、無地の値の1と乗値のための1つを維持し、トリミングSTDDEVを生成するtrimmed_mean結果を組み合わせることができます。
my $stat_x = Statistics::Descriptive::Full->new();
my $stat_xx = Statistics::Descriptive::Full->new();
sub add_x {
$stat_x->add_data(@_);
$stat_xx->add_data(map {$_*$_} @_);
}
sub trimmed_stddev {
my $lower = shift;
my $upper = @_ ? shift : $lower;
my $trm_x = $stat_x->trimmed_mean($lower, $upper);
my $trm_xx = $stat_xx->trimmed_mean($lower, $upper);
my $nn = int($stat_x->count() * (1.0 - $lower - $upper));
return ($nn <= 1 ? 0.0 : sqrt(($trm_xx - $trm_x * $trm_x) * $nn/($nn -1)));
}
# add some data
add_x(1, 5, 12, 29, 10, 11, 2);
print trimmed_stddev(0.0);
print trimmed_stddev(0.05);
print trimmed_stddev(0.2);
# output
# 9.45163125250522
# 9.58570364061576
# 4.44222166638871
+1
これは動作しますが、ソートには2倍の時間がかかります。大規模なデータセットの場合は多少不幸です。すでにソートされたデータが元の構造にある場合 –
+0
@ pythonic-metaphor私は同意し、率直に言って、Statistics :: Descriptiveは使用しません。非常に制限されたインターフェイスにあなたをロックしながら、便利な機能はほとんど提供していません。私の解決策は主にハックバリューだった。 Perlの世界にとどまっている間にあなたの統計にパフォーマンスが必要な場合は、PDL – ivancho
関連する問題
- 1. トリム/ winsorized標準偏差
- 2. 角度の標準偏差の計算?
- 3. Java Streams - 標準偏差
- 4. 加重平均と標準偏差の計算
- 5. 平均と標準偏差を計算する
- 6. 単純な標準偏差を計算するときの "AttributeError:sqrt"
- 7. SQL Serverにおける標準偏差の偏差
- 8. 重み付きの標準偏差
- 9. 標準偏差関数を書く
- 10. gnuplot内のカラムの標準偏差を計算する方法
- 11. モード、メジアン、平均、標準偏差、分散計算機
- 12. 標準偏差を「数値」列で計算する方法は?
- 13. dequeの標準偏差を計算することができません
- 14. ユーザ定義の配列の標準偏差の計算と出力
- 15. Excelの加重標準偏差と四分位数
- 16. Obj-C:NSNumberオブジェクトのNSArrayの標準偏差を計算しますか?
- 17. 標準偏差を計算し、Python 2.7を使用してカーブフィットをプロットする
- 18. 移動標準偏差を効率的に計算する方法
- 19. 標準偏差を出力するPythonの開始
- 20. 最小、最大、平均、標準偏差のボックスプロット
- 21. 標準偏差の色濃度を持つ図表
- 22. は私のC#標準偏差コードが正しいですか?
- 23. Rの標準偏差を結合する既存の関数?
- 24. 標準偏差IF Excel {}数式の問題
- 25. 配列2次元の行ごとに平均と標準偏差を計算する
- 26. 標準偏差を0として出力する方法、修正方法は?
- 27. Pandas Dataframeのヒストグラムを平均と標準偏差でプロットし、ValueErrorを取得
- 28. scikit-learnで慣性を使ってギャップ統計の標準偏差をどのように計算しますか?
- 29. Rデータフレームを特定の列の標準偏差でソートする方法は?
- 30. Matlabでimresizeから標準偏差のような尺度を得るには?
ソースコードを見ましたか?たぶん、あなたが探していることを行う、文書化されていない方法やプライベートな方法があります。 – toolic
@toolicしました。私はこのために自分の方法を書くことができる方法を見ていますが、それは私のためにそれを行うための文書化されていないものがあるようには見えません。 –
メソッドを作成し、それをCPAN作成者用のパッチとして送信します。 – toolic