WinBUGS में एक विशिष्ट चर के लिए भविष्यवाणी कैसे प्राप्त करें?


10

मैं WinBUGS का नया उपयोगकर्ता हूं और आपकी मदद के लिए एक प्रश्न है। निम्नलिखित कोड चलाने के बाद, मैं के मापदंडों मिल गया beta0के माध्यम से beta4(आँकड़े, घनत्व), लेकिन मैं कैसे का अंतिम मान की भविष्यवाणी प्राप्त करने के लिए पता नहीं है h, जो मैं करने के लिए सेट NAकोड में मॉडल करने के लिए।

क्या कोई मुझे संकेत दे सकता है? किसी भी सलाह की काफी सराहना की जाएगी।


model {
for(i in 1: N) {
CF01[i] ~ dnorm(0, 20)
CF02[i]  ~ dnorm(0, 1)
h[i] ~ dpois (lambda [i])
log(lambda [i]) <- beta0 + beta1*CF03[i] + beta2*CF02[i] + beta3*CF01[i] + beta4*IND[i]
}
beta0 ~ dnorm(0.0, 1.0E-6)
beta1 ~ dnorm(0.0, 1.0E-6)
beta2 ~ dnorm(0.0, 1.0E-6)
beta3 ~ dnorm(0.0, 1.0E-6)
beta4  <- log(p)
p ~ dunif(lower, upper)
}

INITS
list(beta0 = 0, beta1 = 0, beta2 = 0, beta3 = 0, p = 0.9)

DATA(LIST)
list(N = 154, lower = 0.80, upper = 0.95,

h = c(1, 4, 1, 2, 1, 2, 1, 1, 1, 3, 3, 0, 0, 0, 2, 0, 1, 0, 4, 2,
3, 0, 2, 1, 1, 2, 2, 2, 3, 4, 2, 3, 1, 0, 1, 3, 3, 3, 1, 0, 1,
0, 5, 2, 1, 2, 1, 3, 3, 1, 1, 0, 2, 2, 0, 3, 0, 0, 3, 2, 2, 2,
1, 0, 3, 3, 1, 1, 1, 2, 1, 0, 1, 2, 1, 2, 0, 2, 1, 0, 0, 2, 5,
0, 2, 1, 0, 2, 1, 2, 2, 2, 0, 3, 2, 1, 3, 3, 3, 3, 0, 1, 3, 3,
3, 1, 0, 0, 1, 2, 1, 0, 1, 4, 1, 1, 1, 1, 2, 1, 3, 0, 0, 1, 1,
1, 1, 0, 2, 1, 0, 0, 1, 1, 5, 1, 1, 1, 3, 0, 1, 1, 1, 0, 2, 1,
0, 3, 3, 0, 0, 1, 2, 6, NA),

CF03 = c(-1.575, 0.170, -1.040, -0.010, -0.750,
0.665, -0.250, 0.145, -0.345, -1.915, -1.515,
0.215, -1.040, -0.035, 0.805, -0.860, -1.775,
1.725, -1.345, 1.055, -1.935, -0.160, -0.075,
-1.305, 1.175, 0.130, -1.025, -0.630, 0.065,
-0.665, 0.415, -0.660, -1.145, 0.165, 0.955,
-0.920, 0.250, -0.365, 0.750, 0.045, -2.760,
-0.520, -0.095, 0.700, 0.155, -0.580, -0.970,
-0.685, -0.640, -0.900, -0.250, -1.355, -1.330,
0.440, -1.505, -1.715, -0.330, 1.375, -1.135,
-1.285, 0.605, 0.360, 0.705, 1.380, -2.385, -1.875,
-0.390, 0.770, 1.605, -0.430, -1.120, 1.575, 0.440,
-1.320, -0.540, -1.490, -1.815, -2.395, 0.305,
0.735, -0.790, -1.070, -1.085, -0.540, -0.935,
-0.790, 1.400, 0.310, -1.150, -0.725, -0.150,
-0.640, 2.040, -1.180, -0.235, -0.070, -0.500,
-0.750, -1.450, -0.235, -1.635, -0.460, -1.855,
-0.925, 0.075, 2.900, -0.820, -0.170, -0.355,
-0.170, 0.595, 0.655, 0.070, 0.330, 0.395, 1.165,
0.750, -0.275, -0.700, 0.880, -0.970, 1.155, 0.600,
-0.075, -1.120, 1.480, -1.255, 0.255, 0.725,
-1.230, -0.760, -0.380, -0.015, -1.005, -1.605,
0.435, -0.695, -1.995, 0.315, -0.385, -0.175,
-0.470, -1.215, 0.780, -1.860, -0.035, -2.700,
-1.055, 1.210, 0.600, -0.710, 0.425, 0.155, -0.525,
-0.565),

CF02 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, 0.38, 0.06, -0.94,
-0.02, -0.28, -0.78, -0.95, 2.33, 1.43, 1.24, 1.26,
-0.75, -1.5, -2.09, 1.01, -0.05, 2.48, 2.48, 0.46,
0.46, -0.2, -1.11, 0.52, -0.37, 0.58, 0.86, 0.59,
-0.12, -1.33, 1.4, -1.84, -1.4, -0.76, -0.23,
-1.78, -1.43, 1.2, 0.32, 1.87, 0.43, -1.71, -0.54,
-1.25, -1.01, -1.98, 0.52, -1.07, -0.44, -0.24,
-1.31, -2.14, -0.43, 2.47, -0.09, -1.32, -0.3,
-0.99, 1.1, 0.41, 1.01, -0.19, 0.45, -0.07, -1.41,
0.87, 0.68, 1.61, 0.36, -1.06, -0.44, -0.16, 0.72,
-0.69, -0.94, 0.11, 1.25, 0.33, -0.05, 0.87, -0.37,
-0.2, -2.22, 0.26, -0.53, -1.59, 0.04, 0.16, -2.66,
-0.21, -0.92, 0.25, -1.36, -1.62, 0.61, -0.2, 0,
1.14, 0.27, -0.64, 2.29, -0.56, -0.59, 0.44, -0.05,
0.56, 0.71, 0.32, -0.38, 0.01, -1.62, 1.74, 0.27, 0.97,
1.22, -0.21, -0.05, 1.15, 1.49, -0.15, 0.05, -0.87,
-0.3, -0.08, 0.5, 0.84, -1.67, 0.69, 0.47, 0.44,
-1.35, -0.24, -1.5, -1.32, -0.08, 0.76, -0.57,
-0.84, -1.11, 1.94, -0.68),

