NESDC เปิดให้ประชาชนทั่วไปสามารถเข้าถึงข้อมูลโครงการและงบประมาณที่ถูกนำเสนอภายใต้พรก.กู้เงินเพื่อเยียวยา COVID-19 คำว่า “เปิด” ก็คือดาวน์โหลดเป็น csvไม่ได้อยู่ แต่ให้นั่งเปิดเว็บไซต์ AJAX ล้ำๆดูทีละหน้าเป็นจำนวน 2,248 หน้ารวมทั้งสิ้น 33,716 โครงการเอาเอง (สถานการณ์ ณ วันที่ 2020–06–12)
วิเคราะห์ข้อมูลง่ายนิดเดียว (ที่เหลือยากหมด)
ทุกปัญหาแก้ได้ด้วยเทคโนโลยี เราสามารถทำการ scrape ข้อมูล ThaiME เท่าที่มีอยู่ได้ง่ายๆดังต่อไปนี้:
rows=[]
for chunk in tqdm.tqdm_notebook(range(12)):
url = f'http://nscr.nesdb.go.th/wp-admin/admin-ajax.php?action=wp_ajax_ninja_tables_public_action&table_id=11868&target_action=get-all-data&default_sorting=old_first&skip_rows=0&limit_rows=0&chunk_number={chunk}'
with requests.get(url) as r:
content = eval(r.content)
rows+=[i['value'] for i in content]
thaime = pd.DataFrame(rows).iloc[:-3,:]
thaime.columns = ['id','plan_nb','project_name',
'budget','unit','ministry','province','created_date','details_url']
thaime.to_csv('data/thaime_raw.csv',index=False)
วิบากกรรมยังไม่จบสิ้น ข้อมูลทั้งหมด 33,716 แถว (พูดให้ถูกคือ 33,719 แถวแต่สามแถวสุดท้ายดูไม่ใช่โครงการจริง) ถูกจัดเตรียมโดยใช้หลักการ machine unreadable อย่างแท้จริง กล่าวคือวิเคราะห์อะไรด้วยคอมพิวเตอร์ไม่ได้เลย
ก่อนที่เราจะสามารถวิเคราะห์ว่ามีโครงการอะไร-จากหน่วยงานไหน-เป็นเงินเท่าไหร่ เราต้องจัดการชุดข้อมูลให้เรียบร้อยก่อนดังต่อไปนี้
- เปลี่ยน
budget
ให้เป็นตัวเลข มี 4 โครงการที่ไม่มีตัวเลข (รอจัดสรรจากกระทรวง, รอเป้าหมายและงบประมาณจากส่วนกลาง, ฯลฯ) - ทำความสะอาดตัวอักษร
\
,nan
,-
,\n
- เปลี่ยนวันที่ให้เป็นสากล เช่น 2020–06–05
- ดึง URL ออกจาก html tag
หลายท่านอาจจะคิดว่าเราคิดเล็กคิดน้อยเหลือเกิน แต่สิ่งเหล่านี้คือวิบากกรรมแห่งการวิเคราะห์ข้อมูลโดยแท้ ยกตัวอย่างเช่นการไม่เปลี่ยน budget
เป็นตัวเลขส่งผลให้แม้แต่ในเว็บไซต์ของ ThaiME หากคุณอยากรู้ว่าโครงการไหนมีงบประมาณเยอะที่สุดคุณกดเรียงจากมากไปน้อยจะได้แบบนี้
ความท้าทายในอีกระดับคือชื่อกระทรวงและหน่วยรับงบประมาณ (ministry
และ unit
) หนึ่งชื่อสามารถเขียนได้หลากหลายแบบ เช่น
แทบเป็นไปไม่ได้เลยที่เราจะวิเคราะห์ว่ากระทรวงหรือหน่วยงานไหนเสนอโครงการเป็นงบประมาณเท่าไหร่หากเราไม่จัดการกับ “ชื่อหลากหลาย” เหล่านี้
เราทำความสะอาดข้อมูลที่ได้มาเท่าที่ทำได้ แต่ก็ยังมีบางอย่างที่ไม่สามารถทำอะไรได้จริงๆคือ จังหวัด (province
) ซึ่งเข้าใจว่าคือพื้นที่โครงการ มีตั้งแต่เป็นชื่อจังหวัดใดจังหวัดหนึ่ง, X จังหวัดภาค Y, ทุกจังหวัด และบางสถานที่ที่มองยังไงก็ไม่น่าใช่จังหวัด
นี่ถือเป็นปัญหาที่รุนแรงที่สุดของชุดข้อมูลนี้ เห็นได้ว่าแม้แต่ ThaiME เองก็ไม่สามารถแสดงผลงบหรือจำนวนโครงการในรูปแบบแผนที่ได้เนื่องจากความผิดพลาดของการลงข้อมูล
ข้อมูลอีกประเภทหนึ่งที่น่าเสียดายสำหรับชุดข้อมูล ThaiME นี้คือรายละเอียดของแต่ละโครงการที่ถูกเก็บไว้ใน Google Drive พร้อม URL ให้ไปดาวน์โหลดเอาเอง (ไม่แน่ใจว่าผิดข้อตกลงการใช้งานไหม) ทั้งๆที่สามารถใส่เป็นส่วนหนึ่งของข้อมูลที่เครื่องอ่านได้ดังเช่นข้อมูลอื่นๆ
ปัญหาเหล่านี้เกิดจากการไม่คำนึงถึงประเภทของข้อมูลที่ต้องการนำมาใช้ในการวิเคราะห์ เป็นการเก็บข้อมูลเพื่อเก็บ ไม่ใช่เก็บเพื่อไปใช้ประโยชน์ เราจึงขอนำเสนอแบบฟอร์มเก็บข้อมูลที่น่าจะได้ข้อมูลที่ง่ายต่อการวิเคราะห์มากกว่าดังนี้ (ดูตัวอย่างที่นี่)
- กำหนด format ของข้อมูลที่ต้องการให้ชัดเจน เช่น งบประมาณต้องใส่เป็นตัวเลขเท่านั้น
- หลีกเลี่ยงการใช้ free text เท่าที่จะทำได้ เช่น ชื่อกระทรวง, หน่วยงาน และจังหวัด ควรให้เลือกจากตัวเลือกที่กำหนดขึ้น (อาจจะเลือกมากกว่าหนึ่งตัวเลือกก็ได้)
- หลีกเลี่ยงการเก็บข้อมูลเป็นรูปถ่ายหรือ PDF ควรเก็บข้อมูลทั้งหมดเป็นข้อความหรือตัวเลข นอกจากจะเป็นการทำงานซ้ำซ้อนแล้วยังทำให้เสียข้อมูลอันมีค่าไปอย่างมหาศาล
โครงการเยอะแค่ไหน-ใช้งบประมาณเท่าไหร่
ข้อมูล ณ วันที่ 2020–06–12 บ่งบอกว่ามีโครงการถูกนำเสนอมา 33,716 โครงการจาก 38 กระทรวงนับเป็นงบประมาณทั้งหมดประมาณ 8.29 แสนล้านบาท โดยที่กว่า 30,000 โครงการมาจากกระทรวงมหาดไทย
แต่นั่นไม่ได้หมายความว่างบประมาณ 90% จะถูกแบ่งไปให้กระทรวงมหาดไทยแต่อย่างใด จะเห็นได้ว่ามี 3 กระทรวงที่ได้งบมากกว่ากระทรวงอื่นๆอย่างมีนัยยะสำคัญนั่นคือมหาดไทย (28%), สำนักนายกรัฐมนตรี (24%) และเกษตรและสหกรณ์ (20%)
เหตุที่สำนักนายกรัฐมนตรีได้งบประมาณถึง 1.96 แสนล้านบาทนั้นเนื่องจากมี 1 แสนล้านบาทสำหรับ “โครงการพลิกฟื้นธุรกิจ SME ที่เป็น NPL ให้กลับมาดำเนินธุรกิจได้” อันเป็นโครงการที่ได้รับงบประมาณมากที่สุดจากทุกโครงการนั่นเอง
เฉลี่ยตกโครงการละเท่าไหร่
โครงการส่วนใหญ่มีงบประมาณอยู่ในช่วง 6–7 หลักโดยมี “โครงการพลิกฟื้นธุรกิจ SMEฯ” เป็นเพียงโครงการเดียวที่แตะหลัก 1 แสนล้าน ส่วนโครงการ 4 หลักโครงการเดียวที่ถูกเสนอมาคือ “โครงการขุดสระเก็บน้ำบ้านหมอแปง หมู่ที่ 4 ขุดดินด้วยเครื่องจักร กว้าง 6 .00 ม. ยาว 6.00 ม. ลึกเฉลี่ย 2.00 ม. หรือปริมาณดินขุดไม่น้อยกว่า 136 ลบ.ม.” ด้วยงบประมาณ 8,700 บาท
หากเจาะลึกลงไปถึงการกระจายตัวของงบประมาณในระดับกระทรวงจะเห็นได้ว่างบประมาณต่อโครงการของกระทรวงการคลังและสำนักนายกฯสูงกว่ากระทรวงอื่นเนื่องจากส่วนใหญ่เป็นโครงการที่มีสเกลใหญ่กว่า ต่างจากกระทรวงมหาดไทยที่เน้นโครงการขนาดเล็กเป็นจำนวนมาก
คำยอดนิยมในการเขียนชื่อโครงการ
เรานำชื่อโครงการทั้งหมดกว่าสามหมื่นโครงการมาวิเคราะห์ดูว่าคำไหนปรากฎออกมาเยอะที่สุด ผลลัพธ์ไม่เกินความคาดหมายคือที่เกี่ยวกับ “การก่อสร้าง” และ “ถนน” ซึ่งเป็นโครงการของกระทรวงมหาดไทยแชมป์มากโครงการนั่นเอง
จำนวนโครงการเยอะ = ได้งบเยอะ?
หากมองจากความถี่ของคำด้านบนเราอาจสรุปได้ว่าโครงการ “การก่อสร้าง” และ “ถนน” น่าจะได้รับงบประมาณอย่างล้นหลาม แต่ความเป็นจริงคืออะไร
เราจะเห็นได้ว่าแม้โครงการ “ก่อสร้าง” และ “ถนน” จะนับเป็นจำนวนเกือบครึ่งหนึ่งของโครงการทั้งหมด แต่งบประมาณที่จัดสรรไปเป็นเพียงประมาณเกือบ 10% ของงบประมาณทั้งหมดเท่านั้น
แล้วไงต่อ
นี่เป็นเพียงจุดเริ่มต้นเท่านั้น คุณยังสามารถหาสิ่งน่าสนใจจากชุดข้อมูลนี้ได้อีกมากมาย เช่น
- นอกจาก “ก่อสร้าง” และ “ถนน” แล้วมีโครงการประเภทไหนที่น่าสนใจอีก (“คลอง”, “เกษตร”, “ชุมชน”, ฯลฯ) เช่น “คน vs ของ” โดยคุณสฤณี อาชวานันทกุล
- เขียนชื่อโครงการยังไงให้ได้งบประมาณเยอะๆ
- ไม่ดูแค่ในระดับกระทรวงแต่ลงลึกไปถึงระดับหน่วยงานว่ามีโครงการอะไรบ้าง-ได้งบประมาณเท่าไหร่
- ดึงข้อมูลออกจาก PDF
- หรือแม้แต่ทำความสะอาดข้อมูล “จังหวัด” จนใช้งานได้
ท้องฟ้าเท่านั้นคือขีดจำกัด แล้วจะรออะไรอยู่ล่ะ ไปดาวน์โหลด csv ที่ทำความสะอาดมาแล้ว(เท่าที่จะทำได้) ได้ที่นี่เลย