11 ตุลาคม 2562

แชร์ประสบการณ์การสอน EBM ตามแบบ Oxford

ช่วงปลายเดือนกันยายน ผมได้มีโอกาสจากมหาวิทยาลัย ได้ส่งไปเรียนคอร์ส Teaching EBM (วิธีการสอน EBM) จากมหาวิทยาลัย Oxford ประเทศอังกฤษมา ซึ่งเป็นแหล่งที่ดังด้าน EBM มากแหล่งหนึ่ง (​อีกที่ที่มีชื่อเสียงคือ McMaster University แคนาดา) เลยอยากจะมาแชร์ประสบการณ์ครับ

Center for Evidence Based Medicine ที่ Oxford มีคอร์สที่เปิดให้คนนอกลงทะเบียนเยอะพอสมควร และคอร์สเหล่านี้เองก็เป็นส่วนหนึ่งของการเรียน Master ที่นั่น หมายความว่าคนนอกก็จะเรียนปะปนไปกับนักเรียน Master โดยนักเรียน Master มีสิ่งที่ต้องทำเพิ่มเติม คือมี Assignment ที่ต้องทำหลังจากที่จบคอร์สแล้วด้วยครับ (แต่คนนอกไม่ต้องทำ) ระยะเวลาเรียนของคอร์สนี้เป็นเพียงสัปดาห์เดียว แต่ก็เป็นสัปดาห์ที่เข้มข้นมากครับ เรียนตั้งแต่เก้าโมงถึงห้าโมงเย็นทุกวัน (พักกินข้าวแค่ชั่วโมงเดียวตอนเที่ยง) รูปแบบการเรียนของที่เขาจัดจะเป็น Lecture ในห้องใหญ่ 1 ชั่วโมง หลังจากนั้นจะแยกเป็นกลุ่มย่อย กลุ่มละประมาณ 10-15 คน ต่อคนครบครึ่งวัน แล้วช่วงบ่ายก็มี Lecture สลับกับกลุ่มย่อยเหมือนกันจนเย็นครับ



23 มกราคม 2562

มือใหม่หัดเขียน Proposal: จะเก็บข้อมูลในงานวิจัยอะไรดีบ้าง?

วันนี้ได้มีโอกาสบรรยายเรื่องสถิติให้นักศึกษาปี 1 ฟังครับ

แน่นอนว่าน้องๆ เหล่านี้เพิ่งเข้ามหาวิทยาลัย ความรู้ที่มีติดตัวมานั้นก็เป็นความรู้ระดับชั้นมัธยมศึกษา (ยกเว้นบางคนที่ขวนขวายมากกว่าคนอื่นเลยเคยอ่านหนังสือระดับมหาวิทยาลัยมาก่อน) น้องๆ หลายคน สนใจเกี่ยวกับการทำโปรเจควิจัยทางการแพทย์ด้วย

ซึ่งผมว่านักศึกษารุ่นใหม่เป็นกำลังสำคัญของการวิจัยในอนาคต จึงเป็นสิ่งดี ที่จะได้มีโอกาสในการรับรู้ถึงหลักการของการทำงานวิจัยคร่าวๆ ไม่ต้องทำงานใหญ่มากก็ได้ แต่จะต้องมีไอเดียที่ดีในการออกแบบงานวิจัย ซึ่งถือเป็นโอกาสที่ดีที่คณะที่ผมทำงานอยู่ได้มีโอกาสให้น้องได้ลองมาเรียนรู้กัน

หลังจากการบรรยายเสร็จ มีน้องคนหนึ่งถามว่า เอ แล้วเราจะรู้ได้อย่างไรว่าเราจะเริ่มเก็บข้อมูลอย่างไรดี

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




03 พฤศจิกายน 2560

วิธีการนำเข้าข้อมูลจาก Excel ลง R Commander

หายไปสักพักเลยนะครับ พอดีผมเพิ่งจะว่างเขียนตอนต่อของครั้งที่แล้วที่เราลองลงโปรแกรม R Commander กัน วันนี้จะมาขอเสนอวิธีการนำเข้าข้อมูลจาก Excel เข้าตัวโปรแกรม R Commander ครับ ซึ่งไม่ยากเลยครับ

