共通の分母で割り算して対数を取った値同士の相関 [統計]
生態学にありがちな、共通の変数で割り算して対数を取った変数同士の相関(log(葉面積あたりの○○)とlog(葉面積あたりの××)とか)を考えてみました。対数値としては、共通の変数をひいてやったことになります。
まずは一例。X, Y, Zが、サンプルサイズN=100でそれぞれ標準正規分布にしたがう変数のとき、A=Y-XとB=Z-Xを計算し、これらの散布図行列と相関係数を出力させました。
これだけではよくわからないので、シミュレーションで実験してみました。詳細は下のRコードにありますが、上の設定で乱数を発生させ、相関係数を10000回計算させました。結果は以下です。正の方向にかたよりがみられます。
サンプルサイズを500としましたが、やはりかたよりがあります。
Xの標準偏差を5にすると(サンプルサイズは100)、かたよりがはげしくなりました。
ちょっと考えればわかるように、Xのレンジが大きくなると、A=Y-XとB=Z-Xの相関はだんだん-Xと-Xとの相関に近くなります。ということで、当然1にちかづくわけです。
シミュレーションのRコードです。
これだけではなんなので、AとBが既知だがXが未知(ただし平均だけはわかっている)という場合に、X, Y, Zの値を推定するというのをやってみました。
RコードとStanコード
結果です。
> print(fit, pars = c("mu_Y", "mu_Z", "sigma")) Inference for Stan model: diff_model. 4 chains, each with iter=2000; warmup=1000; thin=1; post-warmup draws per chain=1000, total post-warmup draws=4000. mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat mu_Y 0.11 0 0.14 -0.16 0.02 0.12 0.21 0.38 2795 1 mu_Z 0.02 0 0.14 -0.25 -0.07 0.02 0.12 0.29 3139 1 sigma[1] 0.98 0 0.12 0.75 0.89 0.97 1.05 1.21 2173 1 sigma[2] 0.93 0 0.12 0.69 0.85 0.92 1.00 1.16 1879 1 sigma[3] 1.01 0 0.11 0.80 0.94 1.01 1.09 1.24 2979 1
だいたいうまく推定できたようです。
コメント 0