www.crosshyou.info

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

都道府県別の財政力指数の分析2 - Central Tendancyの練習

今日は、

 

www.crosshyou.info

 の続き、というかこのデータを使って、

 

Statistics: An Introduction Using R

Statistics: An Introduction Using R

 

 の第3章、Central Tendencyの練習をしようと思います。

f:id:cross_hyou:20190718194452j:plain

まず、ZaiAllというベクトルを作成し、as.character関数とpaste関数を使って、Yearとprefを連結した文字列ベクトルを作成し、names関数でZaiAllに名前の属性をつけて、head関数ではじめの6データを表示しました。

f:id:cross_hyou:20190718194939j:plain

f:id:cross_hyou:20190718194951j:plain

hist関数でヒストグラムを描きました。label = TRUEとして度数を表示しています。

mean関数で平均値、median関数で中央値を算出し、ablineでヒストグラムに重ねました。赤が平均値、青が中央値です。

ヒストグラムは、右の裾野が広い分布形状です。

上に掲載した本では、Central Tendancyとして、arithmetic mean, median, geometric mean, harmonic meanの4種類が記述されています。

f:id:cross_hyou:20190718195621j:plain

arithmetic meanはR言語ではmean関数がはじめからあります。

sum(x) / length(x) 、つまりデータの合計値をデータの個数で割ったものです。

function関数でそのような関数をつくり計算しましたが、mean関数と一致します。

f:id:cross_hyou:20190718200327j:plain

中央値はmedian関数という出来合いの関数がありますが、function関数で作成しました。

ベクトルの個数が奇数ならその真ん中の値になるので、sort(x)で小さい順に並べて、ceiling(ベクトルの個数 / 2)番目の値が中央値になります。

ベクトルの個数が偶数なら、ちょうど半分のところの上下の値の平均値になります。

%% 2 で2で割った余りを計算して、これが0なら偶数の個数、そうでないなら奇数と判断しています。

f:id:cross_hyou:20190718200826j:plain

geometric mean, 幾何平均は全てのデータを掛けてそれをデータの個数分の平方根?だそうですが、exp(mean(log(x)))で計算できるそうです。

f:id:cross_hyou:20190718201201j:plain

harmonic mean 調和平均はこのようにして計算します。

東京から大阪まで行きは時速100キロ、帰りは時速200キロで移動したときの平均速度は?という質問の答えがこのharmonic meanだそうです。

boxplot関数で箱ひげ図を描いてみます。

f:id:cross_hyou:20190718202821j:plain

f:id:cross_hyou:20190718202833j:plain

黄色の中央値と青の幾何平均がほとんど同じでわからないですね。

1.0以上の値をはずして箱ひげ図を描いてみます。

f:id:cross_hyou:20190718203318j:plain

f:id:cross_hyou:20190718203328j:plain

ZaiAll[ZaiAll < 1]とすると、1.0以上の値は除外できます。

今回は以上です。