ตัวโปรแกรม R Commander จริงๆ แล้วสนับสนุนการนำเข้าไฟล์ข้อมูลจากหลายแหล่งครับ ไม่ว่าจะเป็นไฟล์ของ SPSS, Stata, SAS ก็สามารถเอาข้อมูลที่มีอยู่แล้วมาเปิดได้ครับ แต่วันนี้ผมจะขอเสนอวิธีการนำเข้าจาก Excel เนื่องจากคิดว่าน่าจะเป็นแหล่งเก็บข้อมูลโปรเจคเล็กๆ ของใครๆ หลายๆ คนนะครับ ก่อนอื่นเลยก็อยากจะให้ย้อนไปเตรียมข้อมูลใน Excel ให้เหมาะสมกับการนำเข้ามาในโปรแกรมวิเคราะห์ทางสถิติ ซึ่งสามารถหาอ่านได้จากบล็อกตอนเก่านะครับ (http://www.clinicalepi.com/2015/05/blog-post.html)

วิธีการเอาข้อมูลที่อยู่ในไฟล์ .XLSX เข้าโปรแกรม R Commander ไม่ยากเลยครับ สมมติว่าผมมีข้อมูลใน Excel แบบนี้นะครับ



23 มีนาคม 2560

ใช้ R Commander ในการวิเคราะห์ข้อมูล – ง่ายพอๆ กับ SPSS แต่ฟรี

สืบเนื่องมาจากผมได้รับคำปรึกษาในการวิเคราะห์ข้อมูลจากน้องนักศึกษาแพทย์ที่อยู่ต่างจังหวัดที่ต้องการวิเคราะห์ข้อมูลในการวิจัยเล็กๆ แต่น้องเขาไม่มีโปรแกรมอะไรอยู่กับตัวเลย ต้องพึ่งโปรแกรมที่ดาวน์โหลดได้จากอินเทอร์เน็ต ผมเลยต้องมามองหาว่ามีตัวเลือกโปรแกรมฟรีอะไรบ้างที่สามารถใช้งานได้ไม่ยากนักในการวิเคราะห์ข้อมูล จะให้เขาใช้ SPSS ก็เกรงว่าอาจจะยุ่งยากในการหา License ที่ถึงแม้มหาวิทยาลัยจะมีให้แต่ก็ต้องเข้ามาใช้ในระบบ พอดีนึกขึ้นได้ว่าโปรแกรม R เองก็มีคนเขียนโปรแกรมเสริมแบบให้คนวิเคราะห์คลิ๊กๆ อย่างเดียวที่ชื่อ R Commander อยู่ ปรากฎว่าลองให้น้องใช้แล้วได้ผลดีเลยจะมาบอกต่อกันครับ

หลายคนคงจะรู้จักกับ R อยู่แล้ว สำหรับคนที่ไม่รู้จัก โปรแกรมนี้เป็นโปรแกรมฟรีที่ไว้วิเคราะห์ข้อมูล ปัญหาหลักๆ ของการใช้ R คือคนใช้จะต้องมีความสามารถด้านการเขียนโปรแกรมเป็นพอสมควร คำสั่งต่างๆ จะต้องพิมพ์ลงไป แทบไม่มีอะไรให้คลิ๊ก และบางครั้งก็นึกไม่ออกว่าต้องพิมพ์คำสั่งยังไง และคำสั่งมีอะไรบ้าง (เปิดโปรแกรมมาจะเป็นหน้าว่างๆ ให้พิมพ์คำสั่งเลย) สำหรับผู้ใช้มือใหม่แล้วสิ่งนี้ถือว่าเป็นหายนะกันเลยทีเดียวครับ ทำให้โปรแกรม R ที่ถึงแม้จะฟรีแต่ก็สู้โปรแกรมวิเคราะห์ข้อมูลอื่นที่พัฒนาให้คนใช้งานง่ายอย่าง SPSS, STATA ไม่ได้ (เพราะใช้กันไม่เป็น) อย่างไรก็ดีสำหรับโปรเจคใหญ่ๆ ที่มีนักสถิติที่สามารถเขียนโปรแกรมเป็นและใช้งาน R ได้ก็มักจะนิยมการใช้ R กันเพราะมีคำสั่งที่ผู้ใช้เขียนส่งๆ กันไว้เยอะมาก (เพราะฟรี) และนักสถิตระดับอาจารย์ในมหาวิทยาลัยชั้นนำหลายแห่งในต่างประเทศก็นิยมใช้กันครับ

สำหรับตัว R Commander นี้หลักๆ เลยคือเราจะต้องลงโปรแกรม R ก่อน หลังจากนั้นค่อยลงโปรแกรมเสริม (ใน R จะเรียกว่า Package) R Commander ซ้ำลงไปอีกทีครับถึงจะใช้โปรแกรม R Commander ได้ ซึ่งวิธีลงโปรแกรมนี่คลิ๊กอย่างเดียว ไม่ต้องตกใจว่าต้องพิมพ์คำสั่งอะไรเลยนะครับ ผมเคยเขียนเรื่องการลงโปรแกรม R ไว้นานแล้ว แต่เพื่อให้ทันสมัยก็ขออนุญาตเขียนใหม่รวบยอดเลยแล้วกัน


ขั้นตอนในการลงโปรแกรม R

  1. ไปที่เว็บ https://cran.r-project.org/
  2. ที่หน้าเว็บจะมีเลือก Download R มีให้เลือกทั้ง Linux, Mac, Windows
  3. จะขึ้นหน้าจอย่อยให้เลือกว่า จะลง base/contrib/… ให้เลือกลิงค์ที่เขียนว่า base
  4. เลือก Download R (ขณะที่ผมเขียนคือรุ่น 3.3.3 for Windows)
  5. เซฟลงเครื่องแล้วเรียกโปรแกรมติดตั้ง
  6. โปรแกรมติดตั้งใช้ไม่ยากครับ ก็กด Next ตามไปเรื่อยๆ ก็ได้ครับ
  7. หลังจากนั้นจะมีไอคอน R บนหน้าจอวินโดวส์นะครับ มีทั้ง i386 (แบบ 32 บิต) และแบบ x64 (แบบ 64 บิต) ใช้อันไหนก็ได้ครับ ส่วนตัวผมใช้อัน 64 บิต




    ขั้นตอนในการลง R Commander ซึ่งเป็นโปรแกรมเสริมของ R

    1. เปิดโปรแกรม R ขึ้นมาก่อน จะพบหน้าจอแบบรูป ไม่ต้องตกใจนะครับ เราไม่ต้องพิมพ์คำสั่งอะไร
    2. เลือกเมนู Package >> Install packages..
    3. ถ้าเป็นครั้งแรกที่กดเมนูนี้ โปรแกรมจะให้เลือกว่าจะดาวน์โหลดโปรแกรมเสริม (Package) มาจากที่ไหน จริงๆ เลือกที่ไหนก็ได้นะครับ ผมเลือก Cloud (อันแรก)
    4. หลังจากนั้นโปรแกรมจะมีรายการยาวๆ ของ Package ทั้งหมดที่เราสามารถจะลงให้โปรแกรม R ได้ ให้เราเลือกมาที่ Rcmdr ครับ
    5. โปรแกรมจะถามว่าเราต้องการลงใน Personal Library หรือไม่ ให้ตอบ Yes
    6. ถ้าเป็นครั้งแรก โปรแกรมจะให้เราสร้าง Personal Library ให้ตอบ Yes เช่นกันครับ
    7. หลังจากนั้นโปรแกรมจะดาวน์โหลดไฟล์ทั้งหมดลงในเครื่องครับ ขั้นตอนนี้อาจจะเสียเวลาสักพักนะครับ
    8. ถ้าลงเสร็จแล้ว หน้าจอจะขึ้นว่า The downloaded binary package are in …

วิธีการเปิด R Commander
  1. เนื่องจาก R Commander เป็น Package ของ R ดังนั้นทุกครั้งที่เราจะเรียกใช้ ต้องเปิด R ขึ้นมาก่อนนะครับ
  2. หลังจากเปิด R แล้วให้เลือกเมนู Package >> Load package…
  3. โปรแกรมจะแสดง Package ทั้งหมดที่ลงไว้ในเครื่อง ให้เราเลือก Rcmdr
  4. ถ้าเป็นครั้งแรกในการเริ่ม R Commander จะมีคำเตือนขึ้นมาว่าให้เราลงบางแพคเกจเพิ่มเติม ให้กด Yes ครับ
  5. โปรแกรมจะถามว่าให้ลงจากไหน ให้เลือก CRAN แล้วกด OK
  6. โปรแกรมจะทำการลงแพคเกจเพิ่มเติมให้อีกนิดหน่อย
  7. เสร็จแล้วจะเรียก RCommander ขึ้นมาแล้วครับ

ในบล็อกตอนถัดไป ผมจะสอนวิธีการเรียกข้อมูลขึ้นมาง่ายๆ ใน R Commander และวิธีการทำ Descriptive Statistics ในโปรแกรม R Commander นะครับ

25 กันยายน 2558

Imputation: การคาดคะเนข้อมูลที่หายไปจากงานวิจัยอย่างมีหลักการ

วันก่อน ที่คณะฯ มีจัดอบรมเรื่อง Imputation จึงขอมาย่อเล่าสู่กันฟังนะครับ

งานวิจัยที่ดี ควรมีการเก็บข้อมูลที่ถูกต้อง และใช้สถิติที่ถูกต้องใช่ไหมครับ แต่มันเป็นสิ่งที่หลีกเลี่ยงในงานวิจัยแทบไม่ค่อยได้ที่จะเจอกับข้อมูลที่สูญหายไป

ข้อมูลที่สูญหายไปนั้นมีจากหลายสาเหตุครับ ยกตัวอย่างเช่น เราทำงานวิจัยงานหนึ่งที่เกี่ยวกับยา ตั้งแต่คนไข้กรอกข้อมูลของตนเอง บางคนอาจจะลืมกรอกข้อมูลเพศ ข้อมูลอายุ หรือบางคนก็จำวันเกิดไม่ได้ บางครั้งคนไข้เองอาจจะไม่อยู่ให้ตอบคำถามบางอย่างที่ไม่ได้ตอบแล้ว หรือผู้วิจัยไม่สามารถตามข้อมูลได้จริงๆ นั่นก็อาจจะถึงเวลาที่เราต้อง "คาดคะเน" (ภาษาชาวบ้านคือ "เดา") ข้อมูลที่หายไปในงานวิจัยครับ

แน่นอนว่า การเดาข้อมูลเป็นเรื่องที่ไม่ควรทำ ถ้าเราสามารถหาข้อมูลจริงๆ มาได้ อย่างเช่นการโทรศัพท์ไปสอบถามคนไข้ (ซึ่งหลายๆ ครั้งคนไข้สามารถที่จะตอบคำถามให้เราได้) หรือเราอาจจะตามข้อมูลจากแหล่งอื่นเช่นเวชระเบียน ทำให้เราไม่ต้องเสี่ยงกับการเดาข้อมูลที่ผิดพลาดครับ นั่นหมายความว่า ก่อนจะเริ่มเดาข้อมูล (อย่างมีหลักการ) นี้ต้องพยายามตามข้อมูลที่หายไปให้ได้ก่อนครับ

เมื่อตามไม่ได้แล้วจริงๆ ก็ถึงเวลาที่เราต้องเดาข้อมูลครับ ภาษาทางสถิติเรียกการคาดคะเนข้อมูลที่น่าจะเป็นนี้ว่า Imputation ครับ


04 พฤษภาคม 2558

วิธีเตรียมข้อมูลใน Excel สำหรับวิเคราะห์ด้วยโปรแกรมทางสถิติ

ห่างหายกันไปนานครับ พอดีผมไม่ค่อยว่างเขียนเสียเท่าไหร่ (งานสอน งานวิจัยเยอะมาก) วันนี้ขอเขียนอะไรเบาๆ อย่าง วิธีการเตรียมข้อมูล เพื่อจะนำไปวิเคราะห์ทางสถิติละกันนะครับ สิ่งที่เขียนนี้เป็นเทคนิคจากประสบการณ์ส่วนตัวล้วนๆ ที่มักจะเจอจุดผิดพลาดของคนเตรียมข้อมูลที่ทำให้คนวิเคราะห์ต้องหนักใจครับ

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

ข้อมูลที่โปรแกรมส่วนใหญ่ต้องการ มักจะอยู่ในรูปแบบของตาราง ถึงแม้จะมีโปรแกรมฐานข้อมูลต่างๆ มากมายในการช่วยเตรียมข้อมูล เช่น Microsoft Access, EpiData แต่ผู้ใช้ส่วนใหญ่มักจะเลือกเตรียมใน Spreadsheet เพราะมีโปรแกรม Spreadsheet อยู่ในเครื่องคอมพิวเตอร์กันอยู่แล้ว และโปรแกรม Spreadsheet เหล่านี้ใช้งานได้ง่าย จึงจะขอพูดถึงการเตรียมข้อมูลจากโปรแกรม Spreadsheet ที่ได้รับความนิยมอย่าง Microsoft Excel ครับ

ข้อมูลที่เราเตรียมจากโปรแกรม Microsoft Excel ควรเตรียมในลักษณะที่พร้อมที่จะนำเข้าโปรแกรมสถิติเลย กล่าวคือ

1. ทำข้อมูลในลักษณะตาราง โดยให้แถวตามแนวนอน (Row) แถวแรก เป็นชื่อของตัวแปร และในแถวถัดๆ มาเป็นข้อมูลจริง และให้เป็น 1 แถวต่อ 1 คนเท่านั้น (โปรแกรมจะไม่อ่านหลายแถว)



21 มีนาคม 2557

แนวทางปฏิบัติสำหรับการเขียนรายงานวิจัยทางคลินิก Guidelines for clinical research paper writing

วันนี้จะขอเขียนเรื่อง Guideline สำหรับการเขียนเปเปอร์ละกันนะครับ

ปกติแล้วการเขียนเปเปอร์ทางงานวิจัย แรกเริ่มเดิมทีก็ไม่ได้มีแนวทางการเขียนอะไรเป็นพิเศษ ใครอยากเขียนรายงานอย่างไรก็เขียนไป แต่ช่วงตั้งแต่หลังปี 2000 เป็นต้นมา เนื่องด้วยความที่โลกสื่อสารกันง่ายขึ้น มีการรายงานผลของการวิจัยไปยังหลายประเทศมากขึ้น และมีจำนวน Journal มากขึ้น ทำให้มีคนเสนอว่า เราควรรายงานผลการวิจัยให้มันตรงๆ กันเสียบ้าง เพื่อผู้อ่านจะได้ทำความเข้าใจกับงานวิจัยได้ง่ายขึ้น (เช่นไม่ใช่ว่า เปเปอร์นี้ไม่เขียนว่าวิเคราะห์แบบ intention to treat เลยบอกไม่ได้ว่าตกลงมีหรือไม่มี หรือมีการ Blinding คนวิจัยหรือไม่ เป็นต้น)

นี่ก็เลยเป็นที่มาของ Guildeline ต่างๆ ซึ่งส่วนใหญ่ทำออกมาในรูปแบบของ Checklist เป็นข้อๆ ครับ เพื่อให้ง่ายต่อการอ่าน และส่วนใหญ่นอกจากตัว Checklist แล้ว ทีมผู้สร้างเขาก็มักจะแนบเปเปอร์ที่เป็นการอธิบายในรายละเอียดเอาไว้ด้วย (ส่วนใหญ่เรียกว่า Explanation and Elaboration)

ผมเลยลองสรุปมาให้ดูครับว่า มี Guideline อะไรบ้าง


26 กุมภาพันธ์ 2556

Measurement in Epidemiology: Ratio, Proportion, Rate

วันนี้ขอเปลี่ยนแนว มาเขียนเรื่องหนักไปด้านระบาดวิทยาจริงๆ ดูบ้างครับ ขอลองเขียนเรื่อง Measurement หรือการวัดในทางระบาดวิทยาดู

นักระบาดวิทยา มักจะชอบวัดสิ่งต่างๆ โดยการเปรียบเทียบกับสิ่งอื่นๆ ครับ โดยปกติแล้วทางระบาดวิทยา การเปรียบเทียบในลักษณะนี้จะออกมาในสามรูปแบบคือ
  1. Ratio
  2. Proportion และ
  3. Rate
อ่านแล้วก็คงสับสนใช่ไหมครับ ในวงการระบาดก็มีความสับสนเล็กน้อยจากความเข้มงวดของนักระบาดแต่ละคนที่ไม่เท่ากัน แต่โดยทั่วไปแล้วความหมายของทั้งสามรูปแบบมีดังนี้ครับ

07 ธันวาคม 2555

Health Economics: Cost

สืบเนื่องจากวันก่อนผมไปสัญญาว่าจะเขียนเกี่ยวกับ Health Economics บ้างคร่าวๆ วันนี้ก็เลยขอมารักษาสัญญาด้วยการเล่าเรื่องนี้เบื้องต้นในบล็อกละกันนะครับ

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

หลักง่ายๆ ของการวิเคราะห์เปรียบเทียบทางเศรษฐศาสตร์ (Economics Evaluation) นั่นก็เหมือนที่เราทำรายรับรายจ่ายนั่นละครับ เนื่องจากทรัพยากรของเรานั้นมีจำกัด (จำนวนเงินมีจำกัด จำนวนหมอมีจำกัด จำนวนยามีจำกัด ฯลฯ) เรามีทางเลือกในการพัฒนาอะไรหลายทาง แต่ถ้าเราเลือกจะพัฒนาด้านใดด้านหนึ่งแล้วเราจะสูญเสียโอกาสในการพัฒนาด้านอื่นๆ ไป

ดังนั้นเราจึงจำเป็นจะต้องมีการวิเคราะห์เพื่อเทียบเคียงว่า การที่เราเลือกจะทำอะไรลงไปซักอย่างนั้นจะได้ประโยชน์ตอบแทนกลับมาคุ้มค่าซักแค่ไหนกับทรัพยากรที่เราลงทุนลงไป การบริหารทรัพยากรที่มีอยู่อย่างจำกัดนี้เองเป็นที่มาของวิชาเศรษฐศาสตร์

04 ตุลาคม 2555

Regression คืออะไร

พอดีมีหลายคนสงสัย ผมเลยจะลองเล่าเรื่องเกี่ยวกับสถิติให้ฟังอย่างง่ายๆ นะครับ (ถ้าต้องการใน Technical Detail อาจต้องลองหาหนังสือ Biostat นะครับ)

หลักการของการทำ Regression Analysis ก็เหมือนกันกับสถิติที่เราเรียนมาในชั้นมัธยมนั่นละครับ นึกสภาพตอนที่เรามีข้อมูลบนกราฟเป็นแกน x, y แล้วอาจารย์ให้หาสมการเส้นตรง y = m x + c ได้ไหมครับ นั่นละครับคือ model ทางคณิตศาสตร์อย่างง่ายแบบหนึ่ง

แต่โลกเรามันไม่ได้ง่ายเป็นกราฟเส้นตรงที่มีตัวแปรเดียวเสมอไปใช่ไหมครับ เช่นในการทำนายความยาวลำตัวของเด็กแรกเกิด เราอาจจะต้องมานั่งคิดว่ามีปัจจัยอะไรบ้างในการบอกส่วนสูง ในกรณีนี้แล้วเราจะถือว่า ความยาว เป็นตัวแปรตาม (Dependent variable) และปัจจัยต่างๆ เป็นตัวแปรต้น หรือตัวแปรที่ใช้ทำนาย (Independent variable หรือ predictor)

สมมติว่าผมให้ "ความสูงของแม่" และ "อายุครรภ์ (สัปดาห์)" เป็นปัจจัยที่น่าจะส่งผลต่อความยาวของเด็ก เบื้องต้นผมก็อาจจะกำหนดโมเดลออกมาเป็น

ความสูงของเด็ก = b1*ความสูงของแม่ + b2*อายุครรภ์ + c

หลังจากนั้นเราก็พยายามไปเก็บข้อมูลของเด็กต่างๆ มา และด้วยโปรแกรมสถิติ เราก็สามารถที่จะหาได้ครับว่า b1, b2, c คืออะไรบ้าง อันนี้ละครับคือสิ่งที่เราเรียกว่า Regression Analysis และจากการคำนวณเราก็สามารถที่จะนำไปสู่การสร้างสมการเพื่อทำนายความสูงของเด็กได้

แต่ในความเป็นจริงไม่ใช่ว่าทุกตัวแปรจะเป็นตัวแปรแบบตัวเลขหมดใช่ไหมครับ หลายๆ ครั้งที่ตัวแปรที่เราสนใจคือ "ตาย" กับ "ไม่ตาย", "เป็นโรค" กับ "ไม่เป็นโรค" นั่นเลยเป็นที่มาของ Logistic Regression ครับ โดยแทนที่ด้านซ้ายจะเป็นตัวแปร เราก็เปลี่ยนเป็นตัวแปรที่จะบ่งบอกถึงความน่าจะเป็นของโรคนั้นแทนครับ

อันนี้เป็นตัวอย่างง่ายๆ คร่าวๆ นะครับ ถ้าต้องการรู้ในรายละเอียด ถึงวิธีทำผมว่าคงจะต้องไป take course แล้วครับ :D

24 สิงหาคม 2555

Descriptive and Cross-sectional Studies

ช่วงนี้ห่างหายการเขียนบล็อกไปนานเลยครับ เนื่องจากมีงานที่ต้องทำหลายอย่าง ยังไงถ้าว่างจะรีบมาเขียนให้อ่านกันอีกนะครับ

เมื่อวานผมได้มีโอกาสไปบรรยายให้ Resident ชั้นปีที่ 1 ของรามาธิบดีฟังเรื่อง Case Series, Descriptive, and Cross-Sectional Studies ฟัง ยังไงก็ขอเล่าสูกันฟังและแปะสไลด์ที่ได้นำเสนอไว้ในบล็อกนี้นะครับ

  • Case Report และ Case Series คือการนำเสนอตัวอย่างเคสหนึ่งเคส หรือมากกว่าหนึ่งเคสที่น่าสนใจ ถามว่าน่าสนใจยังไงก็เช่น เกิดเคสที่ไม่เคยมีมาก่อน, เจอโรคในคนที่ไม่น่าจะเป็นโรคนี้ หรือเจอโรคในสถานที่ที่แปลกไปครับ ยกตัวอย่างก็เช่น มีคนรายงานเคสที่เป็นโรคหัวใจพร้อมๆ กับมีก้อนเส้นเลือดผิดปกติที่ผิวหนัง (hemangioma) พบว่าเมื่อให้ยา Propranolol โดยมีเป้าหมายในการรักษาโรคหัวใจแล้ว กลับทำให้ก้อนที่ผิวหนังมีขนาดลดลงไปด้วย สังเกตว่าเป็นแค่เคสเดียวหรือไม่กี่เคสเท่านั้น แต่สิ่งที่ได้ก็คือเราได้ "ไอเดีย" ในการวิจัยศึกษาต่อไปครับ นอกจากนี้แล้ว ยังเป็นการรายงานสิ่งที่อาจเป็นปัญหาสุขภาพ เช่น รายงานเคสไวรัส Hand Foot Mouth Disease ในกัมพูชา เป็นต้นครับ
  • ต่อมาคือเรื่องของ Cross Sectional Study ครับ Cross Sectional Studies นั้นแบ่งได้ออกเป็นสองแบบย่อยๆ คืออาจจะเป็นทั้ง Descriptive หรือ Analytic ก็ได้
    • Descriptive หมายถึงมีแต่อธิบายเฉยๆ ว่าได้ข้อมูลอย่างไรมาบ้าง เช่น กลุ่มที่ศึกษามีกี่คน ความดันเฉลี่ยเท่าไหร่ อายุเท่าไหร่บ้าง
    • Analytic พวกนี้จะมีการเปรียบเทียบระหว่างกลุ่มคนย่อยๆ ในการศึกษาครับ โดยมากแล้วจะนำสถิติมาจับ และสังเกตได้จากการมี p-value ครับ
  • สำหรับใน Analytic Cross Sectional Study มีการคำนวณสองแบบที่แสดงถึงความสัมพันธ์กันของ 2 factors ครับ นั่นคือ
    • Prevalence Ratio ซึ่งมีค่า = Prevalence ของโรคในกลุ่มคนที่มี Exposure / Prevalence ของโรคในกลุ่มที่ไม่มี Exposure
      • ยกตัวอย่างเช่น Prevalence OA knee ในคนอ้วนในการศึกษา = 0.8, Prevalence OA knee ในคนไม่อ้วนในการศึกษา = 0.4 Prevalence Ratio ก็เอาสองอันนี้จับหารกัน = 0.8/0.4
      • แปลความหมายว่า Probability ของ OA knee เป็น 0.8/0.4 = 2 เท่าของคนที่อ้วนครับ
    • Prevalence Odds Ratio = Probability ที่จะเกิดโรค / Probability ที่จะไม่เกิดโรค ครับ
      • ถ้าเป็นตาราง 2x2 table ก็คือจับคูณไขว้ แล้วหารกันนั่นเองครับ (ดูในสไลด์ประกอบ)
      • จริงๆ แล้วการแปลความหมายจะซับซ้อนกว่า แต่ถ้ากลุ่มโรคที่เราศึกษานั้นมี Prevalence ที่ต่ำมากๆๆ (Rare disease) สองค่านี้จะใกล้เคียงกันมากขึ้นเรื่อยๆ และสามารถใช้การแปลความหมายเหมือนกันได้ครับ (แต่อันนี้คำนวณง่ายกว่า)
  • นอกเหนือจากการศึกษาเกี่ยวกับโรคแล้ว พวก Diagnostic Study ที่เปรียบเทียบเครื่องมือหนึ่ง กับอีกเครื่องมือหนึ่ง ก็ถือว่าเป็น Cross sectional study เหมือนกันครับ
    • พวกนี้คือการศึกษาที่หา Sensitivity, Specificity, Accuracy, Predictive Value นั่นเองครับ
  • ข้อดีของ Cross sectional study มีอะไรบ้าง
    • อันดับแรก ง่ายครับ ทำไม่นาน ไม่ต้องการทุนที่จะไป follow up คนไข้เท่าการศึกษาแบบอื่นๆ ครับ
    • อย่างถัดมา คือสามารถบอกถึงปัญหาคร่าวๆ ของชุมชน หรือประเทศได้ครับ ว่ามีมากน้อยแค่ไหน
    • และยังสามารถศึกษาหลายๆ Risk Factor ไปพร้อมๆ กับหลายๆ Outcome ได้ในทีเดียวด้วยครับ
  • ส่วนข้อเสียนั้นก็มีอยู่เหมือนกันครับ
    • อย่างแรกคือโรคที่เป็นแล้วคนไข้อยู่นานๆ (chronic disease) พวกนี้เวลาเราไปศึกษา จะทำให้รู้สึกเหมือนกับว่าโรคนี้เป็นปัญหาอย่างมากต่อสังคม ไม่หายไปไหนสักที เพราะไปศึกษาทีไร ก็จะเจอแต่คนที่เป็นโรค (ทั้งที่จริงๆ แล้วก็เป็นคนเดิมๆ อาจไม่ได้มีคนใหม่ซึ่งเป็นสิ่งที่เราควรป้องกันหรือแก้ไข) อันนี้เรียกว่า Length biased sampling ครับ
    • อย่างที่สองคือสิ่งที่ได้จาก Cross-sectional study คือ Prevalence ครับ ไม่ใช่ Incidence (ผมเคยเขียนเกี่ยวกับเรื่องนี้ไปแล้วในครั้งก่อนๆ ครับ) เพราะว่าเราไม่ได้ทำการ follow up คนไข้เลย
    • ถัดมาคือการศึกษาแบบนี้ไม่มีสิ่งที่เราเรียกว่า Temporality ครับ คือไม่สามารถบอกได้ว่าอะไรเกิดก่อนเกิดหลัง เพราะเราตัดคนมาศึกษา ณ จุดเวลาหนึ่งๆ ดังนั้นเราอาจบอกไม่ได้ว่าคนอ้วน --> ทำให้เกิด OA หรือคนที่เป็น OA --> ทำให้อยู่เฉยๆ จนอ้วน ครับ เราบอกได้เพียงแค่ "ความสัมพันธ์" (association) ว่ามันพบไปด้วยกันนะ สองอย่างนี้ ครับ
    • สุดท้ายคืออาจจะมีปัญหาเรื่องเกี่ยวกับการเกลี่ย confounding factor ในคนสองกลุ่มที่เราแบ่งครับ (ซึ่งก็แน่นอนเพราะเป็น observational study เราไม่สามารถเกลี่ยหรือสั่งให้คนอ้วนออกกำลังหรือไม่ออกกำลังได้ครับ)

04 มิถุนายน 2555

แนะนำเว็บไซต์ Wiki Journal Club

ผมบังเอิญเปิดไปเจอแอพใน iPhone ที่ชื่อว่า Journal Club for iPhone ครับ แล้วก็ได้มีโอกาสลองตามไปดูในเว็บไซต์ที่มาของข้อมูล เลยมาแนะนำกันครับ

แอพสำหรับ iPhone อันนี้เป็นแอพที่ใช้ดูว่า Landmark Clinical Trials หรือ Trial ใหญ่ๆ นี่มีอะไรบ้าง หลายคนคงจะคุ้นหูกับ ALLHAT, COURAGE, ACCORD, ADVANCE ซึ่งเป็นการศึกษาใหญ่ๆ แต่คงจะมีไม่กี่คนที่จะรู้และจำทุกการศึกษาไปได้หมด (แม้แต่ชื่อเต็มมันก็ยังเข้าใจยากเลยครับ) แอพนี้ช่วยตอบโจทย์คร่าวๆ ได้ครับ

คณะผู้จัดทำซึ่งเป็น Resident Internal Medicine ได้ทำเว็บไซต์เบื้องหลังแอพนี้ คือ wikijournalclub.org ครับ โดยเว็บดังกล่าวจะเป็นลักษณะคล้ายกับ Wikipedia ซึ่งหมายความว่าใครๆ ก็ช่วยกันเขียนได้ โดยเว็บได้รวบรวม Trial ใหญ่ๆ ไว้เกือบหมด และที่เหนือไปกว่านั้นคือเว็บไซต์นี้ได้ทำการวิเคราะห์สกัดเอาข้อมูลหลักๆ ที่เราต้องการรู้สำหรับการทำ EBM คือ PICO (Patient - รวมทั้ง Inclusion/Exclusion ด้วย, Intervention, Comparison และ Outcome) ไว้ให้เรียบร้อยเลยครับ

นอกจากนี้แล้วเว็บไซต์ยังกล่าวสรุปให้ฟังด้วยว่า Clinical Question คืออะไร, ข้อสรุปคร่าวๆ ของ Trial ดังกล่าวคืออะไร และยังมีการวิจารณ์ในบาง Trial ด้วย

ยังไงลองเข้าไปดูกันนะครับ

23 กรกฎาคม 2554

Funnel Plots ใน Meta-Analysis

พอดีได้มีโอกาสอ่านรีวิวของ Funnel Plots ในวารสาร BMJ ฉบับล่าสุด เขียนโดย Jonathan A C Sterne ผมคิดว่ามีประโยชน์ก็เลยมาเขียนเล่าสู่กันฟังครับ

Funnel Plot คืออะไร

Funnel Plot ชื่อนี้ได้มาจากหน้าตาของกราฟที่มีลักษณะเป็นคล้ายกรวยครับ เกริ่นก่อนก็คือว่าโดยปกติเวลาเราทำ Meta-analysis เรามักจะกังวลกันว่า Study ที่นำมารวมกันนั้นมันมี Bias ไปทางไหนหรือเปล่า หรือว่าเราเอาแต่ Study ที่เอนเองไปทางใดทางหนึ่งมา Meta-analyze รวมกัน จึงเกิดกราฟที่พล็อตขึ้นมา ระหว่าง "ขนาดของ Study" และ "ผลลัพธ์ของ Study" ครับ

  • ขนาดของ Study นั้นเราจะดูจากค่าที่เรียกว่า Standard Error ของผลลัพธ์ที่ได้ สำหรับใครที่ยังไม่รู้ เจ้า Standard Error นี่เป็นตัวบอกความคลาดเคลื่อนของผลลัพธ์ของ Study ที่ได้จาก Sample (กลุ่มที่เลือกมาศึกษา) เมื่อเทียบกลับไปเป็น Population (ประชากรทั้งหมดทั้งปวง) เช่นผมศึกษาค่าเฉลี่ยระดับน้ำตาลของคนไทยจำนวน 20 คน ผมย่อมจะได้ค่าจาก 20 คนนี้เท่านั้น ซึ่งอาจตรงหรือไม่ตรงกับค่าเฉลี่ยของคนที่เป็นเบาหวานทั้งหมด (Population) ก็ได้ ยิ่งถ้าผมศึกษาคนจำนวนมากขึ้นเท่าไหร่ ค่า Standard Error นี้ก็ยิ่งมีค่าน้อยลงเป็นส่วนกลับกันครับ โดยมากเราจะมีสูตรว่า SE = s / sqrt(n) โดยที่ s = SD ครับ
  • ผลลัพธ์ของ Study ที่ได้ ที่เรียกกันว่า Effect Estimates เช่นถ้าเป็น Outcome ที่อยู่ในลักษณะของ Dichotomous (หาย/ไม่หาย ตาย/ไม่ตาย) ก็อาจอยู่ในรูปของ Odds Ratio/Relative Risk

การพล็อตกราฟดังกล่าวนั้นจะเอาขนาดของ Study ไว้ในแกนตั้ง โดยเอา Study ที่ Standard Error น้อยๆ (หรือก็คือ Study ใหญ่ๆ) ไว้ด้านบน และ Study เล็กๆ ไล่ลงมาด้านล่าง ส่วนในแกนนอนนั้น จะเอา Effect Estimates เรียงจากด้านน้อยไปหามาก (หรือก็คือเรียง Odds Ratio จากน้อย [Favor intervention 1] ไปมาก [Favor intervention 2])



ถ้าเราได้ Study ทั้งหมดทั้งปวงของเรื่องนั้นมาจริงๆ กราฟที่ได้นั้นก็ควรจะมีหน้าตาคล้ายกรวยคว่ำ นั่นก็คือ Study ใหญ่ๆ ควรจะอยู่ตรงกลาง และ Study เล็กๆ ลงมานั้นก็ควรจะกระจัดกระจายอยู่ทั้งสองด้านของ Study ใหญ่ๆ เนื่องจากว่า Study เล็กๆ นั้นมีโอกาส (chance) ที่จะสุ่มตัวอย่างเฉพาะบางกลุ่มมาทำการศึกษา (sampling variation)

เพื่อให้เห็นภาพชัดขึ้น จึงได้มีการตีขอบเขตของกรวยด้วยครับ โดยขอบเขตนี้ตรงกลางของกรวยจะอยู่ที่ผลลัพธ์ที่ประมาณได้จาก Fixed Effect และไล่ด้านข้างเป็น 1.96 ของ Standard Error ครับ

เรามักจะคาดกันง่ายๆ ว่าถ้าเกิดกราฟพล็อตที่ได้ออกมาไม่ได้เป็นรูปกรวย มีการเบ้หรือกองกันด้านใดด้านหนึ่งของกรวยดังกล่าว (หรือแม้แต่ออกไปนอกกรวยในบางกรณี) นั้นน่าจะเกิดจากการที่มี Publication Bias กล่าวคือ Study ที่มี Effect ไปอีกทางหนึ่งของกรวย นั้นอาจจะไม่ได้ถูกตีพิมพ์ (โดยเฉพาะ Study ที่เล็กๆ) ทำให้เราไม่นำมารวมใน Meta-analysis นั่นเอง

ยกตัวอย่างเช่นจากใน Paper นี้ได้ยกตัวอย่างของ Meta-analysis จากการให้ IV Magnesium หลังการเกิด MI ครับ



เราจะพบว่า กราฟของ Funnel Plot ที่เกิดขึ้นนั้นจุดที่พล็อตนั้นกองกันไปอยู่ด้านที่ OR เป็นลบ (หมายถึงว่า IV Mg ช่วยลด Mortality) ในขณะที่ Study ที่ใหญ่ที่สุดนั้นกลายเป็นอยู่ตรงกลาง (ไม่ได้ช่วยลด Mortality) แสดงว่าจริงๆ แล้ว Study เล็กๆ ที่มัน negative นั้นอาจไม่ได้ถูกตีพิมพ์ก็ได้ครับ

ใน Paper นี้ได้เสนอว่า นอกจากที่เราคิดว่า Funnel Plot จะแสดงถึง Publication Bias แล้ว จริงๆ เราก็ควรจะเตือนตัวเองเสมอว่า มันอาจจะมีกรณีอื่นๆ ที่ทำให้เกิดการเบ้ของกราฟนี้อีกก็เป็นได้ ซึ่งสาเหตุของการเกิดอาการเบ้ใน Funnel Plot อาจเกิดจาก

  1. Reporting Bias
    1. Publication Bias ซึ่งอาจเกิดจากทั้ง Delay Publication Bias (Paper ไม่ได้ถูกตีพิมพ์) หรือ Location Bias (ค้นไม่เจอซึ่งอาจเกิดจากปัญหาเลือกภาษาเป็นต้น)
    2. Selective Outcome Reporting อาจค้นเจอ แต่ใน paper ที่ค้นได้เลือกที่จะไม่บอกผลลัพธ์บางอย่าง
    3. Selective Analysis Reporting ใน paper อาจจะบอกเฉพาะผลลัพธ์ที่ bias ไปตามวิธีวิเคราะห์ที่ใช้
  2. คุณภาพของงานศึกษาเล็กๆ อาจดีไม่เท่างานศึกษาใหญ่ๆ ทำให้ถูกจูงไปทางใดทางหนึ่ง ซึ่งอาจเกิดได้จาก Design งานศึกษาไม่ดี, ทำการวิเคราะห์ไม่ดี, หรือแม้แต่นั่งเทียนเขียนงานวิจัยหลอกๆ
  3. อาจเกิดความแตกต่างระหว่าง Study จริงๆ (Heterogeneity) ซึ่งถ้าเราสามารถนำมาแยกตามปัจจัยที่ทำให้เกิด Heterogeneity (หรือทำ Subgroup Analysis) ก็อาจแยก Funnel Plot เป็นกลุ่มๆ ที่อาจจะไม่เกิดการเบ้ได้
  4. Artefact ที่เกิดจาก Sampling Variation
  5. สุดท้ายคืออาจเกิดจาก Chance เองก็ได้ (โชคไม่ดีที่กราฟเบ้)
โดยปกติแล้วนอกจากการดูกราฟด้วยตาเปล่าแล้ว ยังมีการใช้วิธีคำนวณเพื่อดูว่ากราฟเบ้หรือไม่ อย่างไรก็ดี วิธีคำนวณเหล่านี้นั้นมักไม่สามารถ Detect ความเบ้ได้มากเท่าไหร่ครับ

ยังไงก็ลองตามกันไปอ่าน Paper เต็มๆ ได้ที่ BMJ นะครับ

Reference

19 มิถุนายน 2553

Modified Intention-To-Treat


มีหลายคนสงสัยเกี่ยวกับคำว่า "Modified Intention-To-Treat" (ผมขอเรียกว่า mITT) ว่ามันคืออะไรกันแน่ พอดีว่ามีงานวิจัยที่เกี่ยวข้อง ผมก็เลยขอสรุปงานวิจัยนั้นมาให้ดูกันนะครับ

ก่อนอื่นขอย้อนไปดูคำว่า Intention-To-Treat กันเสียก่อน สมมติว่าผมกำลังทำ RCT อันหนึ่งที่เปรียบเทียบการใช้ยาตัวหนึ่งกับ Placebo ถ้างานวิจัยผมเริ่มเก็บคนไข้ที่เข้าร่วมงานวิจัย คนไข้ที่เข้ามานั้นก็จะต้องผ่านกระบวนการต่างๆ โดยสรุปคือ


  1. ผ่านการคัดเลือก (Enrollment) ซึ่งคนไข้ก็ต้องมีโรคนั้นๆ จริง และผ่าน Eligibility คือไม่ผิดข้อห้ามต่างๆ ของงานวิจัย ซึ่งก็คือเข้า Inclusion/Exclusion criteria นั่นเอง
  2. ผ่านการ Randomization
  3. ได้รับการ Assign ว่าจะได้รับยาตัวไหน
  4. ได้รับยาจริงๆ กลับไปกินที่บ้าน
  5. มาติดตามเพื่อดูว่าเกิดหรือไม่เกิด Outcome ที่ผมสนใจ (เช่น มาดูว่าหายหรือเปล่า)
การวิเคราะห์แบบ Intention-To-Treat นั้นจะดูที่กระบวนการ Assignment ว่าคนไหนได้รับยาตัวไหน แล้วคนนั้นเกิด Outcome หรือไม่ นั่นคือดูขั้นตอนที่ 3 เทียบกับขั้นตอนที่ 5 นั่นเองครับ โดยไม่สนใจว่าที่เหลือจะเป็นอย่างไร

อย่างไรก็ดีการวิเคราะห์แบบนี้นั้นมีปัญหาเพราะคนเราเปลี่ยนใจได้อยู่เสมอๆ โดยโอกาสที่จะเปลี่ยนนั้นก็เกิดขึ้นได้กับทุกขั้น กล่าวคือ



  • คนไข้ดัน Enrollment มาผิด ไม่ได้มีโรคเราเลย แต่ดันเข้ามาอยู่ในงานวิจัย ซ้ำร้ายบางคนกลับได้ยาไปเสียด้วย ยกตัวอย่างเช่นได้รับ Antibiotics ไปแต่กลับมาทราบภายหลังว่าผล Culture มันดันไม่ขึ้นแทน ซึ่งเสียอัตราส่วนของ Randomization
    ไปเสียแล้ว
  • คนไข้ดันไม่เข้ากับ Eligibility Criteria เช่นไม่เข้ากับ Inclusion/Exclusion Criteria
  • คนไข้ดันเกิด Outcome เช่นหายซะก่อนที่จะกินยาจริงๆ
  • คนไข้หายตัวไปไม่ยอมมา Follow up อีก หรือมาแต่ไม่ครบ
ทั้งหมดนี้เป็นการเบี่ยงเบนไปจาก Protocol ที่เราวางไว้ แต่ผู้วิจัยนั้นก็จะพยายามอ้างว่าเขาได้พยายามดีที่สุดแล้ว ก็อาจจะวิเคราะห์ตัดคนเหล่านี้ออกจากการศึกษาไปเลย ซึ่งการตัดคนเหล่านี้ออกไปนั้นผู้วิจัยส่วนใหญ่ใช้คำว่า "Modified Intention-To-Treat" ครับ

ข้อเสียของมันก็คือเราไม่รู้ว่ามันจะตัดคนไข้กลุ่มไหนออกไปมากเป็นพิเศษหรือไม่ (เช่นดันตัดกลุ่มที่ได้ยาไปซะเยอะ) ทำให้ผลลัพธ์ของ Randomization ไม่สวยหรูอย่างที่เราคาดเอาไว้ครับ

แต่คำว่า Modified นั้นก็ไม่ได้บ่งชี้เฉพาะว่าการเปลี่ยนแปลงนั้นเกิดจากตรงกระบวนการใดกันแน่ ใน Paper ที่ลงตีพิมพ์ใน BMJ ล่าสุดนั้นพบว่าผู้วิจัยแต่ละคนก็มีความหมายของคำนี้แตกต่างกันไป บางคนรวมหลายจุดเข้าด้วยกัน ซ้ำร้ายในคนเดียวกันยังให้ความหมายแตกต่างกันในคนละ Trial เสียด้วยซ้ำ นั่นแสดงว่าไม่มีใครที่จะให้ความหมายของคำนี้อย่างชัดเจน เว้นเสียแต่ว่าผู้วิจัยจะต้องบอกเจาะจงให้แน่ชัดไปเลยว่าเกิดอะไรขึ้นกับ Trial และใครบ้างที่ถูกคัดออก และคัดออกเนื่องจากอะไรครับ

ไม่แน่ใจว่าพอจะเข้าใจกันมากขึ้นหรือไม่นะครับ ลองนั่งนึกๆ ดูครับ ส่วนตัว Paper นั้นสามารถดูได้จาก Abraha I, Montedori A. Modified intention to treat reporting in randomised controlled trials: systematic review. BMJ. 2010;340:c2697. ครับ

13 มีนาคม 2553

เกริ่นเรื่อง Survival Analysis

วันนี้ขอเกริ่นหลักการของเรื่อง Survival Analysis ไว้คร่าวๆ ก่อนครับ

ใครที่ไม่เคยรู้เรื่องสถิติมาก่อน ก็มักจะคิดว่า Survival Analysis คือการดูอัตราการอยู่รอดของคนที่เป็นโรคใช่ไหมครับ คำตอบนั้นคือ ใช่ครับ แต่ก็ไม่ถูกต้องไปทั้งหมดเสียทีเดียว ก่อนอื่นเราต้องมาทำความเข้าใจกับการวิเคราะห์ข้อมูลกันครับ

โดยปกติแล้วในการศึกษาวิจัยที่ง่ายๆ มักจะมีการกำหนด "ระยะเวลา" ที่จะวัดผลไว้อย่างชัดเจน เช่น การศึกษาการให้ยาแอสไพรินในคนปกติ แล้วมาวัดอัตราตายที่ 3 เดือนว่ากลุ่มที่ให้หรือไม่ให้แอสไพริน กลุ่มไหนมี % ตายมากกว่ากัน

แต่การวัดแบบนี้ไม่ได้เอาเวลาเข้ามาคิดเลยครับ เราจะไม่มีทางทราบเลยว่าก่อนหน้า 3 เดือน หรือหลังจาก 3 เดือนนั้นเป็นอย่างไร กลุ่มไหนมีอัตราตายเร่งอย่างไรกันบ้าง อันนี้เลยจึงเป็นที่มาของการเอา "ระยะเวลา" เข้ามาวิเคราะห์ร่วมกับ "ผลลัพธ์" (ในที่นี้คืออัตราตาย -- แต่จริงๆ แล้วผลลัพธ์นี้อาจจะเป็นอย่างอื่นที่ไม่ตายก็ได้ เช่น การเป็นเบาหวาน การเป็นโรคอัมพาต) หรือในทางระบาดวิทยานั้นเรียกการวิเคราะห์แบบนี้ว่า time-to-event (ระยะเวลาจนกว่าจะเกิดผลลัพธ์) นั่นเองครับ

เราจะเห็นได้ว่าการศึกษาที่สามารถวิเคราะห์แบบนี้ได้ จำเป็นต้องเก็บข้อมูล "ระยะเวลา" ด้วย จากที่ผมเคยเขียนเอาไว้ในบล็อกก่อนๆ คงจะจำกันได้ว่ารูปแบบที่มีระยะเวลาด้วยนั้นก็คือรูปแบบของ Randomized Controlled Trial และ Cohort (ซึ่งก็เป็นได้ทั้ง Retrospective หรือ Prospective เพราะต่างก็เก็บเวลาด้วยกันทั้งคู่) นั่นเองครับ การศึกษาแบบ Cross-sectional นั้นเป็นการศึกษาที่ "จุดหนึ่งของเวลา" ทำให้ไม่สามารถเก็บข้อมูลของระยะเวลาจนเกิดเหตุการณ์นั้นๆ ได้ครับ

ข้อดีของการศึกษาแบบนี้อีกอย่างนั่นก็คือ คนที่จนจบ Study แล้วยังไม่เกิดผลลัพธ์ใดๆ เลย หรือคนที่ติดตามมาอยู่ระยะเวลาหนึ่งแล้วดัน loss follow up ไปซะก่อนนั้นก็ยังมีส่วนอยู่ในการศึกษา ไม่ต้องเอาคนเหล่านี้ออก เพราะเขาก็ยังให้ข้อมูลระยะเวลาส่วนหนึ่งที่เขาไม่เกิดเหตุการณ์ครับ

ตอนต่อไปผมจะมาอธิบายต่อเกี่ยวกับเรื่องนี้นะครับ :D

21 กุมภาพันธ์ 2553

Zotero ออกรุ่น 2.0 แล้วครับ

โปรแกรมจัดการบรรณานุกรมที่ผมชอบใช้ และเคยได้แนะนำไปก็คือ Zotero นั้นได้ออกรุ่นใหม่อย่างเป็นทางการแล้วครับ สำหรับรุ่นนี้คือรุ่น 2.0 ครับ



รุ่น 2.0 นั้นมีคุณสมบัติที่เพิ่มมาใหม่หลักๆ ดังนี้เลยครับ

  • สามารถ Sync ข้อมูลของเราเอาไปไว้บนเซอร์เวอร์ของ Zotero ได้ ซึ่งก็หมายความว่าเราสามารถ Backup ตามที่ผมเคยเขียนไว้ได้ครับ ซึ่งพวก PDF ที่เรา Attach ไว้ก็จะตามขึ้นไปด้วย แต่ว่าสำหรับผู้ที่ใช้ฟรี การเก็บไฟล์จะถูกจำกัดไว้ที่ 100 เมกะไบต์เท่านั้น ถ้าต้องการเพิ่มก็ต้องเสียเงินครับ

  • สนับสนุน Proxy อันนี้สำหรับผู้ที่ใช้อินเทอร์เน็ตที่บ้านต่อผ่านเซอร์เวอร์ของมหาวิทยาลัยในการเอา Full Paper อัตโนมัติ (เช่นของมหิดลคือ http://ejournal.mahidol.ac.th/) ทำให้สะดวกมากขึ้นครับ

  • แทรก Comment ไว้ในรายการแบบเป็น Rich Text (ทำตัวหนาตัวเอียงใส่สีได้)



ยังไงก็ลองดาวน์โหลดกันได้ที่เดิม Zotero.org ครับ :)

13 ธันวาคม 2552

Backup/Export ข้อมูลใน Zotero

พอดีมีผู้สนใจถามมาเกี่ยวกับเรื่องการ Backup ข้อมูลใน Zotero นะครับ ผมเลยเอามาเขียนให้อ่านกันโดยทั่วๆ ใครที่ยังไม่รู้จัก Zotero ผมแนะนำให้ลองใช้ดู ยังไงลองอ่านเรื่องเกี่ยวกับ Zotero ได้ในหน้านี้นะครับ



โดยปกติแล้ว Zotero นั้นจะเก็บข้อมูลต่างๆ ที่เราได้ทำการบันทึก ทั้งในเรื่องของรายการ และไฟล์แนบ (เช่นพวก PDF หรือ Snapshot ทั้งหลาย) เอาไว้ในโฟลเดอร์ Zotero ที่อยู่ย่อยของโฟลเดอร์ Profile ของ Firefox อีกที โดยส่วนใหญ่ของผู้ใช้วินโดวส์ Vista/7 ก็จะอยู่ลึกมาก (เช่นของผมนั้นอยู่ที่ C:\Users\Pawin Numthavaj\AppData\Roaming\Mozilla\Firefox\Profiles\oc7s70ri.default\zotero\storage เป็นต้น) สำหรับวิธีการหาโฟลเดอร์นี้โดยง่ายก็คือการเข้าไปที่ Preference -> Advance -> Show Data Directory ดังวิธีต่อไปนี้ครับ





  1. คลิ๊กตรงรูปเฟืองใน Zotero

  2. เลือก Preferences

  3. คลิ๊กตรง Advanced

  4. คลิ๊กที่ Show Data Directory


หน้าตาของโฟลเดอร์ที่สามารถ Backup ไว้ก็จะปรากฏออกมาครับ เราสามารถคัดลอกทั้งหมดนี้ไปเก็บไว้ต่างหาก ไว้เผื่อเวลาที่เกิดความเสียหายกับเครื่องได้เลยครับ




โดยถ้าเราเกิดทำเครื่องพังไป เราสามารถคัดลอกไฟล์ทั้งหมดที่เคย Backup เอาไว้กลับมาไว้ตรงโฟลเดอร์นี้ (เปิดด้วยวิธีเดียวกัน) สิ่งต่างๆที่เราเคยทำไว้ก็จะกลับมาได้ทั้งหมดครับ



นอกจากวิธีที่จะ Backup ทั้งหมดแล้วเรายังสามารถเลือก Backup เป็นส่วนๆ ได้ด้วยการอาศัยคำสั่ง Export ตามขั้นตอนต่อไปนี้ครับ




  1. คลิ๊กขวาตรงโฟลเดอร์ที่ต้องการส่งออก/Backup (จะคลิ๊กขวาทั้ง My Library เลยก็ได้ไม่ผิดกติกา)

  2. เลือก Export Collection

  3. เลือก Format เป็น Zotero RDF ถ้าต้องการเก็บไฟล์ที่แนบเอาไว้ด้วยก็อย่าลืมติ๊กเลือก Export Files นะครับ

  4. พิมพ์ชื่อที่ต้องการ แล้วกด Save


เมื่อส่งออกไปแล้วจะเป็นโฟลเดอร์ที่เก็บไว้ครับ ถ้าเราต้องการนำเข้าก็ง่ายๆ แค่เลือก Import จากเมนูเฟืองเท่านั้นเองครับ


 


แต่เท่านั้นยังไม่พอ (ดูมันง่ายไปไหม) ผมแนะนำบริการใหม่ที่จะมีมาอวดโฉมกันใน Zotero 2.0 ซึ่งยังไม่คลอด แต่มีให้ทดลองใช้กันก่อน (ผมใช้อยู่ก็พบว่าไม่เกิดปัญหาอะไรนะครับ) โดยเราสามารถที่จะ Sync สิ่งต่างๆ ที่อยู่ในเครื่องเรา ไปเก็บเอาไว้ในฐานข้อมูลออนไลน์ได้เลยทีเดียว


ก่อนอื่นก็ต้องขอให้ติดตั้ง Zotero รุ่น 2.0 กันก่อนครับ ขั้นตอนก็ง่ายๆ เหมือนรุ่น 1.0 เพียงเข้าไปที่เว็บ http://www.zotero.org แล้วเลือกปุ่ม try out 2.0 beta รอสักครู่ เลือก Install และรอโหลดก็จะได้มาใช้กันแล้ว (ใครกดแล้วมันเงียบแต่มีปุ่มขึ้นให้กด Allow ก็ให้กดไปนะครับ)



ถ้าอัพเกรดมาจากรุ่น 1.0 ก็จะมีให้รออัพเกรดเล็กน้อย



หลังจากเปิดมาแล้วเราจะพบกับหน้าตาที่แปลกไปกว่าเดิมเล็กน้อย และที่ผมอยากให้สนใจคือปุ่มรูปลูกศรโค้งๆ ด้านขวามือนี่ละครับ



ถ้าเรากดปุ่มนี้ เบื้องต้นมันจะเข้าไปที่หน้า Sync ของ Zotero ให้กรอกพวก User Name, Password ของ Zotero ถ้าใครยังไม่มีก็สามารถเข้าไปสร้างแอคเค้าท์กันได้ตามลิงค์ Create Account ที่อยู่ในหน้านั้นเลยครับ



อนึ่ง หลังจากทำการ Sync แล้วรายการต่างๆ ของเรานั้นจะไปอยู่บนคอมพิวเตอร์เซอร์เวอร์ของ Zotero ด้วย โดยถ้าเราทำในคอมเราหายและต้องการให้ Sync ย้อนกลับมาที่เครื่องเรา ก็เพียงเลือก Restore from Zotero Server เท่านั้นเองครับ


ดูง่ายดีไหมครับ นอกจากนี้แล้ว หากเราเข้าไปยังเว็บ http://www.zotero.org แล้วเลือก Login ตาม User Name ที่เราสร้างไว้ รายการต่างๆ ของเราก็จะอยู่ในนั้นด้วยครับ! ซึ่งรายการที่อยู่บนเว็บนี้ยังรวมทั้ง PDF ที่เก็บไว้ใน Library ด้วยนะครับ แต่สำหรับบริการฟรีนั้นจะเก็บได้แค่ 100 เมกะไบต์ (นับเฉพาะไฟล์ต่างๆ ไม่นับจำนวน Reference) ถ้าต้องการเก็บเพิ่มเติมก็สามารถซื้อเพิ่มกันได้ครับ


ยังไงลองใช้กันดูนะครับ :)

