Julia でふつうの統計解析
t検定 t-test その2
前のページに戻る
#
# GSwR2 第5章 その2 t検定
#
# 農場のオゾン濃度による作物の生育速度の比較
#
# 2019/03/09 Daisuke TOMINGAGA
using CSV, Gadfly, DataFrames, DataFramesMeta, Statistics, HypothesisTests,
Cairo, Fontconfig
# データ読み込み、データ形式の確認
dat = CSV.read("datasets/ozone.csv", allowmissing=:none)
# カラム名に . が入ってるとあとでうまく扱えないので、名前を変える
names!(dat, [:Ozone, :Location, :ID])
# 要約統計量、プロット
# データは要するに二群、各群でのオゾン濃度の平均値と分散
by(dat, [:Location], :Ozone => mean)
by(dat, [:Location], :Ozone => var)
p = plot(dat, y = :Ozone, Geom.boxplot)
draw(PDF("ozone_1.pdf", 10cm, 8cm), p)
# グループごとにまとめた棒グラフ
p = plot(dat, x=:Ozone, color=:Location, Geom.histogram())
draw(PDF("ozone_2.pdf", 10cm, 8cm), p)
p = plot(dat, ygroup=:Location, x=:Ozone,
Geom.subplot_grid(Geom.histogram(bincount = 10)))
draw(PDF("ozone_3.pdf", 10cm, 8cm), p)
# でt検定
# ベクトルを二本作らねばならない
datW = @linq dat |> where(:Location .== "West")
datE = @linq dat |> where(:Location .== "East")
EqualVarianceTTest(datW[:, :Ozone], datE[:, :Ozone])
UnequalVarianceTTest(datW[:, :Ozone], datE[:, :Ozone])
pvalue(EqualVarianceTTest(datW[:, :Ozone], datE[:, :Ozone]))
pvalue(UnequalVarianceTTest(datW[:, :Ozone], datE[:, :Ozone]))
p = plot(dat, ygroup=:Location, x=:Ozone,
Guide.title("農場の場所によるオゾン濃度の分布"),
Guide.xlabel("オゾン濃度"),
Guide.ylabel("測定地点数"),
Geom.subplot_grid(Geom.histogram(bincount = 10)))
draw(PDF("ozone_4.pdf", 10cm, 8cm), p)
2019, © Daisuke TOMINAGA.