東京大学 | 大学院医学系研究科 | 国際保健学専攻 | 人類生態学教室TOP | 2nd

社会統計学第4回
「記述統計(2):代表値」(2001年10月11日)

トップ | 更新情報 | 研究と教育 | 業績 | 計算機 | 写真 | 枕草子 | 著者 | 目安箱 | 書評 | 社会統計学目次

最終更新: 2002年2月18日 月曜日 20時53分

全部を一括して読む | 前回へ


講義概要

(2002年2月18日追記)ケアレスミスで,四分位範囲と書くべきところを四分位偏差と書いていたのを訂正しました。ケアレスミスを反省すると同時に,メールでご指摘くださいました目黒様に深く感謝申し上げます。

代表値
▼データ全体の情報を集約してみるために計算される,1つの値。
▼分布の特徴を表す値として,一般に,中心ばらつきの2つが考えられる。
分布の中心(central tendency)=狭義の代表値
分布のばらつき
練習問題
▼以下のそれぞれについて,代表値を計算してみよ。
今回使った関数の一覧
求める代表値などEXCELの関数または手順
(範囲A1:Y1にデータがあるとして)
Rの関数または手順
(x <- c(...)などのやり方で変数xにデータを入れたとして)
最頻値離散データなら=MODE(A1:Y1)で良いが,連続量なら,ツール>分析ツール>ヒストグラムでヒストグラムを書いて最大度数のデータ区間を探し,その区間の中点を最頻値とする。hist(x)でヒストグラムを書いて最大度数のデータ区間を探し,その区間の中点を最頻値とする。hist(x,c(min(x),5,8,max(x)))などとすれば,xの最小値から5まで,5から8まで,8からxの最大値までという3つの区間で度数を計算させることができる。本来はhist(x,5)とすれば5つの区間という形の指定ができるはずなのだが,区間の数によってうまくいったりいかなかったりした。
なお,hist(x,plot=F)とすれば,グラフを書く代わりに数値を表示させられる。
中央値=MEDIAN(A1:Y1)median(x)
但し,xの中にNA(欠損値)を含む場合は,median(x,na.rm=T),あるいはmedian(x[!is.na(x)])とする。以下同様。
平均値=AVERAGE(A1:Y1)
調和平均は=HARMEAN(A1:Y1),幾何平均は=GEOMEAN(A1:Y1)で求められる。
mean(x)
調和平均は1/mean(1/x),幾何平均はexp(mean(log(x)))で求められる。
範囲=MAX(A1:Y1)-MIN(A1:Y1)max(x)-min(x)
四分位範囲=QUARTILE(A1:Y1,3)-QUARTILE(A1:Y1,1)IQR(x),またはy<-quantile(x); y[4]-y[2]
または,fivenum(x)[4]-fivenum(x)[2]でも良い。
四分位偏差=(QUARTILE(A1:Y1,3)-QUARTILE(A1:Y1,1))/2IQR(x)/2,またはy<-quantile(x); (y[4]-y[2])/2
または,(fivenum(x)[4]-fivenum(x)[2])/2でも良い。
平均偏差=AVEDEV(A1:Y1)組み込み関数にはないが,
sum(abs(x-mean(x)))/NROW(x)で得られる。
不偏分散=VAR(A1:Y1)
(不偏でない分散は=VARP(A1:Y1)で得られる)
var(x)
不偏でない分散は組み込み関数にはないが,
sum((x-mean(x))^2)/NROW(x)で得られる。
不偏標準偏差=STDEV(A1:Y1)
(不偏でない標準偏差は=STDEVP(A1:Y1)で得られる)
sd(x)
不偏でない標準偏差は,
sqrt(sum((x-mean(x))^2)/NROW(x))で得られる。(*)
タブ区切りデータファイルの読み込みそのままドラッグ&ドロップ1行目に変数名が入っているなら,
x <- read.delim("C:/My Documents/solomon.dat",header=T)とする(**)
それぞれの変数は,例えばx$ageのようにして参照できる。1行目が変数名でなくすぐにデータである場合は,
x <- read.delim("C:/My Documents/solomon.dat",header=F)とする。この場合,変数名はx$V1, x$V2, ...として参照できる。
一々x$とつけるのが面倒なら,attach(x)とすればV1とかV21だけで参照できる。
カンマ区切りデータファイルの読み込みそのままドラッグ&ドロップ1行目に変数名が入っているなら,
x <- read.csv("C:/My Documents/solomon.dat",header=T)とする(**)。1行目が変数名でなくすぐにデータである場合は,
x <- read.csv("C:/My Documents/solomon.dat",header=F)とする。
データの編集表にそのまま打ち込むde(x$V1,x$V5)などとすれば表形式で指定した変数の値を編集できる。表の上でマウスを右クリックすると操作メニューがでる。
データの書き出しファイルから保存を選ぶコンマ区切りでデータフレームxをマイドキュメントのsample.datに書き出すには,
write.table(x,"C:/My Documents/sample.dat",sep=",")とする。タブ区切りならsep="¥t"とすればよい。
(*) もちろん,不偏でない分散を出すときに,Vx<-sum((x-mean(x))^2)/NROW(x)などとして値を保存しておいて,
sqrt(Vx)とするのがエレガントである。
(**) ¥を/に置き換えたファイル名をフルパスで書く。ただし,2バイトコードが入ったディレクトリ名やファイル名は,文字化けするので使えないと思われる。Windows2000では,マイドキュメントフォルダは,ふつう,"C:/Documents and Settings/nakazawa/My Documents/"など(nakazawaのところにはユーザIDが入る)として参照できる。

フォロー

いろいろな代表値はどんな目的で使われる?
▼例えば,Rでdata(infert)として読み込まれるデータ(Rには,予めいくつかのデータが組み込まれているのです)は,infertとすればすべて表示されますが,その個々の値をすべて見て全体の様子を把握することは人間には難しいので,分布を図示したり代表値を計算したりするわけです。
▼代表値は,どれもデータの分布を1つの値に集約して示す目的で計算されます。1つの値に集約できると他のデータと比較するのに便利です(経年変化を見るとか)。
▼データの分布の中心を表す値としては,分布が歪んでいたり外れ値が多い時は中央値,分布が正規分布に近ければ平均値が適当です。分布のばらつきを表す値としては,分布が歪んでいたり外れ値が多い時は四分位範囲や四分位偏差,正規分布に近ければ不偏標準偏差が適当です。
練習問題の答え
代表値の種類東京の最低気温ソロモン諸島住民の年齢ソロモン諸島民の収縮期血圧
中央値6.233111
平均値6.434.43245112.2878
調和平均5.8335920(*)110.0773
幾何平均6.1223520(*)111.1651
範囲7.687107
四分位範囲2.22320
四分位偏差1.111.510
平均偏差1.45613.6423112.32760
分散3.4624292.8202263.0999
不偏分散3.606667293.3403263.6538
標準偏差1.86075317.1119916.22036
不偏標準偏差1.89912317.1271816.23742
変動係数29.1%49.7%14.4%
(*)ageは0を含むため,調和平均や幾何平均は0になってしまう。
(注)ここは計算練習なので(変動係数以外は)桁数を長く表示しているが,本来は有効数字を考えて結果を出す必要がある。例えば,年齢はデータの有効数字が2桁しかないから,平均値も34と書くべきである。

全部を一括して読む | 次回へ