06 ธันวาคม 2552

Clinical Epidemiology Short Course

พักนี้ไม่ค่อยจะว่างเขียนเรื่องใหม่ๆ ให้อ่านกันเท่าไหร่ครับ

แต่ว่าพอดีทางหน่วยระบาดวิทยาคลินิกและชีวสถิติ รามาฯ ที่ผมเรียน (และทำงาน) ได้อัดเทปการสอนเกี่ยวกับคอร์สสำหรับ Resident ที่ว่าด้วยเรื่อง Epidemiology และ Statistics ครับ ก็เลยเอามาฝากกัน

ไปดูกันได้ที่หน้าเว็บของหน่วยฯ ได้ที่นี่เลยครับ: http://www.ra.mahidol.ac.th/en/dpt/CEB/shortcourse_residenten

12 ตุลาคม 2552

ชนิดของตัวแปร


ข้อมูลที่เกิดขึ้นจากการวัด ที่แตกต่างกันไปในแต่ละคน ในทางการวิจัยเราจะเรียกมันว่า "ตัวแปร" (variable) ครับ เช่นง่ายๆ ผมทำสำรวจการเรื่องการได้ยินในนักดนตรี ตัวแปรพวกนี้ที่เจอบ่อยๆ ก็เช่น เพศ อายุ นอกจากนี้ก็จะเป็นตัวแปรที่เกี่ยวข้องกับงานวิจัยของเราครับ นั่นคือของผมก็อาจจะเป็น ระดับการได้ยินเฉลี่ยในหูซ้ายและหูขวาในปัจจุบัน, ระดับเสียงที่ได้ยินโดยเฉลี่ยต่อวัน, จำนวนชั่วโมงที่เล่นเพลง, รูปแบบเพลงที่ชอบเล่น, ประวัติเคยใช้เครื่องช่วยฟังมาก่อนหรือไม่, ประวัติการได้ยินผิดปกติในญาติ


