r-statistics-fanの日記

統計好きの現場の臨床医の覚書のようなもの

恣意的なカテゴリー分けで有意差を捏造する(黒い統計家シリーズ)

恣意的なカテゴリー分け

連続変数で有意にならなかったからカテゴリ変数にして有意にしてる論文を読んだという話を聞いた

これは面白い。つか、よくアクセプトされたな。

黒い統計家になった前提で、どの程度、この技が使えるのかやってみよう。

### 黒い統計家
nsim <- 1000
res <- matrix(0, nrow = nsim, ncol = 3)

for (j in 1:nsim) {
    n <- 100
    y <- rnorm(n, 10, 5)
    age <- rnorm(n, 50, 15)

    p.glm <- summary(glm(y ~ 1 + age, family = gaussian))$coefficients[2, 4]

    y2 <- y[order(age)]


    p.kuro <- numeric(n - 3)
    for (i in 2:(n - 2)) {
        p.kuro[i - 1] <- t.test(y2[1:i], y2[(i + 1):n], var.equal = FALSE)$p.value

    }

    res[j, ] <- c(p.glm, sum(p.kuro < 0.05), sum(p.kuro < p.glm))

}

res2 <- res[res[, 1] > 0.05, ]

summary(res2)  #glmのP値 何個P<0.05のカテゴリー分けが可能か glmのP値より小さくなる回数
##        V1               V2              V3    
##  Min.   :0.0501   Min.   : 0.00   Min.   : 1  
##  1st Qu.:0.2981   1st Qu.: 0.00   1st Qu.:31  
##  Median :0.5407   Median : 1.00   Median :47  
##  Mean   :0.5324   Mean   : 3.62   Mean   :51  
##  3rd Qu.:0.7760   3rd Qu.: 5.00   3rd Qu.:72  
##  Max.   :0.9991   Max.   :42.00   Max.   :97
sum(res2[, 2] != 0)/nrow(res2)  #glmでP>0.05になった場合に、カテゴリー分けを試行錯誤して、1つ以上のP<0.05の組合せを見つられる割合
## [1] 0.6033

なんと、普通の線形回帰で有意差が出なくっても、恣意的にカテゴリー分けを いろいろ試行錯誤すれば、約60%で有意差を捏造できる。 今回のシミュレーションでは、全く差がないデータでの話だから、恐ろしい までの確率である。