Astronaut Missions-Data Analysis by Python

Mono Tet
botnoi-classroom
Published in
5 min readAug 13, 2020

Team member :
1. K’ M
2. K’ Bean
3. K’ San Hort.
4. K’ M17
5. K’ Jem
6. K’ Big
7. K’ Mui
8. K’ Vickie
9. K’ Saranya
10. K’ Mon
11. K’ Kaew

Objective : บทความนี้เป็นส่วนหนึ่งของ Data Science Essential ของ Boinoi Classroom หัวข้อ Data Analytic

สวัสดีค่ะ ทุกๆท่านที่ได้เข้ามาอ่านบทความนี้ ซึ่งเป็นของเรากับเพื่อนๆกลุ่ม 12 (นักเรียน BotNoi รุ่นที่2) บทความนี้จะเกี่ยวข้องกับการทำ Data Analysis ในหัวข้อที่เกี่ยวกับ นักบินอวกาศ ซึ่งใช้ข้อมูลมาจากโปรคเจคๆหนึ่งของ R4DS ตามลิ้งค์ข้างล่างนี้ และหลังจากเราได้คลังข้อมูลที่ต้องการแล้ว ก็ทำการวิเคราะห์ข้อมูลด้วย การ coding ใช้ภาษาpython ใน Colab via google ค่ะ

https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-07-14/astronauts.csv

0. จุดประสงค์ของการวิเคราะห์ข้อมูล

  • จำแนกประเทศ องค์กร ที่มีนักบินอวกาศ มากที่สุด
  • สัดส่วนความเท่าเทียมทางเพศเป็นอย่างไรบ้าง
  • ฝึกการคิด วิเคราะห์ข้อมูลให้มีประสิทธิภาพ โดยใช้ Python เป็นภาษาหลัก

1. เริ่มต้นด้วยการดึงข้อมูลกันก่อน

โดยใช้ Python code ดึงจาก url เว็บของdata baseนั้น ก็จะได้ตารางข้อมูลที่มีหน้าตาตามด้านล่างนี้

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

มาดูกันว่าข้อมูลที่ได้นั้นมีอะไรบ้าง จากการดู column โดยcodeนี้

3.เริ่มสร้างฐานข้อมูลกันดีกว่า

จากข้อมูลที่ได้มา พวกเราพบว่ามีรายชื่อของนักบินอวกาศในแต่ละแถวมีการซ้ำกันอยู่เยอะมาก เราจึงต้องทำการตัดรายชื่อซ้ำออก ด้วยโค้ด drop_duplicates(‘name’, keep=’first’) โดยอ้างอิงจากภารกิจแรกที่นักบินอวกาศคนนั้นๆ ได้ปฏิบัติการเป็นครั้งแรก ทั้งนี้ทั้งนั้น เราอาจจะกลับมาใช้ข้อมูลเดิมที่ไม่ได้ตัดชื่อซ้ำได้ หากต้องการวิเคราะห์ข้อมูลที่เกี่ยวข้องกับ อายุ และ ภารกิจอื่นๆ

ตอนนี้เราก็จะเหลือแถวที่รายชื่อไม่ซ้ำกันแล้ว จาก 1277 แถว เหลือ 564 แถว

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

ถัดไปคือแยกกลุ่มเพศและอายุ

จากข้อมูลของกราฟแท่ง แสดงให้เห็นว่า ช่วงอายุที่นักบินส่วนใหญ่ได้ถูกคัดเลือกนั้น ส่วนมากจะมีช่วงอายุ 30–40 ปี และที่ได้ทำภารกิจส่วนใหญ่จะเฉลี่ยอยู่ที่ 35–47 ปี

สุดท้ายคือการจัดข้อมูลแยกตามกลุ่มสัญชาติ

4. การหาคำตอบจากข้อมูล

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

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

จากกราฟแท่ง เราจะเห็นได้ว่ามีนักบินอวกาศที่มีสัญชาติอเมริกันมากที่สุด และรองลงมาคือรัสเซีย

ต่อไปก็หาสัดส่วนนักบินเพศหญิง และเพศชาย

ผลออกมาตามที่ทุกคนคาดเดาไว้ก็คือ จะมีนักบินที่เป็นเพศชายมากกว่าเพศหญิง