ตัวแปรต่างๆ เราจะต้องทำความเข้าใจมันก่อนว่ามันเป็นตัวแปรแบบไหน ทั้งนี้เพื่อที่จะได้รู้ต่อไปว่า ควรจะแปลความหมายมันอย่างไร จะแสดงผลเป็นกราฟแบบไหน จะใช้การทดสอบทางสถิติตัวไหนมาทดสอบความแตกต่างในแต่ละกลุ่ม และจะแปลความหมายผลการทดสอบนั้นอย่างไรครับ


ตัวแปรที่พบกันบ่อยๆ นั้นสามารถแยกได้สองกลุ่มใหญ่ๆ นั่นคือ



  • ตัวแปรแบบกลุ่ม (Categorical Data) พวกนี้ แต่ละกลุ่มก็มีความหมายของตัวมันเอง ซึ่งแบ่งย่อยได้สองกลุ่ม คือ

    • Nominal แต่ละกลุ่มเป็นอิสระต่อกัน ไม่ค่อยเกี่ยวกัน ไม่เป็นลำดับ (order) เช่น เพศ รูปแบบเพลงที่ชอบเล่น (พูดง่ายๆ คือไม่ใช่ว่าเพศหญิงมีค่ามากกว่าเพศชาย หรือเพลงร็อกมีความมายมากกว่าเพลงเพื่อชีวิต) สำหรับตัวแปรชนิดนี้ ถ้ามีสองคำตอบ เช่น ใช่ หรือไม่ใช่ จะเรียกว่าเป็น Dichotomous หรือ Binary ครับ เช่นในตัวอย่างที่ผมยกนั้นคือตัวแปรที่บอกว่า "เคยใช้เครื่องช่วยฟังมาก่อนหรือไม่" นั้นคำตอบมีแค่ "ใช่" กับ "ไม่ใช่" เป็นต้นครับ

    • Ordinal พวกนี้จะมีลำดับขั้น แต่ไม่สามารถบอกได้ว่าขั้นไหนมากกว่าขั้นไหนได้อย่างชัดเจน (คือแต่ละขั้นมันอาจไม่เท่ากันก็ได้) ยกตัวอย่างพวกนี้เช่น ระดับความดังของเสียงผิดปกติของหัวใจ (เกรด I, II, III, ฯลฯ) ก็ไม่ได้หมายความว่า เสียงหัวใจเกรด II มากกว่าเกรด I ซักเท่าไหร่ เป็นต้น



  • ตัวแปรแบบช่วง (Interval Data) พวกนี้มักจะมีลำดับขั้นของมัน และเป็นลำดับขั้นที่แบ่งอย่างเท่าๆ พอๆ กัน แบ่งออกอีกเป็นสองกลุ่มครับ

    • Continuous ง่ายๆ คือพวกนี้เป็นตัวแปรที่สามารถจุดย่อยลงไปได้อีกเรื่อยๆ เช่น ระดับการได้ยินมีทั้งได้ยินที่ 25 dB, ได้ยินที่ 40.0056 dB เป็นต้น บางคนยังได้แยกตัวแปรที่มี "ศูนย์ที่แปลว่าไม่มี" ออกไปอีกเรียกว่า Ratio ครับ เช่นความยาวของขน (ยาว=0 หมายถึงไม่มีความยาวจริงๆ) เป็นต้น

    • Discrete คือเป็นสเกลที่แบ่งชัดเจน พวกนี้มีระยะห่างกันชัด (หรือสเกลแต่ละช่วงไฟมันเท่ากัน) ครับ เช่น จำนวนบุตร ก็ตอบ 1 2 3 4 ไม่มีใครตอบ 1.25 และเราก็รู้ว่า 2 มากกว่า 1 อยู่ 1 คน, 4 มากกว่า 1 อยู่ 3 คน เป็นต้นครับ




