แบบจำลองคณิตศาสตร์การลดลงของเชื้อมาลาเรียระหว่างการรักษาด้วยยาอาร์ทิซูเนต

ผมออกแบบมันและทำมาหลายเวอร์ชั่นมากยังไม่ได้ตีพิมพ์สักที เฮ้อออออ

จากรูป เปรียบเทียบผลระหว่างโมเดลที่ผมเสนอไปในปี2011 และอีก 10 ปีถัดมาเป็นเวอร์ชั่นโควิด 2021 นี้ เหตุผลที่ต้องปรับปรุงเปลี่ยนแปลงเพราะเริ่มข้อมูลใหม่ๆที่เจอเกี่ยวกับปฏิกิริยาของยาที่มีต่อเชื้อมากขึ้น และเหตุผลที่สำคัญเลยโมเดลที่ผมเสนอไปตอนแรกมันดันไปบอกว่าถ้าแบ่งยากินของครั้งต่อวันหรือทุก 12 ชมมันจะกำจัดเชื้อได้เร็วมากซึ่งมันขัดกับที่เข้าเจอกันจริงๆ โมเดลในเวอร์ชั่นใหม่นี้ก็ได้ปรับปรุงเพื่อที่จะอธิบายผลที่เจอได้มากขึ้น

หาพื้นที่แรเงา

เห็นคนถามคำถามนี้ในเวบpantip

ช่วยหาพื้นที่ส่วนที่แรเงาหน่อยครับ – Pantip

คำถามลักษณะแบบนี้เราสามารถเขียนcode ในภาษาWolfram แก้ปัญหาได้ง่ายๆเลยครับ ด้วยการใช้คำสั่งอย่าง RegionDifference เพื่อดูความแตกต่างกันของพื้นที่ โดยจากโจทย์เราก็เพียงเอา พื้นที่ของสี่เหลี่ยมเป็นตัวตั้งแล้วลบออกด้วยพื้นที่วงกลมสำหรับพื้นที่ A ส่วนพื้นที่ B ก็ทำตรงกันข้ามคือเอาพื้นที่วงกลมตั้งลบออกด้วยพื้นที่สี่เหลี่ยม คำตอบที่ได้จาก Wolfram หาร4 ก็จะได้คำตอบสำหรับ พื้นที่ 1/4ของพื้นที่ที่ต่างกัน code ตัวอย่างด้านล่างนี้ผมใช้ Manipulate ครอบอีกทีเพื่อดูค่าที่รัศมีวงกลมหรือด้านของสี่เหลี่ยมต่างๆ

ลองดึงข้อมูลจากเว็บมาplotด้วยภาษาWolfram

พอเรารู้วิธีการดึงข้อมูลมาแล้วเราก็สามารถนำไปประยุกต์ในเรื่องต่างๆได้เช่น ลองทำเป็น API แบบง่ายๆสำหรับดูแนวโน้วการระบาด ในตัวอย่าง API ที่ผมลองทำนี้ก็เอาค่า new cases ย้อนหลัง 3 วันมาคูณกันแล้วหารากที่ 3 เพื่อดูค่าเฉลี่ยแบบ exponential แล้วก็ลองหาความชันของค่านี้ดูแบบ 7 วันย้อนหลังว่าแนวโน้มการควบคุมดีขึ้นบ้างไหม ซึ่งแน่นอนเราอยากให้ค่านี้เป็นลบ

สุ่มเลขใน Stan

มีคนถามมาว่าจะรันสุ่มเลขจาก distribution แบบไม่ต้องมีพารามิเตอร์หรือใส่ค่าให้พารามิเตอร์ให้กับ distribution ไปเลยทำยังไงใน Stan

ตัวอย่างcodeนะครับ

### test.stan ##
data {
 real a;
 real b;
 real ab;
 real bb;
}
generated quantities{
  real gm;
  real bt;
  gm = gamma_rng(a,1/b);
  bt = beta_rng(ab,bb);
}



### run the stan code in R
library(cmdstanr)
library(bayesplot)       
library(patchwork)

# the parameters of the distributions are given as the data
data_list <- list(a=1.5,b=0.001,ab=15,bb=1)

#compile the model
mod <- cmdstan_model(test.stan)

#do the sampling
fit <- mod$sample(data = data_list,chains = 1,fixed_param = T)

# draw the histograms
mcmc_hist(fit$draws(c("gm","bt")))