คำถามติดแท็ก pymc

PyMC เป็นไลบรารี Python สำหรับการอนุมานแบบเบย์โดยใช้ MCMC เป็น Python ที่เทียบเท่ากับ JAGS และ BUGS

3
ตัวอย่าง: การถดถอย LASSO โดยใช้ glmnet สำหรับผลลัพธ์ไบนารี
ฉันเริ่มตะลุยกับการใช้งานglmnetกับการถดถอยแบบ LASSOซึ่งผลลัพธ์ของความสนใจของฉันนั้นเป็นแบบขั้วคู่ ฉันได้สร้างกรอบข้อมูลจำลองขนาดเล็กด้านล่าง: age <- c(4, 8, 7, 12, 6, 9, 10, 14, 7) gender <- c(1, 0, 1, 1, 1, 0, 1, 0, 0) bmi_p <- c(0.86, 0.45, 0.99, 0.84, 0.85, 0.67, 0.91, 0.29, 0.88) m_edu <- c(0, 1, 1, 2, 2, 3, 2, 0, 1) p_edu <- c(0, …
77 r  self-study  lasso  regression  interpretation  anova  statistical-significance  survey  conditional-probability  independence  naive-bayes  graphical-model  r  time-series  forecasting  arima  r  forecasting  exponential-smoothing  bootstrap  outliers  r  regression  poisson-distribution  zero-inflation  genetic-algorithms  machine-learning  feature-selection  cart  categorical-data  interpretation  descriptive-statistics  variance  multivariate-analysis  covariance-matrix  r  data-visualization  generalized-linear-model  binomial  proportion  pca  matlab  svd  time-series  correlation  spss  arima  chi-squared  curve-fitting  text-mining  zipf  probability  categorical-data  distance  group-differences  bhattacharyya  regression  variance  mean  data-visualization  variance  clustering  r  standard-error  association-measure  somers-d  normal-distribution  integral  numerical-integration  bayesian  clustering  python  pymc  nonparametric-bayes  machine-learning  svm  kernel-trick  hyperparameter  poisson-distribution  mean  continuous-data  univariate  missing-data  dag  python  likelihood  dirichlet-distribution  r  anova  hypothesis-testing  statistical-significance  p-value  rating  data-imputation  censoring  threshold 

1
การอนุมานเครือข่ายแบบเบย์โดยใช้ pymc (ความสับสนของผู้เริ่มต้น)
ฉันกำลังเรียนหลักสูตร PGM โดย Daphne Koller บน Coursera โดยทั่วไปเราจะสร้างแบบจำลองเครือข่ายแบบเบย์เป็นเหตุและผลของกราฟกำกับของตัวแปรซึ่งเป็นส่วนหนึ่งของข้อมูลที่สังเกตได้ แต่ในบทเรียนและตัวอย่างของ PyMC ฉันเห็นว่ามันไม่ได้เป็นแบบอย่างในแบบเดียวกับ PGM หรือ atleast ที่ฉันสับสน ใน PyMC ผู้ปกครองของตัวแปรโลกแห่งความเป็นจริงใด ๆ ที่สังเกตได้มักจะเป็นพารามิเตอร์ของการแจกแจงที่คุณใช้ในการสร้างแบบจำลองตัวแปร ตอนนี้คำถามของฉันเป็นคำถามที่ใช้งานได้จริง สมมติว่าฉันมี 3 ตัวแปรซึ่งข้อมูลถูกสังเกต (A, B, C) (สมมติว่าพวกมันเป็นตัวแปรต่อเนื่องทั้งหมดเพียงเพื่อประโยชน์ของมัน) จากความรู้ด้านโดเมนเราสามารถพูดได้ว่า A และ B เป็นสาเหตุของ C ดังนั้นเราจึงมี BN ที่นี่ - A, B เป็นผู้ปกครองและ C คือเด็ก ๆ ตอนนี้จากสมการ BN P (A, B, C) …

1
การสร้างแบบจำลองแบบเบส์ของเวลารอรถไฟ: การกำหนดโมเดล
นี่เป็นความพยายามครั้งแรกของฉันสำหรับใครบางคนที่มาจากค่ายบ่อย ๆ เพื่อทำการวิเคราะห์ข้อมูลแบบเบย์ ฉันอ่านบทช่วยสอนจำนวนหนึ่งและบทไม่กี่บทจากการวิเคราะห์ข้อมูลแบบเบย์โดย A. Gelman เนื่องจากตัวอย่างการวิเคราะห์ข้อมูลอิสระมากขึ้นหรือน้อยลงอย่างแรกที่ฉันเลือกคือเวลาในการรอรถไฟ ฉันถามตัวเองว่าอะไรคือการกระจายเวลารอคอย ชุดข้อมูลนั้นมีอยู่ในบล็อกและได้รับการวิเคราะห์แตกต่างกันเล็กน้อยและนอก PyMC เป้าหมายของฉันคือการประเมินเวลารอรถไฟที่คาดว่าจะได้รับจากข้อมูล 19 รายการ โมเดลที่ฉันสร้างขึ้นมีดังต่อไปนี้: μ∼N(μ^,σ^)μ∼N(μ^,σ^)\mu \sim N(\hat\mu,\hat\sigma) σ∼|N(0,σ^)|σ∼|N(0,σ^)|\sigma \sim |N(0,\hat\sigma)| λ∼Γ(μ,σ)λ∼Γ(μ,σ)\lambda \sim \Gamma(\mu,\sigma) ρ∼Poisson(λ)ρ∼Poisson(λ)\rho \sim Poisson(\lambda) โดยที่คือค่าเฉลี่ยของข้อมูลและคือส่วนเบี่ยงเบนมาตรฐานของข้อมูลคูณด้วย 1,000μ^μ^\hat\muσ^σ^\hat\sigma ฉันจำลองเวลารอคอยที่คาดว่าจะเป็นโดยใช้การแจกแจงปัวซอง พารามิเตอร์ rate สำหรับการแจกแจงนี้ถูกสร้างแบบจำลองโดยใช้การแจกแจงแกมม่าเนื่องจากเป็นการเชื่อมต่อแบบคอนจูเกตกับการแจกแจงแบบปัวซอง ไฮเปอร์ - ไพรเออร์และถูกสร้างแบบจำลองด้วยการแจกแจงแบบปกติและแบบครึ่งปกติ ค่าเบี่ยงเบนมาตรฐานถูกทำให้กว้างที่สุดเท่าที่จะเป็นได้ρρ\rhoμμ\muσσ\sigmaσσ\sigma ฉันมีคำถามมากมาย แบบจำลองนี้มีความเหมาะสมสำหรับงานหรือไม่ ฉันทำผิดพลาดเริ่มต้นหรือไม่? แบบจำลองสามารถทำให้ง่ายขึ้นได้หรือไม่ (ฉันมักจะทำให้สิ่งต่าง ๆ ง่ายขึ้น)? ฉันจะตรวจสอบได้อย่างไรว่าพารามิเตอร์ด้านหลัง ( ) เหมาะกับข้อมูลจริงหรือไม่?ρρ\rho ฉันจะดึงตัวอย่างจากการกระจาย Poisson ที่ติดตั้งเพื่อดูตัวอย่างได้อย่างไร …
12 bayesian  pymc 

2
เริ่มต้น PyMC: วิธีตัวอย่างจากโมเดลที่ติดตั้งจริง
ฉันกำลังลองใช้แบบจำลองที่ง่ายมาก: ปรับค่าปกติที่ฉันคิดว่าฉันรู้ความแม่นยำและฉันแค่ต้องการหาค่าเฉลี่ย รหัสด้านล่างดูเหมือนว่าจะพอดีกับปกติอย่างถูกต้อง แต่หลังจากการติดตั้งฉันต้องการตัวอย่างจากแบบจำลองคือสร้างข้อมูลใหม่ซึ่งคล้ายกับdataตัวแปรของฉัน ฉันรู้ว่าฉันสามารถใช้trace("mean")เพื่อรับตัวอย่างสำหรับตัวแปรค่าเฉลี่ย แต่ฉันจะหาตัวอย่างใหม่จากโมเดลเองได้อย่างไร เราได้ตรวจสอบเอกสารเช่นhttp://pymc-devs.github.io/pymc/database.html#accessing-sampled-data ฉันได้ดูตัวอย่างบางส่วนเช่นภัยพิบัติจากการขุดและอีกหลายรายการจากสมุดบันทึก Probabilistic Programming และไม่มีใครพูดถึงเรื่องนี้ ฉัน (เริ่มต้น MCMC มากขึ้นหรือน้อยลง) คาดว่าการสุ่มตัวอย่างจากโมเดลที่ติดตั้งไว้นั้นเป็นจุดรวม! ฉันกำลังคิดถึงอะไร from pymc import * data = np.array([-1, 0, 4, 0, 2, -2, 1, 0, 0, 2, 1, -3, -1, 0, 0, 1, 0, 1]) mean = Uniform("mean", -4, 4) precision = 2.0**-2 obs …
12 mcmc  pymc 

1
การเลือกแบบจำลอง Bayesian ใน PyMC3
ฉันใช้ PyMC3 เพื่อเรียกใช้แบบจำลอง Bayesian กับข้อมูลของฉัน ฉันใหม่สำหรับการสร้างแบบจำลอง Bayesian แต่จากการโพสต์บล็อกบางส่วน Wikipedia และQAจากเว็บไซต์นี้ดูเหมือนว่าจะเป็นแนวทางที่ถูกต้องในการใช้ตัวประกอบ Bayes และเกณฑ์ BIC เพื่อเลือกรูปแบบที่ดีที่สุดในการแสดงข้อมูลของฉัน ข้อมูลของฉัน) ในการคำนวณปัจจัย Bayes ฉันต้องการโอกาสที่สัมพันธ์กันสำหรับโมเดลที่ฉันต้องการเปรียบเทียบ อาจจะสับสนเล็กน้อยสำหรับฉัน แต่ฉันคิดว่ามีสองวิธีที่จะได้รับโอกาส (แก้ไขฉันหากฉันผิด): วิธีพีชคณิตเมื่อแบบจำลองง่าย: ดูตัวอย่างหน้าวิกิพีเดียของ Bayes วิธีตัวเลข: นี่คือสิ่งที่ PyMC3 กับอัลกอริทึม MCMC ฉันจะเข้าถึงโอกาสและเปรียบเทียบแบบจำลองของฉันใน PyMC3 ได้อย่างไร ฉันพบmodel.logpวิธีซึ่งตามเอกสารคือ "ฟังก์ชั่นความหนาแน่นของความน่าจะเป็นบันทึก" ฉันสามารถใช้สิ่งนั้นเพื่อสร้างโอกาสได้หรือไม่? คำถามโบนัส: เมื่อมีการเปรียบเทียบทั้งสองรุ่นอัตราส่วนระหว่างความน่าจะเป็นทั้งสองจะถูกคำนวณ จะเกิดอะไรขึ้นถ้าคุณต้องการเปรียบเทียบหลายรุ่น ตัวอย่าง PyMC3 ที่เป็นรูปธรรมจะมีประโยชน์มาก!

