[過去ログ] 高校数学の質問スレ(医者・東大卒専用) Part438 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
857: 05/31(土)05:25 ID:jzcOJBMt(1) AAS
 #' @title ベイズ事後確率計算関数 
 #' @description 帰無仮説と対立仮説の事後確率を計算 
 #' @param s 観測成功数(1の目が出た回数) 
 #' @param n 総試行回数 
 #' @param p0 帰無仮説の確率(例: 1/6) 
 #' @param prior 帰無仮説の事前確率(0~1) 
 #' @param alpha 対立仮説のベータ分布αパラメータ 
 #' @param beta 対立仮説のベータ分布βパラメータ 
 #' @return list(bf01=ベイズファクター, post=事後確率, method=使用手法) 
 calculate_posterior <- function(s, n, p0, prior, alpha, beta) { 
    
   # 入力検証 
   stopifnot( 
     s >= 0, n > 0,  
     p0 > 0 && p0 < 1, 
     prior >= 0 && prior <= 1, 
     alpha > 0, beta > 0 
   ) 
    
   # 帰無仮説の尤度計算 
   m0 <- dbinom(s, n, p0) 
    
   # 対立仮説の周辺尤度計算(extraDistr有無で自動切替) 
   if (requireNamespace("extraDistr", quietly = TRUE)) { 
     m1 <- extraDistr::dbbinom(s, n, alpha, beta) 
     method <- "extraDistr::dbbinom()" 
   } else { 
     integrand <- function(p) dbinom(s, n, p) * dbeta(p, alpha, beta) 
     m1 <- integrate(integrand, 0, 1)$value 
     method <- "数値積分" 
   } 
    
   # ベイズファクターと事後確率計算(指定された式を使用) 
   bf01 <- m0 / m1 
   post <- m0 * prior / (m0 * prior + (1 - prior) * m1) 
    
   # 結果をリストで返す 
   list( 
     bf01 = bf01, 
     post = post, 
     method = method, 
     inputs = list(s = s, n = n, p0 = p0, prior = prior, alpha = alpha, beta = beta), 
     likelihoods = list(m0 = m0, m1 = m1) 
   ) 
 } 
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 1.744s*