対数変換(log変換)して有意差がなくなる事もある??
stepwise法で(AICでなく)p値を使って変数選択をする際に対数変換するとしないのとで有意差が変わってしまうのは問題ではないかとカンファレンスで指摘した事がある。
指摘しておいて不安になったので実際やってみた。
height <- c(158,162,177,173,166,168) hei_log <- log(height) length <- c(300,320,330,340,320,336) data_set <- data.frame(HEIGHT=height,LOG=hei_log,GOAL=length) summary(lm(length~height,data=data_set)) ## Call: ## lm(formula = length ~ height, data = data_set) ## Residuals: ## 1 2 3 4 5 6 ## -8.710 4.595 -10.515 6.181 -2.101 10.551 ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 44.2219 102.0472 0.433 0.6871 ## height 1.6740 0.6094 2.747 0.0515 . ## --- ## Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 ## Residual standard error: 9.506 on 4 degrees of freedom ## Multiple R-squared: 0.6535, Adjusted R-squared: 0.5669 ## F-statistic: 7.545 on 1 and 4 DF, p-value: 0.05154 summary(lm(length~hei_log,data=data_set)) ## Call: ## lm(formula = length ~ hei_log, data = data_set) ## Residuals: ## 1 2 3 4 5 6 ## -8.292 4.631 -10.436 6.034 -2.274 10.336 ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -1124.8 512.1 -2.196 0.0930 . ## hei_log 283.1 100.0 2.830 0.0473 * ## --- ## Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 ## Residual standard error: 9.321 on 4 degrees of freedom ## Multiple R-squared: 0.6669, Adjusted R-squared: 0.5836 ## F-statistic: 8.008 on 1 and 4 DF, p-value: 0.04735
まとめると、
変数 | logなし(height) | logあり(hei_log) |
---|---|---|
p value | 0.0515 | 0.0473 * |
という事で、「ありうるはありうる」という結論になった。
なぜそんな衣ついた表現なのかと言うと、ありうる状況を作るまでに身長の値を何度も変える必要があったからである。なので、ぎりぎりの有意差(0.05あたり)の変数がある場合は注意する、という程度で良いだろう。
確かに「その値が信頼区間の間で常に正かどうか」などを判断する場合には意味合いもそんなに変わらないのだろうという結論に至った。