พอจะเข้าใจไหมครับ ยังไงลองมาคิดดูนะครับ ว่าตัวแปรต่อไปนี้เป็นตัวแปรแบบไหน



  • น้ำหนักของผู้ป่วย เช่น 60kg, 50.25kg, 40.7kg, ...

  • จำนวนบล็อกที่ผมเขียนในแต่ละเดือน เช่น 0, 1, 3, ...

  • จำนวนก้อนมะเร็งที่คอ เช่น 1 ก้อน, 2 ก้อน, 0 ก้อน, ...

  • ชนิดของมะเร็งที่ศีรษะที่พบในคนไทย เช่น มะเร็งโพรงจมูก, มะเร็งต่อมน้ำลาย, มะเร็งกล่องเสียง...

  • ลักษณะของเม็ดเลือดแดงที่ผิดปกติ เช่น 1+, 3+, 4+, ...


.

.

.

.

.

.

เฉลยนะครับ



  • น้ำหนัก เป็น continuous interval data ครับ เพราะมันสามารถจุดย่อยลงไปได้เรื่อยๆ และมีความหมาย นอกจากนี้ถ้าแยกย่อย มันก็คือ ratio เพราะมันมี 0 แท้จริงครับ (0 kg = ไม่มีน้ำหนัก)

  • จำนวนบล็อก เป็น discrete interval data ครับ เพราะไม่มีเขียนบล็อก 1.05 บล็อกแน่ๆ แต่ความแตกต่างระหว่างเขียน 3 กับ 2 บล็อก มันเหมือนกันกับความแตกต่างระหว่างเขียน 8 กับ 7 บล็อก (นั่นคือ สเกลมันเท่ากันตลอดนั่นเอง)

  • จำนวนก้อนมะเร็งที่คอ เป็น discrete interval data เหมือนกัน

  • ชนิดของมะเร็ง เป็น nominal เพราะไม่รู้ว่าจะเรียงมะเร็งอันไหนมาก่อนมาหลังดี มันก็สำคัญเท่าๆ กันไปหมด

  • ลักษณะของเม็ดเลือดแดง เป็น ordinal ครับเพราะว่า เรียงได้ 0 1+ 2+ 3+ 4+ แต่ว่า 1+ เทียบกับกับ 0 อาจจะไม่เท่ากับ 4+ เทียบ 3+


