ค้นหาข้อมูลในบล็อก (Search in this blog)

Wednesday, July 17, 2013

สัมประสิทธิ์แคปปา (Kappa coefficient)

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

Kappa coefficient หรือชื่อทางการคือ Cohen's kappa coefficient นั้นเป็นค่าสถิติที่ใช้ทดสอบความสอดคล้อง (Consistency) กันของข้อมูล 2 กลุ่ม ในบางกรณีอาจใช้สำหรับเปรียบเทียบการประเมินค่าของข้อมูลชุดเดียวกันจากผู้ประเมิน 2 คน โดย Kappa coefficient นั้นไม่จำเป็นต้องอาศัยสมมุติฐานที่ว่าข้อมูลที่สนใจนั้นมีการแจกแจงแบบปกติ (Normal distribution) หรือที่เรียกว่า Non-parametric statistic
ผลลัพธ์ที่ได้จาก Kappa coefficient นั้นจะอธิบายถึงความสอดคล้องระหว่างกันของ 2 ชุดข้อมูลนั่นเอง ฟังดูอาจ งง งง ผมขอยกตัวอย่างในงานการรับรู้จากระยะไกล (Remote Sensing) นั้นมักจะใช้การหาค่า Kappa coefficient  ประกอบการประเมินความถูกต้องของการจำแนกข้อมูล (Classification) กล่าวคือ เมื่อเราได้ค่าความถูกต้องของการจำแนกขข้อมูล (เช่น Overall accuracy) เมื่อเทียบกับข้อมูลอ้างอิงแล้ว เราต้องการแสดงระดับของความสอดคล้อง (Agreement) ระหว่างข้อมูลอ้างอิงและผลการจำแนกข้อมูลที่ได้จากการทดลองด้วยวิธีการจำแนกแบบต่างๆ เราก็จะใช้เจ้าค่า Kappa coefficient นี่เองเป็นตัวบ่งชี้ (คล้ายกับระดับความเชื่อมั่น เน้น นะครับ แค่ "คล้าย")

ส่วน Pearson correlation coefficient นั้นจะต้องอาศัยสมมุติฐานที่ว่าข้อมูล 2 ชุดข้อมูลที่นำมาเปรียบเทียบกันนั้นมีความสัมพันธ์เชิงเส้นระหว่างกัน (Linear correlation) ซึ่งก็หมายถึง ต้องมีการขึ้นต่อกัน (Dependency) ระหว่างชุดข้อมูล โดยค่าที่ได้จากการคำนวณ Pearson correlation coefficient จะบ่งบอกความสัมพันธ์ระหว่างของชุดข้อมูลว่ามีทิศทางอย่างไร (ระหว่าง -1 ถึง +1)

ประเด็นที่น่าสนใจคือ แล้วเราจะใช้เจ้า Kappa coefficient และ Pearson correlation coefficient ตอนไหน ตรงนี้จากประสบการณ์ผมคิดว่า เราต้องดูสมมุติฐานงานวิจัยของเรา ว่า เราสนใจในประเด็นใด เช่น พฤติกรรมหรือแนวโน้มของข้อมูล (Pearson correlation coefficient ) หรือดูความสอดคล้องระหว่างกันของข้อมูล ((Kappa coefficient)

Monday, July 8, 2013

การตัดข้อมูลภาพด้วย gdalwarp

วันนี้ขอเสนอวิธีการตัดข้อมูลภาพด้วย gdalwarp ตัวอย่างของปัญหาคือ ผมมีข้อมูลภาพดาวเทียมหลายภาพ (อาจมาจากหลากหลายช่วงเวลาหรือหลายแหล่งข้อมูล) ความต้องการของผมคือ ผมต้องการใช้แค่บางส่วนของภาพเหล่านั้น เช่น พื้นที่ศึกษาของผมนั้นเป็นส่วนหนึ่งของภาพดาวเทียม หากนำเอาข้อมูลทั้งภาพไปประมวลผลจะทำให้เกินความจำเป็นและเสียเวลาในการประมวลผลข้อมูลเพิ่มมากขึ้น โดยทั่วไปแล้วเราสามารถแก้ปัญหานี้ได้โดยการตัดภาพออกเป็นส่วนย่อยๆ หรือ เลือกเอาเฉพาะพื้นที่ที่ต้องการโดยใช้เครื่องมือของโปรแกรม OpenEV ที่ Export --> Advance Options --> Interactive Options ที่สามารถเลือกได้หลายแบบทั้ง Windows Input หรือ Draw ROI แต่วิธีการดังกล่าวมีข้อจำกัดคือ สามารถทำได้ครั้งละหนึ่งไฟล์เท่านั้น ดังนั้นผมจึงขอเสนอวิธีที่จะช่วยลดเวลาจากการเรียกเปิดข้อมูลทีละภาพเพื่อทำการตัดข้อมูลเฉพาะพื้นที่ที่ต้องการโดยกาารใช้คำสั่ง FOR บน DOS และเจ้า gdalwarp ดังนี้

>>FOR %i IN (*.tif) DO gdalwarp -te xmin ymin xmax ymax input_files output_files

ตัวอย่างการใช้งานจริงดังนี้ครับ

C:\THEOS_PANSHARP>FOR %i IN (*.tif) DO gdalwarp -te 832600
1656400 835600 1659400 %i urban_%i

*** โดย "urban_" คือ prefix ที่ผมใส่ไว้ในหน้าไฟล์ผลลัพธ์เพื่อให้แยกความแตกต่างระหว่างไฟล์ต้นฉบับและไฟล์ภาพที่ตัดแล้ว เช่น ไฟล์ต้นฉบับ ผมมีหลายไฟล์ได้แก่ bt.tif, mt.tif, pca.tif, ihs.tif, mihs.tif, gs.tif, ehlers.tif, hpf.tif และ wvlet.tif ส่วนไฟล์ที่ตัดเอาเฉพาะพื้นที่ศึกษาหรือพื้นที่ที่ต้องการจะได้เป็นไฟล์ใหม่คือ
urban_bt.tif
urban_mt.tif
urban_pca.tif
urban_ihs.tif
urban_mihs.tif
urban_gs.tif
urban_ehlers.tif
urban_hpf.tif และ urban_wvlet.tif  ตามลำดับครับ