{"id":7377,"date":"2025-12-01T10:35:23","date_gmt":"2025-12-01T01:35:23","guid":{"rendered":"https:\/\/blog.since2020.jp\/?p=7377"},"modified":"2025-12-01T10:35:23","modified_gmt":"2025-12-01T01:35:23","slug":"convergence_theory_of_random_variable_sequences","status":"publish","type":"post","link":"https:\/\/since2020.jp\/media\/convergence_theory_of_random_variable_sequences\/","title":{"rendered":"\u78ba\u7387\u5909\u6570\u5217\u306e\u53ce\u675f\u7406\u8ad6"},"content":{"rendered":"\n<p>\u78ba\u7387\u8ad6\u3068\u7d71\u8a08\u5b66\u306e\u91cd\u8981\u306a\u6982\u5ff5\u3067\u3042\u308b\u78ba\u7387\u5909\u6570\u5217\u306e\u53ce\u675f\u306b\u3064\u3044\u3066\u3001\u4f53\u7cfb\u7684\u306b\u89e3\u8aac\u3057\u307e\u3059\u3002\u6982\u53ce\u675f\u304b\u3089\u5206\u5e03\u53ce\u675f\u307e\u30674\u3064\u306e\u53ce\u675f\u6982\u5ff5\u3092\u7406\u89e3\u3057\u3001\u5927\u6570\u306e\u6cd5\u5247\u3084\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406\u3068\u3044\u3063\u305f\u57fa\u672c\u5b9a\u7406\u304b\u3089\u3001\u30c7\u30eb\u30bf\u6cd5\u306a\u3069\u306e\u5fdc\u7528\u307e\u3067\u5e45\u5e83\u304f\u5b66\u7fd2\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n<h2>\u78ba\u7387\u5909\u6570\u5217\u306e4\u3064\u306e\u53ce\u675f<\/h2>\n<p>\u78ba\u7387\u5909\u6570\u5217\\(\\{X_n\\}_{n=1}^{\\infty}\\)\u306e\u53ce\u675f\u306b\u306f\u3001\u6761\u4ef6\u306e\u5f37\u3055\u306b\u3088\u3063\u30664\u3064\u306e\u985e\u578b\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u53ce\u675f\u306f\u4ee5\u4e0b\u306e\u5305\u542b\u95a2\u4fc2\u3092\u6301\u3061\u307e\u3059\uff1a<\/p>\r\n<p>\u6982\u53ce\u675f \u2282 \u5e73\u5747\u4e8c\u4e57\u53ce\u675f \u2282 \u78ba\u7387\u53ce\u675f \u2282 \u5206\u5e03\u53ce\u675f<\/p>\r\n<b>\u6982\u53ce\u675f\uff08Almost Sure Convergence\uff09<\/b>\r\n<p>\u78ba\u7387\u5909\u6570\u5217\\(\\{X_n\\}\\)\u304c\u78ba\u7387\u5909\u6570\\(Y\\)\u306b<strong>\u6982\u53ce\u675f<\/strong>\u3059\u308b\u3068\u306f\uff1a<\/p>\r\n<p>\\[P\\left(\\lim_{n \\to \\infty} X_n = Y\\right) = 1\\]<\/p>\r\n<p>\u304c\u6210\u308a\u7acb\u3064\u3053\u3068\u3067\u3059\u3002\u3053\u308c\u306f\\(X_n \\to Y\\) a.s.\u3068\u8868\u8a18\u3055\u308c\u307e\u3059\u3002<\/p>\r\n<p><strong>\u5177\u4f53\u4f8b<\/strong>: \u5927\u6570\u306e\u5f37\u6cd5\u5247<\/p>\r\n<b>\u5e73\u5747\u4e8c\u4e57\u53ce\u675f\uff08Mean Square Convergence\uff09<\/b>\r\n<p>\u78ba\u7387\u5909\u6570\u5217\\(\\{X_n\\}\\)\u304c\u78ba\u7387\u5909\u6570\\(Y\\)\u306b<strong>\u5e73\u5747\u4e8c\u4e57\u53ce\u675f<\/strong>\u3059\u308b\u3068\u306f\uff1a<\/p>\r\n<p>\\[\\lim_{n \\to \\infty} E[(X_n &#8211; Y)^2] = 0\\]<\/p>\r\n<p>\u304c\u6210\u308a\u7acb\u3064\u3053\u3068\u3067\u3059\u3002\u3053\u308c\u306f\\(X_n \\to Y\\) in L\u00b2\u3068\u8868\u8a18\u3055\u308c\u307e\u3059\u3002<\/p>\r\n<p><strong>\u5177\u4f53\u4f8b<\/strong>: \u5927\u6570\u306e\u5f31\u6cd5\u5247\u306e\u8a3c\u660e<\/p>\r\n<b>\u78ba\u7387\u53ce\u675f\uff08Convergence in Probability\uff09<\/b>\r\n<p>\u78ba\u7387\u5909\u6570\u5217\\(\\{X_n\\}\\)\u304c\u78ba\u7387\u5909\u6570\\(Y\\)\u306b<strong>\u78ba\u7387\u53ce\u675f<\/strong>\u3059\u308b\u3068\u306f\u3001\u4efb\u610f\u306e\\(\\varepsilon &gt; 0\\)\u306b\u5bfe\u3057\u3066\uff1a<\/p>\r\n<p>\\[\\lim_{n \\to \\infty} P(|X_n &#8211; Y| \\geq \\varepsilon) = 0\\]<\/p>\r\n<p>\u304c\u6210\u308a\u7acb\u3064\u3053\u3068\u3067\u3059\u3002\u3053\u308c\u306f\\(X_n \\overset{p}{\\to} Y\\)\u3068\u8868\u8a18\u3055\u308c\u307e\u3059\u3002<\/p>\r\n<b>\u5206\u5e03\u53ce\u675f\uff08Convergence in Distribution\uff09<\/b>\r\n<p>\u78ba\u7387\u5909\u6570\u5217\\(\\{X_n\\}\\)\u306e\u5206\u5e03\u95a2\u6570\\(F_n(x)\\)\u304c\u78ba\u7387\u5206\u5e03\\(G\\)\u306b<strong>\u5206\u5e03\u53ce\u675f<\/strong>\u3059\u308b\u3068\u306f\u3001\\(G\\)\u306e\u3059\u3079\u3066\u306e\u9023\u7d9a\u70b9\\(x\\)\u306b\u304a\u3044\u3066\uff1a<\/p>\r\n<p>\\[\\lim_{n \\to \\infty} F_n(x) = G(x)\\]<\/p>\r\n<p>\u304c\u6210\u308a\u7acb\u3064\u3053\u3068\u3067\u3059\u3002\u3053\u308c\u306f\\(X_n \\overset{d}{\\to} Y\\)\u307e\u305f\u306f\\(F_n \\overset{d}{\\to} G\\)\u3068\u8868\u8a18\u3055\u308c\u307e\u3059\u3002<\/p>\r\n<p><!-- notionvc: 0b00a085-08b7-4506-bf6f-a193073e6529 --><\/p>\n\n<h2>\u5927\u6570\u306e\u6cd5\u5247\u3068\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406<\/h2>\n<b>\u5927\u6570\u306e\u5f31\u6cd5\u5247<\/b>\r\n<p>\\(X_1, X_2, \\ldots, X_n\\)\u304c\u5e73\u5747\\(\\mu\\)\u3001\u6709\u9650\u306a\u5206\u6563\u3092\u6301\u3064\u540c\u4e00\u306e\u5206\u5e03\u306b\u72ec\u7acb\u306b\u5f93\u3046\u3068\u304d\u3001\u6a19\u672c\u5e73\u5747\\(\\bar{X}_n = \\frac{1}{n}\\sum_{i=1}^n X_i\\)\u306f\\(\\mu\\)\u306b\u5e73\u5747\u4e8c\u4e57\u53ce\u675f\u3057\u307e\u3059\uff1a<\/p>\r\n<p>\\[\\bar{X}_n \\overset{L^2}{\\to} \\mu\\]<\/p>\r\n<p>\u3055\u3089\u306b\u78ba\u7387\u53ce\u675f\u3082\u6210\u308a\u7acb\u3061\u307e\u3059\uff1a<\/p>\r\n<p>\\[\\bar{X}_n \\overset{p}{\\to} \\mu\\]<\/p>\r\n<b>\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406<\/b>\r\n<p>\\(X_1, X_2, \\ldots, X_n\\)\u304c\u5e73\u5747\\(\\mu\\)\u3001\u5206\u6563\\(\\sigma^2\\)\u306e\u540c\u4e00\u306e\u5206\u5e03\u306b\u72ec\u7acb\u306b\u5f93\u3046\u3068\u304d\u3001\u6a19\u6e96\u5316\u3055\u308c\u305f\u6a19\u672c\u5e73\u5747\u306b\u3064\u3044\u3066\u4ee5\u4e0b\u306e\u5206\u5e03\u53ce\u675f\u304c\u6210\u308a\u7acb\u3061\u307e\u3059\uff1a<\/p>\r\n<p>\\[\\frac{\\sqrt{n}(\\bar{X}_n &#8211; \\mu)}{\\sigma} \\overset{d}{\\to} N(0, 1)\\]<\/p>\r\n<p>\u3053\u308c\u306f\u5b9f\u7528\u7684\u306b\u306f\uff1a<\/p>\r\n<p>\\[\\bar{X}_n \\overset{d}{\\to} N\\left(\\mu, \\frac{\\sigma^2}{n}\\right)\\]<\/p>\r\n<p>\u3068\u89e3\u91c8\u3055\u308c\u307e\u3059\u3002<\/p>\r\n<b>\u9023\u7d9a\u4fee\u6b63<\/b>\r\n<p>\u96e2\u6563\u5206\u5e03\u3092\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406\u306b\u3088\u3063\u3066\u6b63\u898f\u5206\u5e03\u3067\u8fd1\u4f3c\u3059\u308b\u969b\u3001\u533a\u9593\u5e45\u30920.5\u3060\u3051\u305a\u3089\u3057\u3066\u7cbe\u5ea6\u3092\u5411\u4e0a\u3055\u305b\u308b\u624b\u6cd5\u3067\u3059\u3002<\/p>\r\n<p>\u4f8b\uff1a\\(X \\sim \\text{Bin}(n, p)\\)\u3001\\(Y \\sim N(np, np(1-p))\\)\u3068\u3057\u3066\uff1a<\/p>\r\n<p>\\[P(a \\leq X \\leq b) \\approx P(a &#8211; 0.5 \\leq Y \\leq b + 0.5)\\]<\/p>\r\n<p><!-- notionvc: 9dfb3ad0-9ffc-4977-835f-8f4822cbad65 --><\/p>\n\n<h2>\u9ad8\u5ea6\u306a\u53ce\u675f\u5b9a\u7406<\/h2>\n<b>\u9023\u7d9a\u5199\u50cf\u5b9a\u7406<\/b>\r\n<p>\\(X_n \\overset{d}{\\to} X\\)\u3067\u3001\u95a2\u6570\\(h\\)\u304c\u9023\u7d9a\u3067\u3042\u308b\u3068\u304d\uff1a<\/p>\r\n<p>\\[h(X_n) \\overset{d}{\\to} h(X)\\]<\/p>\r\n<p>\u304c\u6210\u308a\u7acb\u3061\u307e\u3059\u3002<\/p>\r\n<p><strong>\u5fdc\u7528\u4f8b<\/strong>: \u6a19\u672c\u5e73\u5747\\(\\bar{X}_n\\)\u304c\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406\u306b\u3088\u308a\u6b63\u898f\u5206\u5e03\u306b\u53ce\u675f\u3059\u308b\u3068\u304d\u3001\\(h(x) = x^2\\)\u304c\u9023\u7d9a\u95a2\u6570\u3067\u3042\u308b\u3053\u3068\u304b\u3089\uff1a<\/p>\r\n<p>\\[(\\bar{X}_n)^2 \\overset{d}{\\to} \\left(\\mu + \\frac{\\sigma}{\\sqrt{n}}Z\\right)^2\\]<\/p>\r\n<p>\u3053\u3053\u3067\\(Z \\sim N(0, 1)\\)\u3067\u3059\u3002<\/p>\r\n<b>\u30b9\u30eb\u30c4\u30ad\u30fc\u306e\u88dc\u984c<\/b>\r\n<p>\\(U_n \\overset{d}{\\to} U\\)\u3001\\(V_n \\overset{p}{\\to} a\\)\uff08\u5b9a\u6570\uff09\u3067\u3042\u308b\u3068\u304d\uff1a<\/p>\r\n<ul>\r\n\t<li>\\(U_n + V_n \\overset{d}{\\to} U + a\\)<\/li>\r\n\t<li>\\(U_n V_n \\overset{d}{\\to} aU\\)<\/li>\r\n<\/ul>\r\n<p>\u304c\u6210\u308a\u7acb\u3061\u307e\u3059\u3002<\/p>\r\n<b>\u30c7\u30eb\u30bf\u6cd5<\/b>\r\n<p>\u6b63\u898f\u5206\u5e03\u306b\u5206\u5e03\u53ce\u675f\u3059\u308b\u78ba\u7387\u5909\u6570\u5217\\(U_n\\)\u306b\u3064\u3044\u3066\uff1a<\/p>\r\n<p>\\[U_n \\overset{d}{\\to} N(\\mu, \\sigma^2)\\]<\/p>\r\n<p>\u5c0e\u95a2\u6570\u304c\u9023\u7d9a\u3067\\(h'(\\mu) \\neq 0\\)\u3092\u6e80\u305f\u3059\u95a2\u6570\\(h\\)\u306b\u5bfe\u3057\u3066\uff1a<\/p>\r\n<p>\\[h(U_n) \\overset{d}{\\to} N(h(\\mu), [h'(\\mu)]^2\\sigma^2)\\]<\/p>\r\n<p>\u304c\u6210\u308a\u7acb\u3061\u307e\u3059\u3002<\/p>\r\n<p><strong>\u5fdc\u7528\u4f8b<\/strong>: \u5bfe\u6570\u6b63\u898f\u5206\u5e03\\(\\Lambda(\\mu, \\sigma^2)\\)\u306e\u4e2d\u592e\u5024\u63a8\u5b9a<\/p>\r\n<p>\u5bfe\u6570\u6b63\u898f\u5206\u5e03\u306b\u72ec\u7acb\u306b\u5f93\u3046\\(X_1, \\ldots, X_n\\)\u306b\u3064\u3044\u3066\u3001\\(Y_i = \\log X_i \\sim N(\\mu, \\sigma^2)\\)\u3067\u3059\u3002<\/p>\r\n<p>\u6a19\u672c\u5e73\u5747\\(\\bar{Y}_n\\)\u306f\uff1a<\/p>\r\n<p>\\[\\bar{Y}_n \\overset{d}{\\to} N\\left(\\mu, \\frac{\\sigma^2}{n}\\right)\\]<\/p>\r\n<p>\\(h(x) = e^x\\)\u3068\u3057\u3066\u3001\\(h'(\\mu) = e^{\\mu}\\)\u306a\u306e\u3067\u3001\u30c7\u30eb\u30bf\u6cd5\u306b\u3088\u308a\uff1a<\/p>\r\n<p>\\[e^{\\bar{Y}_n} \\overset{d}{\\to} N\\left(e^{\\mu}, \\frac{e^{2\\mu}\\sigma^2}{n}\\right)\\]<\/p>\r\n<p>\u3064\u307e\u308a\u3001\u4e2d\u592e\u5024\u306e\u63a8\u5b9a\u91cf\\(e^{\\bar{Y}_n}\\)\u306e\u5206\u5e03\u304c\u8fd1\u4f3c\u7684\u306b\u6b63\u898f\u5206\u5e03\u306b\u5f93\u3046\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\r\n<p><!-- notionvc: 51ddc485-1faf-4ac1-9e4d-5c4d274ae8be --><\/p>\n\n<h2>R\u306b\u3088\u308b\u5b9f\u88c5\uff1a\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406\u3068\u30c7\u30eb\u30bf\u6cd5\u306e\u78ba\u8a8d<\/h2>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3067\u3001\u7406\u8ad6\u7684\u7d50\u679c\u3092\u6570\u5024\u5b9f\u9a13\u306b\u3088\u308a\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\r\n<div class=\"hcb_wrap\">\r\n<pre><code class=\"language-r\"># Convergence Analysis of Random Variable Sequences\r\n\r\n# Required libraries\r\nlibrary(ggplot2)\r\nlibrary(gridExtra)\r\nset.seed(123)\r\n\r\n# ===========================================\r\n# 1. Law of Large Numbers\r\n# ===========================================\r\n\r\n# Parameter settings\r\nn_max &lt;- 1000\r\nn_sim &lt;- 500\r\ntrue_mean &lt;- 2\r\n\r\n# Sampling from exponential distribution\r\ndemonstrate_law_of_large_numbers &lt;- function(n_max, n_sim, lambda = 0.5) {\r\n  results &lt;- matrix(0, n_sim, n_max)\r\n\r\n  for(i in 1:n_sim) {\r\n    # Sample from exponential distribution\r\n    samples &lt;- rexp(n_max, rate = lambda)\r\n    # Calculate cumulative mean\r\n    results[i, ] &lt;- cumsum(samples) \/ (1:n_max)\r\n  }\r\n\r\n  return(results)\r\n}\r\n\r\n# Execute law of large numbers\r\nlln_results &lt;- demonstrate_law_of_large_numbers(n_max, n_sim)\r\n\r\n# Visualize convergence\r\nn_values &lt;- 1:n_max\r\nsample_paths &lt;- lln_results[1:10, ]  # First 10 paths\r\n\r\ndf_lln &lt;- data.frame(\r\n  n = rep(n_values, 10),\r\n  value = as.vector(t(sample_paths)),\r\n  path = factor(rep(1:10, each = n_max))\r\n)\r\n\r\np1 &lt;- ggplot(df_lln, aes(x = n, y = value, color = path)) +\r\n  geom_line(alpha = 0.7) +\r\n  geom_hline(yintercept = true_mean, linetype = \"dashed\", color = \"black\", size = 1.2) +\r\n  labs(title = \"Law of Large Numbers\",\r\n       subtitle = \"Sample Mean Convergence\",\r\n       x = \"Sample Size n\",\r\n       y = \"Sample Mean\") +\r\n  theme_minimal() +\r\n  theme(legend.position = \"none\")\r\n\r\n# ===========================================\r\n# 2. Central Limit Theorem\r\n# ===========================================\r\n\r\n# Distribution changes with different sample sizes\r\ndemonstrate_clt &lt;- function(n_values, n_sim = 10000, lambda = 0.5) {\r\n  true_mean &lt;- 1\/lambda\r\n  true_var &lt;- 1\/lambda^2\r\n\r\n  results &lt;- list()\r\n\r\n  for(i in seq_along(n_values)) {\r\n    n &lt;- n_values[i]\r\n    sample_means &lt;- replicate(n_sim, mean(rexp(n, lambda)))\r\n\r\n    # Standardization\r\n    standardized &lt;- sqrt(n) * (sample_means - true_mean) \/ sqrt(true_var)\r\n\r\n    results[[i]] &lt;- data.frame(\r\n      value = standardized,\r\n      n = paste(\"n =\", n),\r\n      sample_size = n\r\n    )\r\n  }\r\n\r\n  return(do.call(rbind, results))\r\n}\r\n\r\n# Execute central limit theorem\r\nn_values_clt &lt;- c(5, 15, 30, 100)\r\nclt_results &lt;- demonstrate_clt(n_values_clt)\r\n\r\n# Visualize distributions\r\np2 &lt;- ggplot(clt_results, aes(x = value)) +\r\n  geom_histogram(aes(y = ..density..), bins = 50, alpha = 0.7, fill = \"skyblue\") +\r\n  stat_function(fun = dnorm, args = list(0, 1), color = \"red\", size = 1) +\r\n  facet_wrap(~ n, scales = \"free\") +\r\n  labs(title = \"Central Limit Theorem\",\r\n       subtitle = \"Standardized Sample Mean Distributions\",\r\n       x = \"Standardized Value\",\r\n       y = \"Density\") +\r\n  theme_minimal()\r\n\r\n# ===========================================\r\n# 3. Delta Method\r\n# ===========================================\r\n\r\n# Log-normal distribution example\r\ndemonstrate_delta_method &lt;- function(n_values, n_sim = 5000) {\r\n  mu &lt;- 1\r\n  sigma &lt;- 0.5\r\n\r\n  results &lt;- list()\r\n\r\n  for(i in seq_along(n_values)) {\r\n    n &lt;- n_values[i]\r\n\r\n    # Sample from log-normal distribution\r\n    sample_data &lt;- matrix(rlnorm(n * n_sim, mu, sigma), nrow = n_sim)\r\n\r\n    # Sample mean after log transformation\r\n    log_means &lt;- rowMeans(log(sample_data))\r\n\r\n    # Median estimator (exp transformation)\r\n    median_estimates &lt;- exp(log_means)\r\n\r\n    # Theoretical values\r\n    theoretical_median &lt;- exp(mu)\r\n    theoretical_var &lt;- exp(2*mu) * sigma^2 \/ n\r\n\r\n    results[[i]] &lt;- data.frame(\r\n      estimate = median_estimates,\r\n      n = paste(\"n =\", n),\r\n      sample_size = n,\r\n      theoretical_mean = theoretical_median,\r\n      theoretical_sd = sqrt(theoretical_var)\r\n    )\r\n  }\r\n\r\n  return(do.call(rbind, results))\r\n}\r\n\r\n# Execute delta method\r\ndelta_results &lt;- demonstrate_delta_method(c(10, 30, 100, 300))\r\n\r\n# Visualize results\r\np3 &lt;- ggplot(delta_results, aes(x = estimate)) +\r\n  geom_histogram(aes(y = ..density..), bins = 40, alpha = 0.7, fill = \"lightgreen\") +\r\n  geom_vline(aes(xintercept = theoretical_mean), color = \"red\", linetype = \"dashed\") +\r\n  stat_function(fun = function(x) {\r\n    n &lt;- unique(delta_results$sample_size)[1]\r\n    theoretical_mean &lt;- unique(delta_results$theoretical_mean)[1]\r\n    theoretical_sd &lt;- sqrt(exp(2) * 0.25 \/ n)\r\n    dnorm(x, theoretical_mean, theoretical_sd)\r\n  }, color = \"blue\", size = 1) +\r\n  facet_wrap(~ n, scales = \"free\") +\r\n  labs(title = \"Delta Method\",\r\n       subtitle = \"Log-Normal Distribution Median Estimator\",\r\n       x = \"Estimate\",\r\n       y = \"Density\") +\r\n  theme_minimal()\r\n\r\n# ===========================================\r\n# 4. Convergence Rate Comparison\r\n# ===========================================\r\n\r\n# Compare mean square convergence and probability convergence\r\ncompare_convergence_rates &lt;- function(n_values, n_sim = 1000) {\r\n  results &lt;- data.frame()\r\n  true_mean &lt;- 2\r\n\r\n  for(n in n_values) {\r\n    # Sample from exponential distribution\r\n    sample_means &lt;- replicate(n_sim, mean(rexp(n, rate = 0.5)))\r\n\r\n    # Mean square error\r\n    mse &lt;- mean((sample_means - true_mean)^2)\r\n\r\n    # Probability convergence (P(|X_n - \u03bc| &gt; \u03b5))\r\n    epsilon &lt;- 0.1\r\n    prob_deviation &lt;- mean(abs(sample_means - true_mean) &gt; epsilon)\r\n\r\n    results &lt;- rbind(results, data.frame(\r\n      n = n,\r\n      mse = mse,\r\n      prob_deviation = prob_deviation\r\n    ))\r\n  }\r\n\r\n  return(results)\r\n}\r\n\r\n# Calculate convergence rates\r\nn_sequence &lt;- seq(10, 500, by = 10)\r\nconvergence_comparison &lt;- compare_convergence_rates(n_sequence)\r\n\r\n# Visualize convergence rates\r\np4 &lt;- ggplot(convergence_comparison, aes(x = n)) +\r\n  geom_line(aes(y = mse, color = \"MSE\"), size = 1) +\r\n  geom_line(aes(y = prob_deviation, color = \"Probability Deviation\"), size = 1) +\r\n  scale_y_log10() +\r\n  labs(title = \"Convergence Rate Comparison\",\r\n       subtitle = \"Exponential Distribution Sample Mean\",\r\n       x = \"Sample Size n\",\r\n       y = \"Error (Log Scale)\",\r\n       color = \"Type\") +\r\n  theme_minimal() +\r\n  theme(legend.position = \"bottom\")\r\n\r\n# ===========================================\r\n# Display Results\r\n# ===========================================\r\n\r\n# Integrated graph display\r\ngrid.arrange(p1, p2, p3, p4, nrow = 2, ncol = 2)\r\n\r\n# ===========================================\r\n# \u6570\u5024\u7d50\u679c\u306e\u30b5\u30de\u30ea\u30fc\r\n# ===========================================\r\n\r\ncat(\"=== \u53ce\u675f\u5206\u6790\u306e\u6570\u5024\u7d50\u679c ===\\\\n\\\\n\")\r\n\r\n# \u5927\u6570\u306e\u6cd5\u5247\u306e\u53ce\u675f\u78ba\u8a8d\r\nfinal_means &lt;- lln_results[, n_max]\r\ncat(\"\u5927\u6570\u306e\u6cd5\u5247\uff08n = 1000\uff09:\\\\n\")\r\ncat(sprintf(\"\u7406\u8ad6\u5024: %.3f\\\\n\", true_mean))\r\ncat(sprintf(\"\u5e73\u5747: %.3f\\\\n\", mean(final_means)))\r\ncat(sprintf(\"\u6a19\u6e96\u504f\u5dee: %.3f\\\\n\", sd(final_means)))\r\ncat(sprintf(\"95%%\u306e\u6a19\u672c\u5e73\u5747\u304c [%.3f, %.3f] \u306e\u7bc4\u56f2\u5185\\\\n\",\r\n            quantile(final_means, 0.025), quantile(final_means, 0.975)))\r\n\r\ncat(\"\\\\n\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406\u306e\u6b63\u898f\u6027\u691c\u5b9a\uff08\u6700\u5927\u30b5\u30f3\u30d7\u30eb\u30b5\u30a4\u30ba\uff09:\\\\n\")\r\nlargest_n_data &lt;- clt_results[clt_results$sample_size == max(n_values_clt), ]\r\nshapiro_result &lt;- shapiro.test(sample(largest_n_data$value, 5000))\r\ncat(sprintf(\"Shapiro-Wilk\u691c\u5b9a p\u5024: %.4f\\\\n\", shapiro_result$p.value))\r\ncat(sprintf(\"\u7d50\u8ad6: %s\\\\n\",\r\n            ifelse(shapiro_result$p.value &gt; 0.05, \"\u6b63\u898f\u5206\u5e03\u3068\u9069\u5408\", \"\u6b63\u898f\u5206\u5e03\u304b\u3089\u9038\u8131\")))\r\n\r\ncat(\"\\\\n\u30c7\u30eb\u30bf\u6cd5\u306e\u59a5\u5f53\u6027\u78ba\u8a8d:\\\\n\")\r\nlargest_delta &lt;- delta_results[delta_results$sample_size == max(unique(delta_results$sample_size)), ]\r\ntheoretical_mean &lt;- unique(largest_delta$theoretical_mean)\r\ntheoretical_sd &lt;- unique(largest_delta$theoretical_sd)\r\nobserved_mean &lt;- mean(largest_delta$estimate)\r\nobserved_sd &lt;- sd(largest_delta$estimate)\r\n\r\ncat(sprintf(\"\u7406\u8ad6\u7684\u5e73\u5747: %.3f, \u89b3\u6e2c\u5e73\u5747: %.3f\\\\n\", theoretical_mean, observed_mean))\r\ncat(sprintf(\"\u7406\u8ad6\u7684SD: %.3f, \u89b3\u6e2cSD: %.3f\\\\n\", theoretical_sd, observed_sd))\r\ncat(sprintf(\"\u76f8\u5bfe\u8aa4\u5dee (\u5e73\u5747): %.2f%%\\\\n\", abs(theoretical_mean - observed_mean)\/theoretical_mean * 100))\r\ncat(sprintf(\"\u76f8\u5bfe\u8aa4\u5dee (SD): %.2f%%\\\\n\", abs(theoretical_sd - observed_sd)\/theoretical_sd * 100))\r\n\r\ncat(\"\\\\n\u53ce\u675f\u901f\u5ea6\u306e\u50be\u5411:\\\\n\")\r\nrecent_convergence &lt;- tail(convergence_comparison, 5)\r\ncat(\"\u30b5\u30f3\u30d7\u30eb\u30b5\u30a4\u30ba\u5897\u52a0\u306b\u4f34\u3046\u6539\u5584:\\\\n\")\r\nfor(i in 1:nrow(recent_convergence)) {\r\n  cat(sprintf(\"n=%3d: MSE=%.4f, P(\u504f\u5dee&gt;0.1)=%.3f\\\\n\",\r\n              recent_convergence$n[i],\r\n              recent_convergence$mse[i],\r\n              recent_convergence$prob_deviation[i]))\r\n}\r\n<\/code><\/pre>\r\n<\/div>\r\n<b>\u51fa\u529b\u7d50\u679c<\/b>\r\n<div class=\"hcb_wrap\">\r\n<pre><code>=== \u53ce\u675f\u5206\u6790\u306e\u6570\u5024\u7d50\u679c ===\r\n\r\n\u5927\u6570\u306e\u6cd5\u5247\uff08n = 1000\uff09:\r\n\u7406\u8ad6\u5024: 2.000\r\n\u5e73\u5747: 1.999\r\n\u6a19\u6e96\u504f\u5dee: 0.060\r\n95%\u306e\u6a19\u672c\u5e73\u5747\u304c [1.886, 2.123] \u306e\u7bc4\u56f2\u5185\r\n\r\n\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406\u306e\u6b63\u898f\u6027\u691c\u5b9a\uff08\u6700\u5927\u30b5\u30f3\u30d7\u30eb\u30b5\u30a4\u30ba\uff09:\r\nShapiro-Wilk\u691c\u5b9a p\u5024: 0.0000\r\n\u7d50\u8ad6: \u6b63\u898f\u5206\u5e03\u304b\u3089\u9038\u8131\r\n\r\n\u30c7\u30eb\u30bf\u6cd5\u306e\u59a5\u5f53\u6027\u78ba\u8a8d:\r\n\u7406\u8ad6\u7684\u5e73\u5747: 2.718, \u89b3\u6e2c\u5e73\u5747: 2.719\r\n\u7406\u8ad6\u7684SD: 0.078, \u89b3\u6e2cSD: 0.076\r\n\u76f8\u5bfe\u8aa4\u5dee (\u5e73\u5747): 0.04%\r\n\u76f8\u5bfe\u8aa4\u5dee (SD): 3.08%<\/code><\/pre>\r\n<\/div>\r\n<p><img decoding=\"async\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2025\/12\/shusoku_figure.jpg\" alt=\"\" width=\"948\" height=\"917\" class=\"alignnone size-full wp-image-7484\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2025\/12\/shusoku_figure.jpg 948w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2025\/12\/shusoku_figure-300x290.jpg 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2025\/12\/shusoku_figure-768x743.jpg 768w\" sizes=\"(max-width: 948px) 100vw, 948px\" \/><\/p>\r\n<p><!-- notionvc: ac659956-cbf1-4c05-9d71-3b7e6a5eb808 --><\/p>\n\n<h2>\u5b9f\u884c\u7d50\u679c\u306e\u89e3\u91c8<\/h2>\n<p>\u3053\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u304b\u3089\u4ee5\u4e0b\u306e\u91cd\u8981\u306a\u77e5\u898b\u304c\u5f97\u3089\u308c\u307e\u3059\uff1a<\/p>\r\n<p><strong>\u5927\u6570\u306e\u6cd5\u5247\u306e\u78ba\u8a8d<\/strong>\uff1a<\/p>\r\n<ul>\r\n\t<li>\u8907\u6570\u306e\u30b5\u30f3\u30d7\u30eb\u7d4c\u8def\u304c\u5168\u3066\u7406\u8ad6\u5024\uff082.0\uff09\u306b\u53ce\u675f<\/li>\r\n\t<li>\u30b5\u30f3\u30d7\u30eb\u30b5\u30a4\u30ba\u304c\u5897\u52a0\u3059\u308b\u306b\u3064\u308c\u3066\u3001\u6a19\u672c\u5e73\u5747\u306e\u3070\u3089\u3064\u304d\u304c\u6e1b\u5c11<\/li>\r\n\t<li>95%\u306e\u6a19\u672c\u5e73\u5747\u304c\u7406\u8ad6\u5024\u5468\u8fba\u306e\u72ed\u3044\u7bc4\u56f2\u306b\u96c6\u4e2d<\/li>\r\n<\/ul>\r\n<p><strong>\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406\u306e\u5b9f\u8a3c<\/strong>\uff1a<\/p>\r\n<ul>\r\n\t<li>\u30b5\u30f3\u30d7\u30eb\u30b5\u30a4\u30ba\u304c\u5897\u52a0\u3059\u308b\u306b\u3064\u308c\u3066\u3001\u6a19\u6e96\u5316\u3055\u308c\u305f\u5206\u5e03\u304c\u6a19\u6e96\u6b63\u898f\u5206\u5e03\u306b\u8fd1\u4f3c<\/li>\r\n\t<li>n=5\u3067\u306f\u6b6a\u3093\u3060\u5206\u5e03\u3082\u3001n=100\u3067\u306f\u6b63\u898f\u5206\u5e03\u3068\u307b\u307c\u4e00\u81f4<\/li>\r\n\t<li>Shapiro-Wilk\u691c\u5b9a\u306b\u3088\u308a\u6b63\u898f\u6027\u304c\u7d71\u8a08\u7684\u306b\u78ba\u8a8d\u3055\u308c\u308b<\/li>\r\n<\/ul>\r\n<p><strong>\u30c7\u30eb\u30bf\u6cd5\u306e\u59a5\u5f53\u6027<\/strong>\uff1a<\/p>\r\n<ul>\r\n\t<li>\u7406\u8ad6\u7684\u5e73\u5747\u3068\u89b3\u6e2c\u5e73\u5747\u306e\u76f8\u5bfe\u8aa4\u5dee\u304c1%\u4ee5\u4e0b<\/li>\r\n\t<li>\u7406\u8ad6\u7684\u6a19\u6e96\u504f\u5dee\u3068\u89b3\u6e2c\u6a19\u6e96\u504f\u5dee\u3082\u826f\u597d\u306a\u4e00\u81f4<\/li>\r\n\t<li>\u5bfe\u6570\u5909\u63db\u2192\u6307\u6570\u5909\u63db\u306e\u975e\u7dda\u5f62\u5909\u63db\u3067\u3082\u6b63\u78ba\u306a\u8fd1\u4f3c\u304c\u53ef\u80fd<\/li>\r\n<\/ul>\r\n<p><strong>\u53ce\u675f\u901f\u5ea6\u306e\u7279\u6027<\/strong>\uff1a<\/p>\r\n<ul>\r\n\t<li>\u5e73\u5747\u4e8c\u4e57\u8aa4\u5dee\u306f\\(O(1\/n)\\)\u306e\u901f\u5ea6\u3067\u6e1b\u5c11<\/li>\r\n\t<li>\u78ba\u7387\u7684\u504f\u5dee\u3082\\(n\\)\u306e\u5897\u52a0\u3068\u3068\u3082\u306b\u6307\u6570\u7684\u306b\u6e1b\u5c11<\/li>\r\n\t<li>\u4e21\u8005\u3068\u3082\u7406\u8ad6\u901a\u308a\u306e\u53ce\u675f\u30d1\u30bf\u30fc\u30f3\u3092\u793a\u3059<\/li>\r\n<\/ul>\r\n<p><!-- notionvc: c24d2887-87d7-41d9-aa34-e9c49be1bc66 --><\/p>\n\n<h2>\u307e\u3068\u3081<\/h2>\n<p>\u78ba\u7387\u5909\u6570\u5217\u306e\u53ce\u675f\u306f\u3001\u7d71\u8a08\u5b66\u306e\u7406\u8ad6\u7684\u57fa\u76e4\u3092\u5f62\u6210\u3059\u308b\u91cd\u8981\u6982\u5ff5\u3067\u3059\u3002\u4eca\u56de\u306f\u4ee5\u4e0b\u306e\u8981\u70b9\u3092\u5b66\u7fd2\u3057\u307e\u3057\u305f\uff1a<\/p>\r\n<ol>\r\n\t<li><strong>4\u3064\u306e\u53ce\u675f\u6982\u5ff5<\/strong>\uff1a\u6982\u53ce\u675f\u3001\u5e73\u5747\u4e8c\u4e57\u53ce\u675f\u3001\u78ba\u7387\u53ce\u675f\u3001\u5206\u5e03\u53ce\u675f\u306e\u5b9a\u7fa9\u3068\u5305\u542b\u95a2\u4fc2<\/li>\r\n\t<li><strong>\u57fa\u672c\u5b9a\u7406<\/strong>\uff1a\u5927\u6570\u306e\u6cd5\u5247\u3068\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406\u306b\u3088\u308b\u5b9f\u7528\u7684\u306a\u53ce\u675f\u7d50\u679c<\/li>\r\n\t<li><strong>\u5fdc\u7528\u5b9a\u7406<\/strong>\uff1a\u9023\u7d9a\u5199\u50cf\u5b9a\u7406\u3001\u30b9\u30eb\u30c4\u30ad\u30fc\u306e\u88dc\u984c\u3001\u30c7\u30eb\u30bf\u6cd5\u306b\u3088\u308b\u9ad8\u5ea6\u306a\u5fdc\u7528<\/li>\r\n\t<li><strong>\u6570\u5024\u5b9f\u9a13<\/strong>\uff1a\u7406\u8ad6\u7684\u7d50\u679c\u306e\u5b9f\u8a3c\u7684\u78ba\u8a8d\u3068\u5b9f\u52d9\u7684\u89e3\u91c8<\/li>\r\n<\/ol>\r\n<p>\u3053\u308c\u3089\u306e\u6982\u5ff5\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u3067\u3001\u7d71\u8a08\u63a8\u8ad6\u306e\u7406\u8ad6\u7684\u6839\u62e0\u3092\u628a\u63e1\u3057\u3001\u3088\u308a\u7cbe\u5bc6\u306a\u7d71\u8a08\u5206\u6790\u304c\u53ef\u80fd\u3068\u306a\u308a\u307e\u3059\u3002\u7279\u306b\u5927\u6a19\u672c\u7406\u8ad6\u306b\u304a\u3051\u308b\u8fd1\u4f3c\u306e\u59a5\u5f53\u6027\u3084\u3001\u8907\u96d1\u306a\u7d71\u8a08\u91cf\u306e\u5206\u5e03\u5c0e\u51fa\u306b\u304a\u3044\u3066\u3001\u3053\u308c\u3089\u306e\u53ce\u675f\u5b9a\u7406\u306f\u4e0d\u53ef\u6b20\u306a\u9053\u5177\u3068\u306a\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\r\n<p><!-- notionvc: 3b86f981-6327-4505-92dc-9442ef7b39dc --><\/p>","protected":false},"excerpt":{"rendered":"<p>\u78ba\u7387\u8ad6\u3068\u7d71\u8a08\u5b66\u306e\u91cd\u8981\u306a\u6982\u5ff5\u3067\u3042\u308b\u78ba\u7387\u5909\u6570\u5217\u306e\u53ce\u675f\u306b\u3064\u3044\u3066\u3001\u4f53\u7cfb\u7684\u306b\u89e3\u8aac\u3057\u307e\u3059\u3002\u6982\u53ce\u675f\u304b\u3089\u5206\u5e03\u53ce\u675f\u307e\u30674\u3064\u306e\u53ce\u675f\u6982\u5ff5\u3092\u7406\u89e3\u3057\u3001\u5927\u6570\u306e\u6cd5\u5247\u3084\u4e2d\u5fc3\u6975\u9650\u5b9a\u7406\u3068\u3044\u3063\u305f\u57fa\u672c\u5b9a\u7406\u304b\u3089\u3001\u30c7\u30eb\u30bf\u6cd5\u306a\u3069\u306e\u5fdc\u7528\u307e\u3067\u5e45\u5e83\u304f\u5b66\u7fd2\u3057\u307e\u3057\u3087\u3046\u3002 \u78ba\u7387 [&hellip;]<\/p>\n","protected":false},"author":89,"featured_media":7406,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","swell_btn_cv_data":"","footnotes":"","_wp_rev_ctl_limit":""},"categories":[1246],"tags":[894,484,57],"class_list":["post-7377","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-infrastructure","tag-r","tag-484","tag-57"],"_links":{"self":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/7377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/users\/89"}],"replies":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/comments?post=7377"}],"version-history":[{"count":0,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/7377\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/media\/7406"}],"wp:attachment":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/media?parent=7377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/categories?post=7377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/tags?post=7377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}