งงไหมครับ จริงๆ รู้แค่ว่าเป็น continuous หรือ categorical ก็เพียงพอต่อการเลือกสถิติเข้าใช้ครับ ไว้ต่อไปผมจะเขียนเรื่องที่เกี่ยวข้องนะครับ :)

15 สิงหาคม 2552

คำนวณ Sample Size ใน RCT

ปัญหาอย่างหนึ่งที่ผู้ทำวิจัยเกือบทุกคนจะต้องเจอ คือการคำนวณหาขนาดของกลุ่มตัวอย่าง (Sample Size) ที่จะทำการวิจัยครับ

ทำไมเราจึงต้องคำนวณขนาดของกลุ่มตัวอย่าง? นั่นเป็นเพราะว่าเราต้องการจะเก็บข้อมูลอย่างมีประสิทธิภาพให้ได้มากที่สุดครับ นั่นหมายความว่าเก็บจำนวนคนที่ร่วมวิจัยให้ได้น้อยที่สุด ในขณะเดียวกันก็ต้องให้ข้อมูลอย่างเพียงพอที่สุดที่จะตอบคำถามงานวิจัยได้

การเก็บจำนวนคนให้ได้มากๆ นั้นไม่ใช่ข้อดีเสมอไป นอกจากที่จะเปลืองทรัพยากรที่ใช้ เปลืองแรงคนเก็บ แล้วยังถือว่าเป็นการเปลืองตัวของคนไข้อีกด้วยครับ นั่นคือ เขาไม่จำเป็นจะต้องมาร่วมงานวิจัยก็ได้นั่นเอง (ซึ่งผิดหลักจริยธรรม หรือ Ethics)

