コーシー分布のシミュレーション

コーシー分布 をシミュレーションで確認します。

なお、関数 rcauchy 及び qcauchy の引数 scale は半値半幅です。

set.seed(20240531)
n <- 10^6
v_unif <- runif(n = n, min = -10^3, max = 10^3)
v_gamma <- rgamma(n = n, shape = 2, scale = 1)
v_cauchy <- rcauchy(n = n, location = 0, scale = 1)

library(dplyr)
library(ggplot2)
library(ggpubr)
fun_test <- function(v) {
result <- seq(5000) %>%
sapply(FUN = function(x) sample(x = v, size = 100, replace = T) %>% mean()) %>%
data.frame() %>%
{
colnames(.)[1] <- "x"
.
}
g <- ggplot(result, aes(x = x)) +
geom_histogram(aes(y = after_stat(density)), colour = 1, fill = "white") +
geom_density()
normality <- ks.test(x = result$x, y = "pnorm", mean = mean(result$x), sd = sd(result$x)) return(list(g = g, normality = normality)) } 一様分布のシミュレーションを確認します。 Uniform{stats}を利用した連続一様分布の確率密度関数 ... fun_test(v = v_unif)$g
fun_test(v = v_unif)$normality  Asymptotic one-sample Kolmogorov-Smirnov test data: result$x
D = 0.0081361, p-value = 0.8952
alternative hypothesis: two-sided

コルモゴロフ・スミルノフ検定の結果、正規性は棄却されません。

fun_test(v = v_gamma)$g fun_test(v = v_gamma)$normality

Asymptotic one-sample Kolmogorov-Smirnov test

data:  result$x D = 0.013144, p-value = 0.3534 alternative hypothesis: two-sided こちらも正規性は棄却されません。 最後にコーシー分布です。 fun_test(v = v_cauchy)$g
fun_test(v = v_cauchy)$normality  Asymptotic one-sample Kolmogorov-Smirnov test data: result$x
D = 0.39983, p-value < 2.2e-16
alternative hypothesis: two-sided

prob <- seq(0.9, 0.99, 0.005)
q <- prob %>% sapply(FUN = function(x) qnorm(p = x, mean = 0, sd = 1, lower.tail = T))
data.frame(normal = prob, cauchy = pcauchy(q = q, location = 0, scale = 1, lower.tail = T))
   normal    cauchy
1   0.900 0.7890830
2   0.905 0.7925311
3   0.910 0.7960147
4   0.915 0.7995396
5   0.920 0.8031125
6   0.925 0.8067413
7   0.930 0.8104351
8   0.935 0.8142052
9   0.940 0.8180648
10  0.945 0.8220306
11  0.950 0.8261234
12  0.955 0.8303696
13  0.960 0.8348044
14  0.965 0.8394752
15  0.970 0.8444492
16  0.975 0.8498262
17  0.980 0.8557660
18  0.985 0.8625515
19  0.990 0.8707730