2
เหตุใดจึงมีคำแนะนำไม่ให้ใช้ Jeffreys หรือนักบวชที่ใช้เอนโทรปีสำหรับแซมเพลอร์ของ MCMC
บนหน้า wikiผู้พัฒนาของรัฐสแตน: หลักการบางอย่างที่เราไม่ชอบ: ค่าคงที่, เจฟฟรีย์, ค่าเอนโทรปี แต่ฉันเห็นคำแนะนำการกระจายตามปกติมากมาย จนถึงตอนนี้ฉันใช้วิธีเบย์ซึ่งไม่ได้ใช้การสุ่มตัวอย่างและยินดีที่ได้เข้าใจว่าทำไมเป็นตัวเลือกที่ดีสำหรับโอกาสทวินามθ ∼ Beta ( α = 12, β= 12)θ∼Beta(α=12,β=12)\theta \sim \text{Beta}\left(\alpha=\frac{1}{2},\beta=\frac{1}{2}\right)
11 bayesian  mcmc  prior  pymc  stan 

3
การอนุมานแบบผสม 2-Gaussian ด้วย MCMC และ PyMC
ปัญหา ฉันต้องการให้พอดีกับพารามิเตอร์แบบจำลองของประชากร 2-Gaussian แบบเรียบง่าย ให้ทุก hype รอบวิธี Bayesian ฉันต้องการเข้าใจว่าสำหรับปัญหานี้อนุมาน Bayesian เป็นเครื่องมือที่ดีกว่าวิธีการกระชับแบบดั้งเดิม จนถึงตอนนี้ MCMC ทำงานได้แย่มากในตัวอย่างของเล่นนี้ แต่บางทีฉันอาจมองข้ามบางสิ่งบางอย่าง ดังนั้นเรามาดูรหัส เครื่องมือ ฉันจะใช้ python (2.7) + scipy stack, lmfit 0.8 และ PyMC 2.3 สมุดบันทึกเพื่อทำซ้ำการวิเคราะห์สามารถพบได้ที่นี่ สร้างข้อมูล ก่อนอื่นให้สร้างข้อมูล: from scipy.stats import distributions # Sample parameters nsamples = 1000 mu1_true = 0.3 mu2_true = 0.55 sig1_true = 0.08 …