แล้วนักบินส่วนใหญ่ มาจากทหารหรือพลเรือนมากกว่ากัน? มาดูกันตามโค้ดด้านล่างนี้

ต่างกันในระดับหนึ่งแต่ก็ไม่มากนะ แสดงว่า ไม่ได้เป็นทหารก็มีสิทธิ์เป็นนักบินอวกาศได้เหมือนกัน

แล้วถ้าเป็นนักบินผู้หญิงล่ะ จะมาจากทหารหรือพลเรือนมากกว่ากัน?

นักบินที่เป็นผู้หญิงส่วนมากมาจากพลเรือน ซึ่งแตกต่างจากนักบินผู้ชายที่ส่วนมากมาจากทหารนะ

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

อายุตอนทำภารกิจVS เวลาในการทำภารกิจ

รู้ข้อมูลเรื่องเกี่ยวกับเพศไปแล้ว มาดูเรื่องอายุและชั่วโมงการทำภารกิจบ้างดีกว่า

จากข้อมูลของกราฟด้านบน จะเห็นได้ว่าช่วงอายุที่ใช้เวลาทำภารกิจนานๆนั้นไม่ได้ต่างกันมากมาย

  • แอบผิดหวังที่ไม่มี correlation กันเลย
  • แต่จะสังเกตุได้ว่าด้านบนๆ จะมีแต่สีเขียวกับสีม่วง หรือก็คืออาชีพ commander กับ flight engineer
  • อาจเป็นเพราะไม่ได้ขึ้นอยู่กับอายุเท่าไหร่ แต่เป็นเพราะหน้าที่ในแต่ละ missionมากกว่าหรือเปล่า?

มาดูข้อสงสัยเรื่องอาชีพ commander กับ flight engineer กันให้กระจ่างขึ้นโดยใช้ tick labels chart

จะเห็นได้ว่า สองประเทศนี้ใช้เวลาทำภารกิจ ได้มากที่สุด

แล้วอาชีพอื่นๆล่ะ??

ไม่ค่อยต่างกันเท่าไหร่

สรุปเวลาภารกิจ

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

5. ชุดคำถามใหม่หลังจากเห็นผลลัพธ์แรก

5.1 ภารกิจส่วนใหญ่เกิดขึ้นในปีอะไร
5.2 เฉลี่ยแล้วช่วงเวลาภารกิจถัดไปจากภารกิจแรกของนักบินแต่ละเชื้อชาติจะห่างกันกี่ปี

ลองมาCoding ด้วย การกรองข้อมูลและจัดกลุ่มโดย groupby() และ reset_index() กัน

จะเห็นได้ว่ามีภารกิจเกิดขึ้นมานานแล้วตั้งแต่ปี 1961 จนถึง ปัจจุบัน
และปีที่มีการปฎิบัติภารกิจมากที่สุดคือปี 1985 และ เกิดขึ้นต่อเนื่องจากปี 1990–1998 (เทคโนโลยีสมัยนั้นก้าวหน้ากว่าไทยเรามากๆเลยล่ะ><)

แล้วค่าเฉลี่ย ระยะเวลาการปฏิบัติภารกิจถัดไปจากภารกิจแรกของนักบินแต่ละเชื้อชาติ จะห่างกันเท่าไหร่ล่ะ

เฉลี่ยแล้ว อเมริกาและรัสเซีย ยังคงทำได้ดีในเรื่องนี้เหมือนเดิม โดยระยะห่างจากภารกิจแรกน้อยมาก ที่เป็นแบบนี้เพราะใน1ปี สองประเทศนี้มีมากว่า2ภารกิจเสียอีก!
โซนเอเชียเราอย่างญี่ปุ่นและจีนก็ไม่น้อยหน้านะ ทิ้งระยะเวลาในการพัฒนาไม่เกิน5ปี

มาดูกันว่าสัญชาติอื่นๆ ทำภารกิจในปีไหนกันบ้าง

อเมริกาและรัสเซียยังคงท๊อปฟอร์มอย่างต่อเนื่อง

