トップ «前の日記(2022-10-25 (Tue)) 最新 次の日記(2022-10-30 (Sun))» 編集   RSS 1.0 FEED  

Journal InTime


2022-10-28 (Fri) [長年日記]

_ Rubyで理解する統計解析の基礎: 1章〜2章

サンプルコードをRubyで書き直しつつPythonで理解する統計解析の基礎を読んでいる。 Python版のサンプルのforkにRuby版のnotebookを追加していく予定だけど、途中でRubyで書き直すのは挫折しそうな気が……。

環境

  • ruby 3.2.0dev (2022-09-26T05:44:54Z master a8ad22d926) [x86_64-darwin21]
  • iruby-0.7.4
  • numo-narray-0.9.2.1
  • numo-gsl-0.1.2
  • daru-0.3
  • charty-0.2.12

1章(notebook

numpyの代りにnumo、pandasの代りにdaruを使用してだいたい問題なかった。 ただ、index_col相当の機能がDaru::DataFrame.from_csvにない(多分)せいで、 df.shape はインデックス分だけ列が増えて [10, 6] になってしまった。

2章(notebook

2章もmatplotlibの代りにCharty(バックエンドはplotly)を使ってだいたい書けたが、いくつか細かい問題が。

  • IRubyやdaruに浮動小数点数の出力の精度を指定する方法がなさそう。
  • Numo::NArray#[]で、 beginless range(...10)が使えない。
  • Numo::DFloat#varは不偏分散で、標本分散を返すオプションや別メソッドはなさそう。
    • Daru::Vector#varianceも不偏分散だが、variance_populationという別メソッドがある。
  • Numo::GSL::Histogramにデータをまとめて渡せない(使い方が悪いだけかもしれないが)のが効率が悪そう。
  • リスト内包表記の代りにstepを使ったが読みにくい。
  • Chartyで目盛りなどの細かい指定や、異なる種類のグラフの重ね合わせができない。箱ひげ図を縦向きに描く方法がわからない。

箱ひげ図

自分が使い方を知らないだけかもしれないので、「こうすればできるよ」というのがあったら教えてください。