今回はjuliaを使って1変量の基本的な統計量と軽くグラフをやっていきます。
パッケージの導入と実行環境
- MacOS 26.0
- julia 1.12.1
- DataFrames v1.8.1
- RDatasets v0.7.7
- StatsBase v0.34.7
- StatsPlots v0.15.8
データの準備
今回使うデータは、Davisの身長と体重がはいってるやつ。
df = dataset("car","Davis");
どんなデータか、最初の5行ほど見てみましょう
first(df,5)
5×5 DataFrame
Row │ Sex Weight Height RepWt RepHt
│ Cat… Int32 Int32 Int32? Int32?
─────┼──────────────────────────────────────
1 │ M 77 182 77 180
2 │ F 58 161 51 159
3 │ F 53 161 54 158
4 │ M 68 177 70 175
5 │ F 59 157 59 155
summary()とdescribe()で、データの外観を観察。
summary(df)
"200×5 DataFrame"
describe(df)
5×7 DataFrame
Row │ variable mean min median max nmissing eltype ⋯
│ Symbol Union… Any Union… Any Int64 Type ⋯
─────┼──────────────────────────────────────────────────────────────────────────
1 │ Sex F M 0 CategoricalValue{String, ⋯
2 │ Weight 65.8 39 63.0 166 0 Int32
3 │ Height 170.02 57 169.5 197 0 Int32
4 │ RepWt 65.623 41 63.0 124 17 Union{Missing, Int32}
5 │ RepHt 168.497 148 168.0 200 17 Union{Missing, Int32} ⋯
1 column omitted
欠損値があったり、体重の最大値が166キロかな?ちょっと、外れ値っぽいのもあるかもね。
それも踏まえてやっていきましょう。
基本統計量
今回は、身長(height)を使ってやっていきます。
身長のデータだけ取り出しておきましょう
height = df.Height;
代表値
最小値や最大値、平均値など、データを表す代表的な値
最小値
minimum(height)
57
最大値
maximum(height)
197
中央値
median(height)
169.5
平均値
mean(height)
170.02
最頻値
mode(height)
178
modes(height)
1-element Vector{Int32}:
178
最頻値が2つ以上ある場合は、modes()を使うことで、ベクトル値で値が返ってくるよ
四分位数
quantile(height)
5-element Vector{Float64}:
57.0
164.0
169.5
177.25
197.0
分布の様子
散らばり加減やどんな分布なのかを表してる
範囲
maximum(height)-minimum(height)
140
分散
var(height)
144.19055276381906
標準偏差
std(height)
12.00793707361173
歪度
skewness(height)
-4.034723962975985
尖度
kurtosis(height)
37.47093496530418
基本的なグラフ
グラフを作図して、特徴を視覚的にもとらえましょう。
棒グラフ
bar(height)

ヒストグラム
histogram(height)

密度グラフ
density(height)

ボックスプロット
boxplot(height)

ドットプロット
dotplot(height)

まとめ
ざーっと、基本的なのをずらずらっとだしました。みるからに外れ値っぽいのがあるよね。
身長のデータなのに最小値が57センチって。赤ちゃん?それをもう少し観察するには、これのセットになってる体重のデータも見てみないとわからないね。
2変量以上のものについても、今後、まとめていきます。相関係数とか散布図とかそういうのだね。
おたのしみにー

コメント