CF01 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, -0.117, -0.211, -0.333, -0.229, -0.272,
-0.243, -0.148, 0.191, -0.263, -0.239, -0.168,
-0.381, -0.512, -0.338, -0.296, 0.067, 0.104,
-0.254, -0.167, -0.526, -0.096, -0.43, 0.013,
-0.438, -0.297, -0.131, -0.098, -0.046, -0.063,
-0.194, -0.155, -0.645, -0.603, -0.374, -0.214,
-0.165, -0.509, -0.171, -0.442, -0.468, -0.289,
-0.427, -0.519, -0.454, 0.046, -0.275, -0.401,
-0.542, -0.488, -0.52, -0.018, -0.551, -0.444,
-0.254, -0.286, 0.048, -0.03, -0.015, -0.219,
-0.029, 0.059, 0.007, 0.157, 0.141, -0.035, 0.136,
0.526, 0.113, 0.22, -0.022, -0.173, 0.021, -0.027,
0.261, 0.082, -0.266, -0.284, -0.097, 0.097, -0.06,
0.397, 0.315, 0.302, -0.026, 0.268, -0.111, 0.084,
0.14, -0.073, 0.287, 0.061, 0.035, -0.022, -0.091,
-0.22, -0.021, -0.17, -0.184, 0.121, -0.192,
-0.24, -0.283, -0.003, -0.45, -0.138, -0.143,
0.017, -0.245, 0.003, 0.108, 0.015, -0.219, 0.09,
-0.22, -0.004, -0.178, 0.396, 0.204, 0.342, 0.079,
-0.034, -0.122, -0.24, -0.125, 0.382, 0.072, 0.294,
0.577, 0.4, 0.213, 0.359, 0.074, 0.388, 0.253, 0.167),

IND = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0))

क्या आप केवल लंबोदर [एन] का मूल्य नहीं पूछ रहे हैं?
whuber

@ जब तक हाँ, मुझे लगता है कि यह सही है, लेकिन अधिक मौलिक रूप से, आपको उन चीजों की आवश्यकता है जो आप भविष्यवाणी करना चाहते हैं (यानी, बाद के वितरण के लिए) उन चीजों से अलग हैं जो आपने पहले ही देखी हैं। आप या तो शर्त को स्पष्ट रूप से winbugs में या postprocessing में betas के नमूनों का उपयोग करके बना सकते हैं।
एटिरेटू -

@atiretoo जहां तक ​​मैं बता सकता हूं, लैम्बदास वास्तव में वही हैं जो कोई भविष्यवाणी करना चाहता है: यह लॉग लिंक के साथ पॉइसन वितरण के लिए एक सामान्यीकृत रैखिक मॉडल है और लैम्ब्डा पूर्वानुमानित पॉइसन पैरामीटर हैं। उनका अवलोकन नहीं किया गया है। मेरा मानना ​​है कि यहाँ सभी को लैम्ब्डा [एन] पर एक मॉनिटर सेट करना है।
whuber

@whuber, मैं नहीं बल्कि मॉनिटर कहेंगे h[N]बजाय lambda[N]... और आप की भविष्यवाणी की मूल्य का पिछला वितरण मिलता है।
जिज्ञासु

