DOING THINGS RIGHT

彩りのある生産的な日々を。

ガンマ分布のscaleとshape(rate)を直感的にわかりやすく理解する【R】

統計モデリングを学ぶ上での名著、

データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)

(緑本)の6章8節にこのような記述がある。

この例題は、架空植物50個の葉の重量と花の重量の関係を調べます。個体iの葉重量をx _
i、花重量をy _ iとするのですが、x _
iが大きくなるにつれてy _ iも大きくなっているようです。(中略)
ここでは、ある個体の花の重量がガンマ分布に従っていることにします。応答変数y _
iは連続地ですが、重量なので正の値しかとりません。したがって、そのばらつきは正規分布ではなくガンマ分布で説明したほうがよさそうです。

なるほど、応答変数が連続値で正の値しかとらない場合はガンマ分布のほうがふさわしいのか。そのガンマ分布とやらを一度Rで見てみようということで、正規分布のグラフを書くノリでcurve()+dgammaを渡してみたところ、

続きを読む

【R言語】条件を満たす行の複数列に代入してくれるmutate_cond

下記のようなデータがあります。y=x _ 1 × x _ 2という関係です。

data<-data.frame(letter=c("a","a","c","b","a"),
           x1=c(20,30,15,25,20),
           x2=c(5,4,10,4,3)) %>% 
  mutate(y=x1*x2)
data
##   letter x1 x2   y
## 1      a 20  5 100
## 2      a 30  4 120
## 3      c 15 10 150
## 4      b 25  4 100
## 5      a 20  3  60

このデータに対して、
letterが“a”である行の、x1に5を足してx2には10を足し、yを計算しなおす。という操作を加えるとき、どういう操作が思いつくでしょうか。

続きを読む