ปัญหาของหลายๆ คนคือไม่ทราบว่าจะคำนวณขนาดตรงนี้ยังไงดี ผมขออธิบายง่ายๆ ก่อน ในกรณีของการศึกษาเปรียบเทียบการให้ยา (หรือให้ intervention อื่นก็ได้) สองกลุ่มเปรียบเทียบกันตามแบบ RCT 2 กลุ่มง่ายๆ ยกตัวอย่างเช่น ผมกำลังศึกษาเรื่องการให้ยาต้านไวรัส เทียบกับ placebo ในคนไข้ที่ได้รับการวินิจฉัยว่าเป็นไข้หวัด 2009 แล้วดูว่า อัตราการตาย มันลดลงหรือไม่นะครับ

สิ่งที่เราต้องมีอยู่ในมือมีสามอย่าง และมีในหัวอีกหนึ่งอย่างครับ

  • อย่างแรก ต้องมีอัตราการเกิด outcome ในกลุ่ม control นั่นคือ ต้องรู้ว่า คนที่ได้รับ placebo นั้น มีอัตราการตายเป็นเท่าไหร่ อันนี้จะหามาได้จากที่ไหน? เราอาจจะเทียบเคียงมาจากกลุ่มโรคใกล้ๆ กัน, หามาจากการศึกษาแบบ Cross sectional/Cohort หรือหามาจากการทำ Preliminary study (ลองศึกษาในผู้ป่วยจำนวนน้อยๆ 10-20 คน) ก็ได้ครับ


  • สิ่งถัดมา คือเราจะต้องรู้ว่าเราอยากจะเทียบให้มันต่างกันสักแค่ไหน ยกตัวอย่างเช่น เรารู้แล้วว่าคนปกติที่ได้ placebo นั้นมีอัตราตาย 1% เราอยากรู้ว่า ถ้าให้ยาต้านแล้วจะช่วยเปลี่ยนอัตรานี้เป็น 0.5% หรือเปล่า ตัวเลขนี้เป็นตัวเลขที่เรากำหนดเอาเองครับ โดยอาจจะเทียบเคียงกันกับความสำคัญทางคลินิก หรือดูจากหลายๆ การศึกษาในโรคอื่นๆ ที่ผ่านๆ มา ถ้าเราตั้งน้อยไป ก็จำเป็นจะต้องใช้ตัวอย่างมาก (เปรียบเหมือน ของที่มีขนาดเล็กๆ ต้องอยู่กันมากๆ ถึงจะเห็น ในขณะที่ของใหญ่ๆ อยู่กันไม่มากก็เห็นแล้ว)


  • อย่างสุดท้าย คือการกำหนดค่าทางสถิติที่จะใช้ นั่นคือค่า Alpha และ Beta Error ครับ โดยทั่วไปแล้ว Alpha = 0.05 และ Beta = 0.20


  • ส่วนสิ่งที่ต้องมีอยู่ในหัว ก็คือต้องนึกได้ว่าเรากำลังจะวิเคราะห์ข้อมูลแบบใด ซึ่งโดยง่ายๆ แล้วส่วนมากเราจะวิเคราะห์ข้อมูลที่จุดสิ้นสุดของ Trial เป็น Outcome ว่าตาย หรือไม่ตาย ส่วน Exposure เป็นได้ หรือไม่ได้ อันนี้การวิเคราะห์ที่ใช้นั้นใช้วิธีแบบ Pearson Chi-square test (ไว้เรื่องสถิติจะมาเขียนให้ฟังในภายหลังนะครับ)


