見出し画像

【第3話】 統計分析をRからJuliaに~更にプロット

前回の続きですが、Juliaでこれはとても便利だなと思った点を紹介します。

全部を使うわけではないですが、今回利用しようとしたパッケージはこちらです。

画像1

ではデータを作ってみましょう。18歳から80歳までの患者100人分、AとBと2つの異なる処置を行い、良くなった、悪くなった、変わんないの3つの結果があるとします。

画像2

Rではsummary()で簡単な結果が出せますが、StatsBaseを利用すると同じことができます。

画像3

それぞれのデータを用いてDataFrameを作成します。

画像4

中身はこうなっています

画像5

画像6

ここではTreatmentとResultに注目です。患者のうちAとBという異なる処置方法を行った2つのグループがあります。

size(data)でみたように100人の結果がありますが、Aのグループに何人、Bのグループに何人いるかみたい場合、こう記述します

by(data, :Treatment, size)

ですが、そうすると行列両方を表示してしまうのでこうします

by(data, :Treatment, df -> DataFrame(N = size(df, 1)))

画像7

グループAには46人、グループBには54人いることが分かります。

ではグループAの平均年齢はいくつでしょう。

画像8

dataをTreatmentごとにグループ分けして、平均結果を表示するとしてるわけですが、これたった1行です。

では年齢ごとの分布を図に表そうとした場合はどうすればいいでしょうか。ここでマクロ言語が使えます。@df

画像9

dataというデータフレームから年齢をx軸にして、グループAとBの分布を見たいわけですが、それがタイトルやxyのラベルなどの表示をなくせばこれも1行でできます。Rを使ってるような感覚です。

白血球の数別のボックスプロットを処置の結果ごとに描画してみましょう。

画像10

RでしていたことをPythonでしようとするととても面倒に感じていたことがありましたが、このJuliaのシンプルさは魅力的です。

Rではpairs()を使う頻度が高かったですが、Juliaの場合は下記のようになります。

画像11

画像12

正直こんなにシンプルだとは思っていませんでした。@dfもそうですがマクロ言語便利すぎです。

次回は教材の第3章Linear Regressionに関してJuliaを使っていきます。

この記事が気に入ったらサポートをしてみませんか?