16 กุมภาพันธ์ 2552

ใช้โปรแกรม R ช่วยคำนวณ Odds Ratio

มีหลายคนเมล์มาถามผมเกี่ยวกับการคำนวณ Odds Ratio ที่ได้จากการศึกษา วันนี้ผมขอแนะนำโปรแกรมทางสถิติตัวหนึ่งที่นักสถิติและนักระบาดวิทยาหลายคนชอบใช้ นั่นคือโปรแกรม R ครับ

หลายท่านคงเคยได้ยินโปรแกรม SPSS (ซึ่งย่อมาจาก Statistical Package for the Social Sciences) มาแล้ว แต่ท่านทราบหรือไม่ ว่าท่านอาจจะกำลังใช้โปรแกรมนี้อย่างผิดกฎหมายอยู่! นั่นเป็นสิ่งที่ไม่ดีเลยครับ เรามาใช้โปรแกรมอื่นทดแทนโปรแกรมที่ผิดลิขสิทธิ์กันดีกว่า

โปรแกรม R นี้พูดแล้วก็เปรียบเสมือนเครื่องคิดเลขหนึ่งอันครับ โปรแกรมนี้สร้างโดยนักสถิติชาวนิวซีแลนด์ชื่อ Ross Ihaka และ Robert Gentleman ทั้งสองท่านนี้เห็นว่าโปรแกรมสถิติที่เราๆ ท่านๆ ใช้กันอยู่นั้นส่วนใหญ่จะมีราคาแพงถึงแพงหูฉี่ ก็เลยลองเขียนโปรแกรมขึ้นมาใช้เองดู และยังเผยแพร่โค้ดโปรแกรมออกมาอีกด้วย

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

