【統計学入門】平均、分散、標本分散、不偏分散、標準偏差、標準誤差
【基本的な言葉の定義の確認】
◎代表値
代表値とは分布を代表する値。
◎平均値
代表値の1つ。普段から慣れ親しんでいる平均。
◎中央値
その値より小さな観測値と大きな観測値の個数が等しくなるような値。
◎偏差
各観測値と平均との隔たりのこと。どれだけ平均から離れているかを表す値。
◎平均偏差
各観測値が平均からどれだけ離れているかについての平均を求めたもの。
◎分散
偏差を絶対値ではなくて、2乗することで符号を消し、平均を求めたもの。
◎不偏分散(不偏な標本分散)
偏差を絶対値ではなくて、2乗することで符号を消し、平均を求めたもの。ただし、平均との差の2乗和を個体数nではなく、個体数から1を引いたn-1で割ったものである。
不偏分散は期待値がと母分散に一致し、母分散を過大にあるいは過小にではなく不偏に推定する。
◎標準偏差
単位をそろえるために分散の平方根をとったもの。
◎標準誤差
母集団からある数の標本を選ぶとき、選ぶ組み合わせに依って統計量がどの程度ばらつくかを、全ての組み合わせについての標準偏差で表したものをいう(by wikipedia)。
数式もwikipediaに記載のあるとおりだが、母集団の要素数が十分大きな場合の式を引用すると次のとおりである。
ここでは母集団から抽出した標本の数である(サンプルサイズと呼ぶ)。
これを次のようも変形できる。
つまり、標準誤差は不偏分散とサンプルサイズの比で表される。
さて、ここまでで言葉の定義は終わり。実は今回の目的は、単に言葉の定義を言葉で確認することが目的ではなく、絵にしてイメージと共に確認することが目的。
1.データの読み込み
> GBPUSD1440_csv<-read.csv("D:/01_dev/04_DataAnalysis/FX_data/GBPUSD1440.csv") > head(GBPUSD1440_csv) Date Time Open Close High Low 1 2008/12/1 0:0 1.5362 1.4890 1.5396 1.4805 2 2008/12/2 0:0 1.4885 1.4903 1.5066 1.4774 3 2008/12/3 0:0 1.4918 1.4772 1.4932 1.4664 4 2008/12/4 0:0 1.4782 1.4680 1.4813 1.4466 5 2008/12/5 0:0 1.4675 1.4722 1.4770 1.4524 6 2008/12/8 0:0 1.4731 1.4906 1.5045 1.4680
2.平均を求める
> colMeans(GBPUSD1440_csv[,3:6]) #数値データ(numeric型)のみ対象とする Open Close High Low 1.575038 1.575277 1.582285 1.567609
今回は終値(Close値)について、平均、不偏分散、標準偏差、標準誤差を求めるので、平均は次のようにしても求められる。
> GBPUSD1440_close_mean<-mean(GBPUSD1440_csv$Close) > GBPUSD1440_close_mean [1] 1.575277
3.不偏分散を求める
> GBPUSD1440_close_var<-var(GBPUSD1440_csv$Close) > GBPUSD1440_close_var [1] 0.00347412
関数varを使用しなくても、不偏分散は次のように求めることも可能。
> sum((GBPUSD1440_csv$Close-GBPUSD1440_close_mean)^2)/length(GBPUSD1440_csv$Close) [1] 0.003471614
4.(不偏)標準偏差を求める
> GBPUSD1440_close_sd<-sd(GBPUSD1440_csv$Close) > GBPUSD1440_close_sd [1] 0.05894167
関数sdを使用しなくても、標準偏差は次のように求めることも可能。
> sqrt(sum((GBPUSD1440_csv$Close-GBPUSD1440_close_mean)^2)/length(GBPUSD1440_csv$Close)) [1] 0.0589204
5.可視化
まず、GBPUSD1440_csv_close(GBPUSDの日足の終値)を折れ線グラフで表す。
期間は2008年12月1日から2014年3月28日。
> plot(GBPUSD1440_csv_close, type="l")
次に、平均値を追加で描く。
> abline(h=GBPUSD1440_close_mean, lty=3)
> GBPUSD1440_range_up<-GBPUSD1440_close_mean+GBPUSD1440_close_var > GBPUSD1440_range_down<-GBPUSD1440_close_mean-GBPUSD1440_close_var > abline(h=GBPUSD1440_range_down, col=2,lty=3) #平均値-標準偏差 > abline(h=GBPUSD1440_range_up, col=4,lty=3) #平均値+標準偏差 > abline(h=GBPUSD1440_close_mean, col=6,lty=3) #平均値
なんだかやろうと思っていたことが全然できていないけど・・・・。この辺で終わりにしておく。この可視化に意味は無いし・・・。