推 andrew43: 可否請你把抽樣和建立CI的過程說明清楚一點?我認真看 02/21 11:20
→ andrew43: 了幾次還是不能確定你怎麼做的。 02/21 11:20
→ phil5566: 首先先用模擬的方式產生一組我有興趣研究的樣本,用這組 02/21 13:52
→ phil5566: 樣本求出θ^,因為θ^很複雜,所以沒辦法用手算求出Var,只 02/21 13:54
→ phil5566: 好用bootstrap的方式求stand error代替,假設bootstrap 02/21 13:57
→ phil5566: 1000次,再每bootstrap一次下也可求出θ^,假設叫θb^,共 02/21 14:00
→ phil5566: 有1000個θb^,這1000個θb^的s.d.,即bootstrap下的 02/21 14:02
→ phil5566: stand error,接這建立C.I.,我建立C.I.的方式有四種, 02/21 14:12
→ phil5566: 以下用R的語法說明較快,先說明一些代號,th0=θ^, 02/21 14:17
→ phil5566: th=那1000組的θb^,alpha<-c(0.025,0.975), 02/21 14:20
→ phil5566: 1.normalC.I.:th0 + qnorm(alpha) * sd(th) 02/21 14:23
→ phil5566: 2.basic C.I.:2*th0-quantile(th,rev(alpha),type=1) 02/21 14:25
→ phil5566: 3.percentile C.I.:quantile(th, alpha, type=6) 02/21 14:27
→ phil5566: 剛剛忘了說我bootstrap的方式是採抽後放回的抽樣方式 02/21 14:30
→ phil5566: 第4種 BCa C.I.最麻煩,zalpha <- qnorm(alpha) 02/21 14:48
→ phil5566: z0<- qnorm(sum(th0 < th) / length(th)) 02/21 14:49
→ phil5566: L<- mean(th.jack) - th.jack 02/21 14:49
→ phil5566: a <- sum(L^3)/(6 * sum(L^2)^1.5) 02/21 14:49
→ phil5566: adj.alpha <- pnorm(z0 + (z0+zalpha)/(1-a*(z0+zalpha) 02/21 14:50
→ phil5566: )) 02/21 14:50
→ phil5566: quantile(th, adj.alpha, type=6)--->BCa C.I. 02/21 14:50
→ phil5566: 這裡面的th.jack就是把我產生的那組資料 02/21 14:53
→ phil5566: 假設叫T(n筆data),逐一的剔掉一筆data後,在剩餘的data下 02/21 14:58
→ phil5566: 所算出的估計量,假設叫θj^,所以從第一筆開始剔除到最後 02/21 15:00
→ phil5566: 一筆,會得到n筆的θj^,這n筆θj^就叫作th.jack 02/21 15:02
→ phil5566: 更正:是在剩餘的data下所算出的"估計值",不是"估計量" 02/21 15:04
→ phil5566: --------------------------------------------------- 02/21 15:05
→ phil5566: 以上是產生一組data下所算出的4種C.I.,那我重複產生100 02/21 15:06
→ phil5566: 組data下可算出100組4種C.I.,在分別去計算4種C.I.有沒有 02/21 15:08
→ phil5566: 包含我所設定的參數θ的比率,即為文中的覆蓋率 02/21 15:10
→ phil5566: 我比較疑惑的是我的4種C.I.都是建立在95%信心水準下 02/21 15:13
→ phil5566: 照理說做100組應該要有95組左右的C.I都會包到設定的參數 02/21 15:15
→ phil5566: 怎麼會掉到80多組?所以我想是不是估計量是有偏的,所以 02/21 15:16
→ phil5566: 覆蓋率才會有落差? 02/21 15:17
→ phil5566: 不好意思~我說了一大堆~我也不知道有沒有講到重點,實際 02/21 15:28
→ phil5566: 上我的θ是一個向量,不過就只是每個分量的元素都做和我 02/21 15:30
→ phil5566: 上面所說的一樣的事而已 02/21 15:31
→ phil5566: 附上原始的codehttp://pastebin.com/jgUBxtvj 02/21 15:32
→ andrew43: 我猜你boot.CI有問題:哪要那麼多額外的參數? 02/21 17:03
→ andrew43: 一般來說只要一組n個數字,頂多再要求alpha=0.95就好了 02/21 17:04
→ andrew43: 不管你要哪種CI,就只要這二個參數啊。為什麼要額外輸入 02/21 17:05
→ andrew43: th0 th stat 這些東西? 02/21 17:05
→ phil5566: 推文裡前3種C.I.只要用到th0和th,th就是您說的一組數字 02/21 17:41
→ phil5566: x就是輸入產生的data,而stat是算th.jack會用到的,簡單來 02/21 17:45
→ andrew43: 我想的求boot 95% CI就只要一個參數,就是資料本身,還 02/21 17:46
→ phil5566: x和stat是算BCa C.I.會用到的東西所以我要輸入 02/21 17:46
→ andrew43: 是沒搞懂額外參數的作用是什麼… 02/21 17:46
→ andrew43: oh謝謝。 02/21 17:47
→ phil5566: boot.CI回傳的會是4種C.I.的值,我把4種C.I.的算法都寫 02/21 17:48
→ phil5566: 在一boot.CI這個函數了 02/21 17:49