หลายๆประเทศที่รองลงมาได้มีการพัฒนาเรื่องอวกาศ ตั้งปี2000ขึ้นไป จนถึงปัจจุบันเลย เห็นแบบนี้แล้ว อยากให้ประเทศไทยเราทำแบบพวกเขาได้บ้างเลยล่ะ

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

สรุปได้ว่า

  • Nationality ไม่ได้บอกถึงประเทศ ของโครงการทางอวกาศ แต่จะเป็นตัวชื่อโครงการ ที่บอกข้อมูลของการพัฒนาทางอวกาศของประเทศนั้นๆ ซึ่งต้องนำชื่อโครงการไปหาข้อมูลจากภายนอกต่อไป

เราเลยลองวิเคราะห์ โดยกรองชื่อที่เราคุ้นเคยกันดีคือ “NASA” ที่ทราบอยู่แล้วว่าเป็นโครงการของทางฝั่งอเมริกา ว่ามีนักบินและภารกิจทางอวกาศเป็นสัดส่วนที่แท้จริงเท่าไหร่

ก็จะได้หน้าตา ตารางข้อมูลดังนี้

จากข้อมูลข้างต้นจะเห็นได้ว่านักบิน ในสังกัดที่คาดว่าจะมาจากอเมริกา โดยค้นหาคำว่า NASA ใน คอลัมน์ selection มีจำนวนเกินครึ่งของนักบินทั้งหมด

6. สรุปผล

  • data analytic มีความสำคัญอย่างมากในการหา insight เพื่อตอบคำถามที่เราต้องการในเบื้องต้น
  • Data analyst ที่ดีต้องตรวจสอบข้อมูลดิบที่ได้ อย่างละเอียด รอบคอบ และ clean ข้อมูล ก่อนจะนำไปทำการ analyze
  • ข้อจำกัดของ data analytic คือ การโต้ตอบกับมนุษย์ที่มองเห็นได้มากที่สุดเพียง 3 มิติเท่านั้น เช่นข้อมูลที่ได้มานี้ รายละเอียดยังไม่ได้ลงลึกมาก ยังไม่สามารถทำนายผลเพิ่มได้

สรุปคำตอบทั้งหมด จากข้อ 2.1 การตั้งคำถาม…อยากรู้ว่า

  • ถ้าลูกของคุณฝันอยากเป็นนักบินอวกาศ ควรส่งไปทำงานที่ไหนจะได้อยู่บนอวกาศนานๆ
    คำตอบคือ : จากข้อมูลที่ได้คือ ควรจะไปสมัครหรือเริ่มฝึกงานในอเมริกา
  • อายุยิ่งเยอะ จะทำให้เวลา total Mission hour ลดลงด้วยหรือไม่
    คำตอบคือ : ไม่ค่อยมีผลเท่าไหร่ ที่มีผลจริงๆคืออาชีพ ในแต่ละภารกิจมากกว่า
  • ประเทศที่มีจำนวนนักบินอวกาศเยอะที่สุด
    คำตอบคือ : อเมริกา และรองลงมาคือรัสเซีย
  • แนวโน้มของการผลิตนักบินอวกาศ (ประเทศไหนมาแรง)
    คำตอบคือ : อเมริกาไง จะใครล่ะ!
  • สัดส่วนของทหารและพลเรือนที่เป็นนักบินอวกาศ
    คำตอบคือ : จากกราฟที่ได้ จะมาจากทหารมากกว่านะ
  • ประเทศไหนที่มีสัดส่วนของนักบินเพศหญิงมากที่สุด
    คำตอบคือ : อเมริกา
  • ประเทศที่มีสัดส่วนนักบินเพศชายมากที่สุด
    คำตอบคือ : ก็อเมริกาเหมือนเดิม

ข้อมูลการทำ Data Analysis แบบละเอียด จะอยู่ในลิ้งค์ Colab ด้านล้างนี้ค่ะ

https://colab.research.google.com/drive/1eseBRhi0BeNGI8WFs4laEWZdR3_LRgCc?usp=sharing&fbclid=IwAR1lk3uScHghFoLT9dNsDLA4LJ4q41dXVcVeR_b5_oP4Yj-GASMAM2jwE4A#scrollTo=W48zqhsH_Q78

--

--