พูดมานานแล้ว มาโหลดไปใช้กันดีกว่า เข้าหน้านี้ (http://www.r-project.org/) แล้วเลือกทำตามขั้นตอนต่อไปนี้เลยครับ

R_install1

1. เลือก Download ใต้หัวข้อ CRAN
2. เลือกสถานที่ที่ใกล้เราที่สุดเพื่อจะได้โหลดเร็วๆ (เมืองไทยก็มี) แต่แนะนำ Australia เพราะเมืองไทยมักไม่อัพเดต

R_install2

3. เลือกวินโดวส์ ถ้าคุณใช้วินโดวส์
4. เลือก base
5. เลือกอันที่ลงท้ายด้วย .exe ครับ (มันจะเป็นชื่อเวอร์ชั่นอยู่เช่นขณะที่ผมเขียนอยู่นี่มัน 2.8.1)

R_install3

6. ได้มาแล้ว ลงตามปกติเลยครับ

เมื่อเปิดโปรแกรมจะพบหน้าตาโปรแกรมดูโบราณๆ นิดนึง (เห็นโบราณแบบนี้แต่มันทรงพลังทีเดียวเลยล่ะ)

R_program1

สามารถลองพิมพ์ลงไปได้เลยครับว่าอยากจะให้มันคำนวณอะไร แล้วก็กด Enter

R_program2

ถ้าพิมพ์ผิดไม่ต้องกลัวมันไม่เจ๊งครับ มันก็แค่ขึ้น Error เท่านั้นแหละ แต่ถ้าพิมพ์ๆ ไปแล้วเป็นแบบนี้

> log(log(4)+sqrt(5)
+ |

นั่นเกิดจากว่าคุณใส่สูตรไม่จบ ส่วนมากเกิดลืมใส่วงเล็บ ก็แค่พิมพ์ ) เพิ่มไปแล้วกด Enter มันก็จะคำนวณให้ครับ

ฟังก์ชันที่ใช้นั้นก็มีหลากหลาย ตั้งแต่ธรรมดาๆ เชน log, sqrt (ย่อมาจาก square root), sin, cos, tan,… จนไปถึงฟังก์ชันทางสถิติเช่นพวกหา p-value จากค่า Chi-square เลยทีเดียวครับ (จนตอนนี้ผมใช้แทนเครื่องคิดเลขไปแล้วแหละ)

หมายเหตุนิดนึงว่าฟังก์ชัน log นั้นเป็นฐาน e นะครับ ถ้าต้องการฐานสิบ ก็พิมพ์ ,10 ในวงเล็บแบบนี้

> log(1,10)
[1] 0

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

ข้อดีของโปรแกรม R นี้นอกจากจะฟรีแล้วยังสามารถใส่ความสามารถอื่นๆ เข้าไปได้ ในวันนี้ที่ผมจะเอามาใช้คำนวณ Odds Ratio นั่นคือโปรแกรมเสริม EpiCalc โดยอาจารย์วีระศักดิ์จากมอ. เขียนไว้สำหรับทำงานด้านระบาด โดยเฉพาะเลยครับ

วิธีลงโปรแกรม Epicalc เพิ่มให้เราเลือกจากเมนูดังนี้

Epicalc_1

1. เลือก Packages –> Install Package(s)…
2. เลือกประเทศไหนก็ได้เหมือนเดิม (แนะนำ Australia เหมือนเดิมครับ)
3. จะเจอโปรแกรมเสริม (เรียกว่า package) มากมายก่ายกอง ให้เลือก epicalc ที่เราต้องการ

Epicalc_2

4. มันจะดาวน์โหลดมาให้เอง รอนิดนึงครับ

Epicalc_3

5. ดาวน์โหลดเสร็จแล้วยังใช้ไม่ได้ ต้องเลือก Load package… เพื่อเอามาใช้ก่อน
6. แล้วเลือก epicalc เหมือนเดิม

สำหรับขั้นที่ 5-6 นั้นต้องทำทุกครั้งหลังเปิดโปรแกรมใหม่นะครับ เอาละครับ ทีนี้มาลองใส่ข้อมูลกันเลยนะครับ

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

ในที่นี้ exposure คือการหยอดยา (exposure +) หรือไม่หยอดยา (exposure –) และ outcome ที่ผมสนใจคือหูยังเป็นโรคอยู่ (outcome +) หรือหูไม่เป็นโรคแล้ว (outcome –) ถ้าเขียนตารางก็ได้ดังนี้ครับ

study1

แต่แทนที่เราจะมานั่งคำนวณเอง เราก็สามารถใช้โปรแกรม R+Epicalc นี้คำนวณได้ โดยใส่ฟังก์ชันดังนี้

> csi(3,29,18,13)

          Exposure
Outcome    Non-exposed Exposed Total
  Negative 13          29      42  
  Positive 18          3       21
  Total    31          32      63


           Rne         Re      Rt  
  Risk     0.58        0.09    0.33 
                       Estimate Lower95ci Upper95ci
Risk difference (Re - Rne) -0.49    -0.72     -0.25   
Risk ratio                0.16     0.06      0.41    
Protective efficacy =(Rne-Re)/Rne*100  
                           83.9     59.14     93.73   
   or percent of risk reduced
Number needed to treat (NNT)2.05   1.39      3.97    
   or -1/(risk difference)                                          

เราก็จะได้มาหมดเลย อย่างในที่นี้ที่จะรายงานก็คือ Relative Risk (Risk Ratio) = 0.16 โดยมี 95%CI = 0.06-0.41 ครับ

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

> help(csi)

จะขึ้นข้อความช่วยเหลือให้ครับ

ลองใช้กันดูนะครับ ผมหวังว่าจะมีประโยชน์ ถ้าว่างวันหลังจะมาเขียนเพิ่ม

17 ความคิดเห็น:

  1. ขอบคุณคะ

    ตอบลบ
  2. ไม่ระบุชื่อ22/12/52 04:02

    ขอบคุณมากเลยครับคุณหมอ ผมกำลังเรียนปเอกอยู่เหมือนกันอะครับ
    ผมต้องใช้ program r ในการจำลองข้อมูลครับ ผมไม่มีความรู้เรื่องโปรแกรมนี้มาก่อนเลยอะ ผมควรจะเริ่มศึกษาจากหนังสือหรืออะไรดีครับสำหรับคนที่ไม่มีความรู้ และผมต้องใช้โปรแกรม WinBUGS ด้วยอะครับ คุณหมอรู้จักโปรแกรมนี้ไหมครับ ไม่ทราบว่าจะมีข้อแนะนำไรบ้างครับ
    e-mail ผม n_chanasuek@hotmai.com ครับ

    ตอบลบ
  3. สวัสดีครับ
    เรื่อง Bayesian Interference นี่ผมไม่ทราบเลยจริงๆ ครับ (ความรู้แทบไม่มี)
    ยิ่ง BUGS ยิ่งไม่ทราบใหญ่ แฮะๆ ยังไม่ได้เก่งสถิติถึงขั้นนั้นครับ
    เท่าที่ทราบคือโปรแกรมนี้โหลดได้ฟรี และเชื่อมต่อกับโปรแกรมอื่นๆ ได้ (R ก็ได้ครับ) ครับ ขออภัยด้วยนะครับ

    ตอบลบ
  4. ไม่ระบุชื่อ28/12/52 14:09

    I using R in my work, if you have interested project about R, can I help you na krub....I like R programing very much...

    (A: jamlonga@gmail.com (0867290199))

    ตอบลบ
  5. ดิฉันกำลังเรียนป.ตรี เอกสถิติ ต้องทำโปรเจคเกี่ยวกับโปรแกรมRแต่ไม่มีความรู้เรืองโปรแกรมนี้เลยอ่ะค่ะแต่รู้เกี่ยวกับโปรแกรม spss , miniteb และ instat ค่ะ พอจะมีรายละเอียดเกี่ยวกับการใช้โปรแกรมR เช่น เรื่องการทดสอบสมมติฐานต่างๆทางสถิติ วิเคราะห์ความแปรปรวน การสร้งกราฟ ตารางบ้างไหมค่ะหรืออื่นๆก็ได้ค่ะ ขอคำแนะนำด้วยนะค่ะkatae15@hotmail.com ขอบคุณสำหรับข้อมูลการดาวโหลดนะคร้า

    ตอบลบ
  6. สำหรับนักวิจัย นักศึกษาทุกระดับ ที่สนใจที่ปรึกษาโปรแกรม R ติดต่อได้ที่คุณเต้ 089-7766306 / amto15@hotmail.com ถ้าต้องการคำแนะนำเล็กๆ น้อยๆ ผมให้ได้ฟรีครับ

    ตอบลบ
  7. ขอบคุณครับ

    ตอบลบ
  8. ไม่ระบุชื่อ13/2/54 21:11

    (gift) คือดิฉันต้องการใช้ program r ในการจำลองข้อมูล และไม่มีความรู้เรื่องโปรแกรมนี้มาก่อนเลย ควรจะเริ่มศึกษาจากหนังสือหรืออะไรดีสำหรับคนที่ไม่มีความรู้ อยากทราบโค๊ดเกี่ยวกับการจำลองข้อมูลค่ะ ขอความกรุณาช่วยแนะนำด้วยนะคะ

    nu_giftsa_@hotmail.com

    ตอบลบ
  9. ต้องขอโทษจริงๆ ครับ ผมไม่ทราบด้าน Simulation เลยครับ

    ตอบลบ
  10. ดิฉันอยากใช้ โปรแกรม R ในเรื่องการคำนวณค่ะ
    สมมติเรากำหนด 1เป็นเพศชาย 2เพศหญิง มีคำสั่งไหนมั๊ยคะ พอให้ผลลัพธ์โชว์ออกมาว่า เพศชายกี่คน

    ตอบลบ
  11. คุณอรุณี
    ลองเปลี่ยนตัวแปรให้เป็นแบบที่เราเรียกว่า factor นะครับ จะสามารถกำหนด label ได้ ลองดูตัวอย่างในนี้ประกอบนะครับ https://www.stat.berkeley.edu/classes/s133/factors.html

    ตอบลบ
  12. replica bags joy Clicking Here h6r36j5p53 replica bags pakistan this hyperlink p8z48n8e80 replica bags china replica bags in gaffar market replica bags los angeles click here for more h6s36r9m05 replica bags hermes

    ตอบลบ

ช่วยแสดงความคิดเห็นเกี่ยวกับบทความนี้ด้วยนะครับ
Please leave your comments about this topic.