2013年1月15日火曜日

Rによる統計解析ハンドブック 第2章演習問題解答

This post is solutions of chapter 2 of `A Handbook of Statistical Analyses Using R, Second Edition'. Note that my interpretations of data may differ from yours, but they are not the only solutions.

このポストはRによる統計解析ハンドブック(第2版)の第2章の解答になります。私のデータの解釈はあなたのそれらとは異なるかも知れませんが、唯一の解答ではないことに注意してください。

1

I aggregated expenditure for each gender. Compared to men, women tend to spend much money on housing and less on food.

性別ごとに支出金額を集計した。男性と比較して、女性は住まいへの費用が多く、食費への支出が少ない傾向にある。

lst <- split(household, household$gender)
expenses <- sapply(lst, function(x){colSums(x[,1:4])})
normalize <- matrix(rep(colSums(expenses),4), ncol=2, byrow=T)
ratios <- expenses/normalize
xpos <- barplot(ratios)
ypos <- diff(rbind( c(0, 0), apply(ratios, 2, cumsum)))/2 + 
        rbind( c(0, 0), apply(ratios, 2, cumsum))[1:4,] # calculate y coord to insert strings
text(rep(xpos, each=4), ypos, rep(rownames(ratios), 2))
HSAUR2_ch2_q1

2

As men get older, suicide rate increases. All of outliers belong to Hungary. Assume that library(HSAUR2) is already done. If not, execute data("suicides2", package="HSUAR2").

年齢が上がるに連れて自殺率が上がる。外れ値はいずれもハンガリーになっている。library(HSAUR2)は実行済みと仮定してください。もししていなければ、data("suicides2", package="HSUAR2")を実行するように。

boxplot(suicides2)
HSAUR2_ch2_q2

3

This answer shows how to change points into strings when using function pairs. By controlling parameter `panel', we can control both lower.panel and upper.panel. In case of changing counterpart, we should define functions for each panel. q2 required me to plot Life.Expectancy - Homicide relationship conditioned by Income, but no indication about it in text book. So I divided data whether it is higher or lower than the median income.

対散布図で描画するときに、点を文字に変えるにはどうしたら良いかという解答がこれになります。panelを制御することで、lower.panelとupper.panelを両方とも制御することができます。一方だけ変えたい場合は、それぞれに対して関数を定義してやる必要があります。q2では、平均収入を条件とした平均余命と殺人率のプロットを描くのですが、平均収入を条件とするということに関する指示がありません。ここでは、収入が中央値より高いか低いかでデータを分けました。

# states.abb <- abbreviate(rownames(USstates), minlength=2)
# q1
states.abb <- c("AL", "CA", "IA", "MS", "NH", "OH", "OR", "PA", "SD", "VT")
pairs(USstates, panel=function(x, y, ...){ text(x, y, states.abb) })
# q2
cond <- ifelse(USstates$Income < median(USstates$Income), "Lower", "Upper")
xyplot(Life.Expectancy ~ Homicide | cond, data=USstates)
HSAUR2_ch2_q3_1 HSAUR2_ch2_q3_2

4

When I used pairs, I found counterfeits were slightly short in diagonal length. To confirm that, I used boxplot.

対散布図を使ったところ、偽物がわずかに対角線の長さが短いことに気づきました。それを確認するために、箱ひげ図を利用してみました。

data("banknote", package="alr3")
pairs(banknote, col=banknote$Y+1) # black=genine, red=fake
boxplot(banknote$Diagonal~banknote$Y)
HSAUR2_ch2_q4_1 HSAUR2_ch2_q4_2

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計