2
PyMC สำหรับการจัดกลุ่มแบบไม่ใช้พารามิเตอร์: กระบวนการ Dirichlet เพื่อประเมินพารามิเตอร์ของส่วนผสมแบบเกาส์ไม่สามารถทำคลัสเตอร์ได้
การตั้งค่าปัญหา หนึ่งในปัญหาของเล่นครั้งแรกที่ฉันต้องการใช้ PyMC กับการจัดกลุ่มแบบไม่ใช้พารามิเตอร์: ให้ข้อมูลบางส่วนสร้างแบบจำลองเป็นแบบเกาส์และเรียนรู้จำนวนของกลุ่มและค่าเฉลี่ยและความแปรปรวนร่วมของแต่ละกลุ่ม สิ่งที่ฉันรู้เกี่ยวกับวิธีนี้ส่วนใหญ่มาจากการบรรยายทางวิดีโอโดย Michael Jordan และ Yee Whye Teh ประมาณปี 2007 (ก่อนที่จะกลายเป็นความโกรธแค้น) และสองสามวันสุดท้ายของการอ่านบทเรียนของดร. Fonnesbeck และ E. Chen [fn1], [ Fn2] แต่ปัญหาคือการศึกษาที่ดีและมีการใช้งานที่น่าเชื่อถือ [fn3] ในปัญหาของเล่นนี้ฉันสร้างสิบดึงจากหนึ่งมิติเกาส์และสี่สิบวาดจาก . อย่างที่คุณเห็นด้านล่างฉันไม่ได้สลับการสุ่มเพื่อให้ง่ายต่อการบอกว่าตัวอย่างใดมาจากส่วนประกอบผสมN ( μ = 4 , σ = 2 )ยังไม่มีข้อความ( μ = 0 , σ= 1 )N(μ=0,σ=1)\mathcal{N}(\mu=0, \sigma=1)ยังไม่มีข้อความ( μ = 4 , σ= …

2
รูปแบบที่เหมาะสมสำหรับการแจกแจงแบบปกติสองครั้งใน PyMC
เนื่องจากฉันเป็นวิศวกรซอฟต์แวร์พยายามที่จะเรียนรู้สถิติเพิ่มเติมคุณจะต้องยกโทษให้ฉันก่อนที่ฉันจะเริ่มนี่เป็นดินแดนใหม่ที่ร้ายแรง ... ฉันได้เรียนรู้PyMCและทำงานผ่านตัวอย่างง่ายๆ (จริง ๆ ) จริงๆ ปัญหาหนึ่งที่ฉันไม่สามารถทำงานได้ (และไม่สามารถหาตัวอย่างที่เกี่ยวข้องได้) คือการปรับโมเดลให้สอดคล้องกับข้อมูลที่สร้างจากการแจกแจงปกติสองแบบ บอกว่าฉันมี 1,000 ค่า 500 สร้างขึ้นจากNormal(mean=100, stddev=20)และอีก 500 Normal(mean=200, stddev=20)สร้างขึ้นจาก ถ้าฉันต้องการให้พอดีกับแบบจำลองพวกเขาเช่นกำหนดสองวิธีและส่วนเบี่ยงเบนมาตรฐานเดียวโดยใช้ PyMC ฉันรู้ว่ามันเป็นสิ่งที่ตามแนว ... mean1 = Uniform('mean1', lower=0.0, upper=200.0) mean2 = Uniform('mean2', lower=0.0, upper=200.0) precision = Gamma('precision', alpha=0.1, beta=0.1) data = read_data_from_file_or_whatever() @deterministic(plot=False) def mean(m1=mean1, m2=mean2): # but what goes here? …
10 modeling  python  pymc 

2
การตรวจหา Switchpoint ด้วยการโปรแกรมที่น่าจะเป็น (pymc)
ฉันกำลังอ่านการเขียนโปรแกรมน่าจะเป็นและวิธีเบส์สำหรับแฮกเกอร์ "หนังสือ" ฉันได้อ่านบทไม่กี่บทและฉันก็คิดในบทแรกที่ตัวอย่างแรกของ pymc ประกอบด้วยการตรวจสอบ witchpoint ในข้อความ ในตัวอย่างว่าตัวแปรสุ่มเพื่อระบุว่าเมื่อ switchpoint ที่เกิดขึ้นจะถูกระบุด้วย\หลังจากขั้นตอน MCMC การแจกแจงหลังของ จะได้รับ:ττ\tauττ\tau ประการแรกสิ่งที่สามารถเรียนรู้ได้จากกราฟนี้คือมีความเป็นไปได้เกือบ 50% ที่จุดเปลี่ยนเกิดขึ้นในวันที่ 45 แม้ว่าจะเกิดอะไรขึ้นถ้าไม่มีจุดเปลี่ยน แทนที่จะสมมติว่ามีสวิตช์พอยต์แล้วลองค้นหาฉันต้องการตรวจสอบว่ามีสวิตช์pointหรือไม่ ผู้เขียนตอบคำถาม "เกิด switchpoint เกิดขึ้น" โดย "ไม่มีการเปลี่ยนแปลงเกิดขึ้นหรือมีการเปลี่ยนแปลงอย่างค่อยเป็นค่อยไปเมื่อเวลาผ่านไปการกระจายหลัง จะกระจายออกไปมากขึ้น" แต่คุณจะตอบคำถามนี้อย่างไรเช่นมีโอกาส 90% ที่จุดเปลี่ยนจะเกิดขึ้นและมีโอกาส 50% ที่จะเกิดขึ้นในวันที่ 45ττ\tau จำเป็นต้องเปลี่ยนโมเดลหรือไม่ หรือสามารถตอบด้วยรุ่นปัจจุบันได้หรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.