175 ANOVAのためのlog変換,定数cの選び方 迷える子羊 2002/10/16 (水) 09:43
176 Re: ANOVAのためのlog変換,定数cの選び方 ひの 2002/10/17 (木) 00:41
181 Re^2: ANOVAのためのlog変換,定数cの選び方 青木繁伸 2002/10/17 (木) 10:59
182 Re^3: ANOVAのためのlog変換,定数cの選び方 迷える子羊 2002/10/17 (木) 12:15
184 Re^4: ANOVAのためのlog変換,定数cの選び方 青木繁伸 2002/10/17 (木) 14:02
190 Re^5: ANOVAのためのlog変換,定数cの選び方 青木繁伸 2002/10/17 (木) 18:41
191 Re^6: ANOVAのためのlog変換,定数cの選び方 青木繁伸 2002/10/17 (木) 18:41
185 Re^5: ANOVAのためのlog変換,定数cの選び方 青木繁伸 2002/10/17 (木) 14:07
186 Re^6: ANOVAのためのlog変換,定数cの選び方 迷える子羊 2002/10/17 (木) 17:27
175. ANOVAのためのlog変換,定数cの選び方 迷える子羊 2002/10/16 (水) 09:43 |
再びANOVAに関してなのですが,Biometrics,1987,vol.43 p439-456で,ログ変換する際のlog(x+c)でのcの選び方に関する論文を見つけました。 |
176. Re: ANOVAのためのlog変換,定数cの選び方 ひの 2002/10/17 (木) 00:41 |
> この方法は現在でも使われているのでしょうか?それともほかに良い方法があるのでしょうか? |
181. Re^2: ANOVAのためのlog変換,定数cの選び方 青木繁伸 2002/10/17 (木) 10:59 |
> データの分布を正規分布に近づけることに主眼を置くなら,単純な対数変換ではなくてBox-Cox変換という手法があります。 |
182. Re^3: ANOVAのためのlog変換,定数cの選び方 迷える子羊 2002/10/17 (木) 12:15 |
ひの様,青木様,どうもありがとうございます! |
184. Re^4: ANOVAのためのlog変換,定数cの選び方 青木繁伸 2002/10/17 (木) 14:02 |
> こんな便利なサイトがあったとは。 |
190. Re^5: ANOVAのためのlog変換,定数cの選び方 青木繁伸 2002/10/17 (木) 18:41 |
シンプレックス法で最適なλを決定する R プログラムを次のコメントで示しておきます。 |
191. Re^6: ANOVAのためのlog変換,定数cの選び方 青木繁伸 2002/10/17 (木) 18:41 |
Box.Cox.transformation2 <- function(x, loop = 500, epsilon = 1e-15, Alpha = 2, Beta = 0.5, Gamma = 2) { Gm <- exp(mean(log(x))) BCsub <- function(lambda) { if (lambda == 0) { w <- Gm*log(x) } else { w <- (x^lambda-1)/(lambda*Gm^(lambda-1)) } sd(w) } pos <- function(x, m) { ifelse(x[1] == m, 1, 2) } p2 <- p1 <- -3+0.1 vec <- c(p1, p2) for (i in 1:loop) { result <- c(BCsub(vec[1]), BCsub(vec[2])) h <- pos(result, max(result)) s <- pos(result, min(result)) ph <- vec[h] fh <- result[h] ps <- vec[s] fs <- result[s] p0 <- vec[s] pr <- (1+Alpha)*p0-Alpha*ph fr <- BCsub(pr) if (fr > fh) { pc <- Beta*ph+(1-Beta)*p0 vec[h] <- pc } else if (fs > fr) { pe <- Gamma*pr+(1-Gamma)*p0 fe <- BCsub(pe) if (fr > fe) vec[h] <- pe else vec[h] <- pr } else { vec[h] <- pr } if (abs((vec[1]-vec[2])/vec[1]) < epsilon) break } mean(vec) } |
185. Re^5: ANOVAのためのlog変換,定数cの選び方 青木繁伸 2002/10/17 (木) 14:07 |
Box.Cox.transformation <- function(x) { Gm <- exp(mean(log(x))) lambda0 <- seq(-3, 3, 0.1) result <- rep(0, length(lambda0)) for (i in 1:length(lambda0)) { lambda <- lambda0[i] if (lambda == 0) { w <- Gm*log(x) } else { w <- (x^lambda-1)/(lambda*Gm^(lambda-1)) } result[i] <- sd(w) } cbind(lambda0, result) } x <- rnorm(100)+5 results <- Box.Cox.transformation(x) plot(results) 結果(一部) [40,] 0.9 1.038741 λ,SD の順に示す。 [41,] 1.0 1.036765 [42,] 1.1 1.035565 [43,] 1.2 1.035120 この近辺で SD が最小になる [44,] 1.3 1.035413採用するλは 1 でよいだろう |
186. Re^6: ANOVAのためのlog変換,定数cの選び方 迷える子羊 2002/10/17 (木) 17:27 |
どうもありがとうございます。 |
● 「統計学関連なんでもあり」の過去ログ--- 021 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る