เราลองมาทำความเข้าใจกับคำว่า Alpha, Beta Error กันนะครับ

เราจะสังเกตได้ว่า มีโอกาสที่ในความเป็นจริง (the truth) -- ในที่นี้คือความเป็นจริงแท้ของตัวโรค -- นั้นการให้ยาสองอย่างมันแตกต่างหรือไม่แตกต่าง และในการศึกษาเรา มันอาจจะแตกต่างหรือไม่แตกต่างกันก็ได้ นั่นหมายความว่า เราทำการศึกษาไปนั้น มีโอกาสที่จะเกิดเหตุการณ์ได้ 4 กรณี


  • ในกรณีที่ความเป็นจริงมันแตกต่างกันจริงๆ ส่วนเราศึกษาแล้วก็พบว่าแตกต่างจริงๆ ก็ไม่มีปัญหาอะไร แสดงว่าเราพบถูก (True positive)

  • ในกรณีที่ความเป็นจริงมันไม่แตกต่าง และเราศึกษาก็ไม่พบว่ามันแตกต่าง ก้ไม่มีปัญหาเช่นกัน (True negative)

  • ในกรณีที่ความเป็นจริงมันไม่แตกต่าง แต่เราดันศึกษาได้ว่ามันแตกต่าง (False Positive)

  • สุดท้าย ในกรณีที่ความเป็นจริงมันแตกต่าง แต่เราดันศึกษาแล้วพบไม่แตกต่าง (False Negative)



ปัญหามันอยู่ตรงที่ ถ้าเราสรุปจากการวิจัยได้ไม่ตรงกันกับความเป็นจริงแท้ของตัวโรค มันจะเป็นอย่างไร


  • ถ้าความเป็นจริง มันก็ไม่ได้แตกต่างอะไร แต่เราดันไปเจอว่ามันแตกต่างกัน (False Positive) อันนี้เราเรียกว่า Alpha error หรือตำราหลายๆ ที่จะเรียกว่า Type I error ครับ หมายความว่าจริงๆ การให้ยามันไม่ต่างหรอก แต่เราดันไปเจอด้วยโอกาสหรือความผิดพลาดอะไรก็แล้วแต่ แล้วดันสรุปว่าการให้ยามันดีกว่า

    ปกติแล้วโอกาสที่จะเกิด Alpha error นี้มักจะำกำหนดให้เป็น 0.05 หรือน้อยกว่า อันนี้ก็คือ Significant level ของเราหรือก็คือที่หลายๆ คนชอบบอกว่า p Value < 0.05 ถือว่า Significant นั่นเองครับ เช่น ผมศึกษาแล้วพบว่าการให้ยานั้นอัตราตายในกลุ่มได้ยา = 0.5% กลุ่มไม่ได้ยา = 1% แล้วพบว่า p Value = 0.05 พอดี นั่นหมายความว่า สิ่งที่ผมพบว่ามันแตกต่างนี้ มีโอกาสที่มันจะเกิดจากความฟลุ๊ค (โดยบังเอิญ) = 0.05 (หรือภาษาชาวบ้านก็คือ 5%)

    ทำไมต้องเป็น 0.05 (หรือ 5%) อันนี้ไม่มีใครตอบได้ครับ เพราะจริงๆ แล้วเราจะกำหนดที่เท่าไหร่ก็ได้ จะเอาโหดหน่อย 0.025 ก็ได้ แต่แน่นอนว่าถ้ายิ่งน้อยก็ยิ่งต้องการ Sample size เยอะขึ้นเรื่อยๆ ด้วยครับ


  • อันต่อมา ถ้าความเป็นจริงมันแตกต่างกัน แต่เราดันไม่พบความแตกต่างในการทำ Study (False Negative) อันนี้เราเรียกว่า Beta error หรือ Type II error ครับ เช่นยกตัวอย่างเดียวกัน ถ้าผมไม่พบว่ายาต้านไวรัสมันทำให้อัตราตายลดลง แต่ในความจริงแล้วมันดันทำให้ลดลงนั่นเอง

    ค่าโอกาสด้านกลับของ Beta (1 - beta) เราจะเรียกว่า Power ของการศึกษานี้ครับ (เหมือนว่าการศึกษาเรามี "พลัง" ในการ detect ความแตกต่างในธรรมชาตินี้ได้ซักเท่าไหร่) โดยทั่วไปเรากำหนด Beta = 0.2 เพราะฉะนั้นแล้วก็มักจะได้ Power = 1-0.2 = 0.8 นั่นเองครับ


เมื่อเรารู้ค่าต่างๆ เหล่านี้แล้วเราสามารถนำมาคำนวณขนาดของตัวอย่างได้ตามสมการสำหรับการคำนวณ n ใน trial ที่ใช้การวิเคราะห์เป็น Chi-square คือ



โดย

P0 = อัตราของ outcome ในกลุ่ม control
P1 = อัตราของ outcome ในกลุ่มที่ให้ intervention นั่นก็คือ อัตรา outcome ของ control - ความแตกต่างที่เราต้องการ detect
P bar = ค่าเฉลี่ยของ P0 และ P1 ก็คือ (P0+P1)/2
Z a/2 = ค่า Z ของ alpha error ในที่นี้ค่า Z a/2 ที่ alpha = 0.05 จะได้ 1.96 (แนะนำว่าของ study ทั่วไปก็เท่านี้ละครับ)
Z b = ค่า Z ของ beta error ในที่นี้ค่า Z b ที่ beta = 0.2 จะได้ 0.84 (แนะนำแบบเดียวกัน)
และ n ที่ได้ออกมานี้ เป็น n ของแต่ละกลุ่ม นะครับ นั่นหมายความว่าเรามีสองกลุ่ม (control/intervention) ก็ต้องคูณ 2 เข้าไปด้วยนะ

ถ้าค่า Z มันเหมือนกันทุกการศึกษา เราก็จะแทนสูตรได้แบบนี้ครับ:



เรามาลองคำนวณดูนะครับ

สมมติว่าผมทำการศึกษาด้วยการให้ยาต้านไวรัสในกลุ่มคนไข้ที่เป็นไข้หวัด 2009 โดยดู outcome คืออัตราการนอนโรงพยาบาล การศึกษาก่อนหน้านี้พบว่าอัตราการนอนโรงพยาบาลในกลุ่มที่ไม่ได้รับยานั้น = 15% และผมอยากรู้ว่าถ้าอัตรามันต่างกัน +- 5% (เป็นเลขสมมติของผมที่ผมคิดว่ามันน่าจะมีความสำคัญนะ ระหว่าง 15 กับ 10%) ที่ Type I error = 5% และ Type II error = 20% นี้ผมต้องใช้ Sample Size เท่าไหร่

เราก็เข้าสูตรมาเลยนะครับ ลองคิดดูกันก่อนนะครับ (ลองแทนก่อนแล้วค่อยดูเฉลยนะครับ)

.
.
.

จากโจทย์ เราจะได้ค่าต่างๆ คือ
P0 = 0.15
P1 = 0.15 - 0.05 = 0.10
Pbar = (P0+P1) /2 = (0.15+0.10) /2 = 0.125
Alpha = 0.05
Beta = 0.20

ดังนั้น เราจะสามารถแทนค่าในสูตรได้ดังนี้



นั่นคือ คำตอบ = 685 คนโดยประมาณในแต่ละกลุ่ม ซึ่งก็คือ คนทั้งหมด = 2*685 = 1370 คนนั่นเอง คิดได้เหมือนกันบ้างไหมครับ?

จริงๆ แล้วเราไม่ต้องมานั่งแทนค่าในสูตรเอาก็ได้ เดี๋ยววันหลังผมจะมาแนะนำวิธีการใช้โปรแกรมช่วยในการคำนวณนะครับ :D