@tomek, लेकिन h[N]अनुमानित मूल्य नहीं है: यह अनुमानित पॉइज़न वितरण के एक सेट से ड्रॉ का एक संग्रह होगा। जैसे कि यह पोइसन मापदंडों में भिन्नता को जोड़ती है और उन पॉइसन वितरण से भिन्नता खुद को बताती है। क्या प्रासंगिक है के वितरण के बाद है lambda[N]
whuber

जवाबों:


6

hमॉनिटर किए जाने वाले मापदंडों की सूची में बस चर जोड़ें । यदि आप R2WBBGS जैसे पैकेज का उपयोग कर रहे हैं, तो फ़ंक्शन में तर्क करने के hलिए पारित सूची में चर जोड़ें । फिर (एनए के साथ एक) में अपने अंतिम मूल्य को देखें - आपको वहां एक बाद का वितरण मिलेगा।parameters.to.savebugsh

यह सामान्य तरीका है बायेसियन इनवेंशन ( इस प्रश्न को भी देखें )। यह अच्छा और सरल है! पैरामीटर मूल्यांकन और भविष्यवाणी का कोई और जुदाई नहीं। सब कुछ एक बार में किया जाता है। मापदंडों के पीछे की गड़बड़ी वास्तविक डेटा द्वारा दी गई है और एनए मूल्यों ("पूर्वानुमान" के रूप में) के लिए प्रचारित है।


टॉमस, आपकी मदद के लिए धन्यवाद। मैं सैंपल मॉनिटर टूल में h के वैरिएबल को मॉनिटर करने की कोशिश करता हूं लेकिन यह काम नहीं करता है। क्या आप कृपया मेरी फिर से मदद कर सकते हैं? WinBUGS में मैंने जो प्रक्रिया की है, वह निम्नलिखित है (मुझे नहीं पता कि R2WBBGS का उपयोग कैसे किया जाता है): 1) सैंपल मॉनिटर टूल 2 में सैंपल का चयन करें) सफेद बॉक्स में h टाइप करें नोड 3) चिह्नित बटन पर क्लिक करें सेट 4 बटन: एच। उन मापदंडों की सूची पर नहीं, जिन्हें मैं मॉनिटर करना चाहता हूं, जबकि अन्य पैरामीटर (बीटा 0, बीटा 1, बीटा 2, बीटा 3, ए पी) सूची में दिखाए गए हैं। क्या आप जानते हैं कि मैं उन मापदंडों की सूची में "एच" कैसे जोड़ सकता हूं जिन्हें मैं मॉनिटर करना चाहता हूं? पुन: धन्यवाद!
बो यू

@BoYu, मैं नहीं जानता कि सीधे WinBUGS में कैसे किया जाए क्योंकि मैं R से WinBUGS चलाता हूँ, R2WINBUGS पैकेज का उपयोग करके। यह बहुत अधिक व्यावहारिक है क्योंकि आप बस आर स्क्रिप्ट को बचा सकते हैं और इसे एक बैच के रूप में चला सकते हैं, साथ ही अपने स्वयं के ग्राफ़ आदि का निर्माण कर सकते हैं। उदाहरण स्क्रिप्ट के लिए यहां देखें
जिज्ञासु

उस ने कहा, यह निश्चित रूप से WinBUGS में ही संभव होगा, लेकिन मुझे नहीं पता कि (और मुझे लगता है कि ज्यादातर लोग इसे आर के नाम से जानते हैं)।
जिज्ञासु

1
सबसे पहले, शुक्रिया, व्हीबर, एट्रीटू और टॉमस! जैसा कि व्हिबर ने पहले ही उल्लेख किया है, हां, यह एक सामान्यीकृत रैखिक मॉडल है, एच के चर को अलग-अलग भविष्यवक्ताओं (CF01, CF02, CF03, और IND) के साथ अलग-अलग दर (लैम्ब्डा) के साथ पॉइसन वितरण द्वारा लगाया गया है। H का अंतिम मूल्य वह है जो मुझे जानना चाहिए और मनाया नहीं गया (NA के रूप में चिह्नित), जबकि h के अन्य सभी मान देखे गए हैं। मुझे लगता है कि व्हिबर सही है, मुझे लैम्बडा को सैंपल मॉनिटर टूल में एक पैरामीटर के रूप में सेट करने और लैम्ब्डा के अंतिम मान के आंकड़ों की जांच करने की आवश्यकता है, और आगे प्राप्त करें कि अंतिम एच की मेरी भविष्यवाणी क्या है। सबको शुक्रीया।
बो यू

1
@ टॉमस, आपका बहुत बहुत धन्यवाद। हाँ आप सही है! WinBUGS, आँकड़े और संभाव्यता घनत्व सहित h [N] की भविष्यवाणी प्रदान करता है। अब मैं समझ गया। सादर,
बो यू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.