Time Series

Time Series

ข่าวและบทความที่เกี่ยวข้อง

All Time Series

PostType Filter En

บทความ

การพยากรณ์อนุกรมเวลา (Time Series Forecasting)
ปัจจุบันนี้ หลายสิ่งรอบที่มีผลกระทบกับตัวเราทั้งทางตรง และ ทางอ้อม ล้วนแล้วมีการพยากรณ์ค่าในอนาคตด้วยกันทั้งนั้นไม่ว่าจะเป็น การพยากรณ์อุณหภูมิ 24 ชั่วโมงข้างหน้า ที่ช่วยให้เราพอจะคาดการณ์ได้ว่า จะหนาว หรือ จะร้อน การพยากรณ์ปริมาณฝุ่น PM2.5 ที่เป็นภัยต่อระบบทางเดินหายใจ การพยากรณ์ปริมาณน้ำฝน ที่ส่งผลต่อการวางแผนใช้ชีวิต หรือ กระทั่งการพยากรณ์จำนวนรถยนต์บนท้องถนน ซึ่งส่งผลต่อการวางแผนเดินทางของเราเป็นอย่างมาก นอกจากนั้นแล้ว ในโลกของธุรกิจ ก็ยังมีการพยากรณ์เชิงตัวเลขมากมาย ไม่ว่าจะเป็น การประมาณการยอดขาย (Sale Forecasting) การประมาณการสินค้าคงคลัง (Inventory Forecasting) หรือ การประมาณการรายจ่าย (Cost Forecasting) ซึ่งทั้งหมดนี้ก็ล้วนแล้วแต่เป็นการพยากรณ์ตัวเลขในอนาคตทั้งสิ้น และเราเมื่อพูดถึงอนาคต ทุกคนต่างทราบกันดีว่า เป็นเรื่องที่ไม่แน่นอน การพยากรณ์ก็เช่นกัน แต่เราจะมีวิธีการ หรือ เครื่องมือชนิดใดบ้าง ที่จะมาช่วยให้การพยากรณ์เชิงตัวเลขเหล่านี้ มีความแม่นยำมากขึ้น น่าเชื่อถือมากขึ้น พร้อมทั้ง ลดความคลาดเคลื่อนของตัวเลขคาดการณ์ลง ทุกท่านสามารถหาคำตอบได้จากบทความนี้เลยครับ Time Series Forecasting คืออะไร ? ในการพยากรณ์ตัวเลข เราสามารถใช้ประโยชน์จากข้อมูลในอดีตมาพิจารณาว่า ค่าที่ควรจะเป็น ในอนาคตควรเป็นเท่าใดได้ โดยส่วนใหญ่แล้ว ค่าในอนาคต มักจะมีความสัมพันธ์กับค่าที่เกิดขึ้นจริงในอดีต (Historical data) ดังนั้น ในบทความนี้ เราจึงเลือกเครื่องมือที่จะมาตอบโจทย์การพยากรณ์นี้ เป็นเครื่องมือที่มีชื่อเรียกว่า Time-Series Forecasting (หรือ เรียกแบบไทย ๆ ว่า การพยากรณ์แบบอนุกรมเวลา)  โดยเครื่องมือชนิดนี้ จะให้ความสำคัญ กับ ลำดับการเกิดขึ้นของข้อมูล (Order) และ ค้นหาแนวโน้ม (Trend) รวมถึง ฤดูกาล (Seasonal) ที่เกิดขึ้นบนข้อมูลในอดีต และนำมาเป็นปัจจัยในการพยากรณ์ตัวเลขในอนาคต Time-series Dataset หน้าตาเป็นอย่างไร ? เรามาดูตัวอย่างของข้อมูลประเภท Time-Series กัน ว่ามีหน้าตาและลักษณะเป็นอย่างไร โดยในบทความนี้ เราจะใช้ข้อมูลจำนวนผู้โดยสารสายการบินแห่งหนึ่งกันครับ  จากตัวอย่างใน ภาพที่ 1 จะเห็นว่า ข้อมูล Time-series มีการเรียงตัวกันเป็นลำดับของข้อมูลที่ครบถ้วน โดยจัดเก็บเป็นรายเดือนเริ่มต้นตั้งแต่ปี 1949 ไปจนถึง 1960 รวมทั้งสิ้น 144 เดือน ดังนั้นข้อมูลชุดนี้จึงจะเป็นข้อมูลที่สะอาดและพร้อมใช้งานครับ  แต่ถ้าหากข้อมูลที่เรามีอยู่มีบางส่วนขาดหายไป เช่น ไม่มีข้อมูลในบางเดือน เราจำเป็นต้องมีการเติมข้อมูลเดือนที่หายไป เข้าไปก่อนที่จะนำไปใช้งาน โดยการเติมข้อมูลที่หายไปสามารถทำได้หลากหลายวิธี แต่วิธีที่ง่ายที่สุด อาจจะเป็นการอนุมานว่า ข้อมูลเดือนที่หายไปนั้น เป็นเพราะไม่มีผู้โดยสารเครื่องบินสายการบินนี้เลย ทำให้ไม่มีข้อมูลเดือนดังกล่าว และแทนค่าจำนวนผู้โดยสารเท่ากับ 0 ไปเลยก็ได้ครับ ทั้งนี้ก็ขึ้นอยู่กับข้อมูลและความเข้าใจในข้อมูลชุดนั้น ๆ ของเจ้าของข้อมูลครับ ทีนี้ เรามาลองดูข้อมูลกันต่อใน ภาพที่ 2 ซึ่งจะเป็นกราฟเส้นแสดงการเปลี่ยนแปลงของจำนวนผู้โดยสารในแต่ละเดือน กราฟนี้ทำให้เราเห็นว่า จำนวนผู้โดยสารของสายการบินนี้ มีรูปแบบการเปลี่ยนแปลงที่ค่อนข้างชัดเจน (มี Pattern) นั่นคือ เริ่มต้นปีด้วยการไต่ระดับขึ้นไปจนถึงจุดพีคที่ช่วงกลางปี จากนั้นลดลงในช่วงปลายปี อยากให้ทุกท่านสังเกตภายในแต่ละกรอบสีแดง ซึ่งจะแสดงรูปแบบของจำนวนผู้โดยสารรูปแบบคล้ายคลึงกัน ซ้ำ ๆ วนไปทุก ๆปี ทำให้เราเกิดความคิดว่า จำนวนผู้โดยสารของสายการบินนี้ น่าจะสามารถคาดการณ์ได้ ดังนั้น เราจึงจะมาดูกันต่อว่า เราจะทำให้หุ่นยนต์ หรือ คอมพิวเตอร์ ตีความและพยากรณ์โดยอ้างอิงจากสิ่งเหล่านี้ได้เหมือนกับเราซึ่งเป็นมนุษย์ได้อย่างไรกันล่ะ เรามาดูกันครับ Prophet: Time Series Forecasting Model from Facebook (Meta) พระเอกของเราในวันนี้คือ โมเดลที่ใช้ชื่อว่า Prophet ซึ่งเป็นโมเดลที่ทางทีมวิจัยของ Facebook เป็นผู้พัฒนาขึ้นมา แต่ก่อนที่เราจะไปดูวิธีการใช้งานเจ้า Prophet ผมขอพาคุณผู้อ่านทุกท่านมารับชมกรรมวิธีเบื้องหลัง ซึ่งเป็นแก่นแกนของ Prophet กันก่อน Seasonal Decomposition ในการพยากรณ์แต่ละค่าของโมเดล จะอ้างอิงจากหลาย ๆ ปัจจัย แต่โดยพื้นฐานแล้วมักจะมาจากการ ค้นหา แนวโน้ม (Trend) และ ฤดูกาล (Seasonal) เป็นหลัก โดยอาจจะมีปัจจัยอื่นๆเข้ามาเสริมเติมให้มีความแม่นยำมากยิ่งขึ้น ซึ่งการจะได้มาซึ่ง Trend และ Seasonal จะมีกรรมวิธีที่มีชื่อเรียกทางเทคนิคว่า Seasonal Decompose แปลเป็นภาษาที่เข้าใจง่ายๆ ก็คือ การนำข้อมูลใน ภาพที่ 2 มาแยกส่วนออกเป็น 3 ส่วน ได้แก่ Trend, Seasonal และ Residual โดยสามารถดู Fig 3 ประกอบครับ ตัวอย่าง python code How to train Prophet เมื่อเราเข้าใจพื้นฐานการทำงานของ Prophet กันแล้ว ทีนี้เรามาดูกันว่า เราจะสอนเจ้า Prophet ให้เป็นเครื่องมือในการพยากรณ์อนาคตให้กับเราได้อย่างไรกัน โดยเนื้อหาในส่วนนี้จะแบ่งออกเป็น 5 Step ค่อย ๆ ทำตามไปทีละ Step นะครับ ก่อนที่จะเริ่มต้น ผมขอใช้พื้นที่ตรงนี้ในการ Clarify Specification ของ Environment ที่ผมใช้ในการทำตัวอย่างประกอบบทความนี้ครับ เพื่อเป็น Reference ให้คุณผู้อ่านสามารถติดตั้งตาม environment ของผมได้ครับ OS: Window 10Python: 3.10.10prophet: 1.1.5numpy: 1.21.6pandas: 2.0.1statsmodels: 0.10.1 Step 1: Prophet Installation (ติดตั้งเจ้า Prophet กันก่อน) ก่อนอื่นผมขอให้ทุกท่านทำการติดตั้ง Library Prophet กันก่อนครับ โดยการติดตั้งนั้นไม่ยากเลย เหมือนกับการลง Library ของ python ทั่วๆไป  (หากท่านยังไม่มี Python โปรดทำการลง Python ให้เรียบร้อยก่อนครับ) เมื่อติดตั้งเสร็จแล้ว ให้ทำการ import library ตามด้านล่างนี้ และทำการ install ตัว cmdstanpy ให้เสร็จสมบูรณ์ แล้วจึงจะใช้งาน Library Prophet ได้ (ในขั้นตอนนี้อาจจะใช้เวลาในการติดตั้งค่อนข้างนานสักหน่อยครับ) Step 2: Data Preparation (เตรียมข้อมูลให้พร้อมสำหรับการเทรนโมเดล)...
27 December 2023

บทความ

การคำนวนผลที่ได้จากนโยบายด้วย Causal Impact Analysis
ไม่ว่าจะเป็นองค์กรของรัฐบาลหรือบริษัทเอกชน ผู้ที่มีอำนาจตัดสินใจย่อมต้องการวัดผลที่ได้รับจากนโยบายหรือโครงการที่ได้นำมาใช้เพื่อประเมินว่าผลที่ได้รับนั้นคุ้มค่ากับค่าใช้จ่ายในการดำเนินนโยบายหรือไม่ โดยวันนี้เราจะมาทำความรู้จักกับการทำ Causal Impact Analysis ตัวอย่างในวันนี้เราจะทำการวิเคราะห์ผลกระทบต่อราคาหุ้นของเครือ Volkswagen หลักจากที่ถูกฟ้องร้องเรื่องละเมิดกฎหมายควบคุมมลพิษ เหตุการณ์ครั้งนี้เป็นที่รู้จักกันในชื่อว่า Volkswagen Emission Scandal โดยปกติแล้ว คำถามประเภทนี้เราจะนำข้อมูลจากกลุ่มตัวอย่างที่ไม่ได้รับผลกระทบมาเปรียบเทียบ แต่ในกรณีนี้นั้นเป็นไปไม่ได้ ดังนั้นเราจะใช้ข้อมูลที่มีก่อนเกิดเหตุการณ์เพื่อมาใช้ทำนายค่าชี้วัดหลังจากเกิดเหตุการณ์ และนำผลมาเปรียบเทียบ Causal Impact Analysis: Simple Model เราจะใช้ R programming เพื่อทำการวิเคราะห์ในบทความนี้ เราจะเริ่มโดยการ plot ข้อมูลราคาปิดตลาดต่อหุ้นของ Volkswagen เพื่อพิจารณา ก่อนอื่นเราจะโหลด packages ที่จำเป็นแล้วก็เริ่มทำการ plot (หากยังไม่เคยติดตั้ง packages เหล่านี้ ให้ใช้คำสั่งที่ถูก commented ไว้นะครับ) จะเห็นได้ว่า หลังจากเส้นประที่ขีดไว้ ราคาปิดตลาดต่อหุ้นนั้นลดลงอย่างรวดเร็วมาก เราต้องการประเมินว่าผลกระทบนี้เป็นเท่าไหร่  เบื้องต้นเราอาจจะใช้วิธีการ Time Series แบบมาตรฐานเพื่อนำมาใช้ประเมิน จะได้ผลการวิเคราะห์ดังนี้ จะเห็นได้ว่าการประเมินในรูปแบบนี้ไม่สามารถใช้ได้ในระยะยาว เนื่องจากค่าความไม่แน่นอนจะสูงขึ้นอย่างรวดเร็ว ซึ่งค่อนข้างสมเหตุสมผล เนื่องจากว่าข้อมูลราคาในอดีตอาจจะบอกข้อมูลได้ไม่สมบูรณ์ ดังนั้นเราจะเลือกนำ Time Series ชุดอื่นที่มีพฤติกรรมคล้าย ๆ กัน และไม่ได้รับผลกระทบจากเหตุการณ์นี้ ในกรณีนี้เราจะนำเอาราคาปิดตลาดของผู้ผลิตรถยนต์รายอื่น เช่น BMW และ Allianz มาพิจารณาเปรียบเทียบกัน จะพบว่าแนวโน้มของทั้งสามราคามีค่าใกล้เคียงกัน แต่ว่า BMW และ Allianz ไม่ได้รับผลกระทบกับคดีความครั้งนี้ เราจึงมีแนวคิดที่ว่าจะใช้ Time Series ของราคา BMW และ Allianz เพื่อมาทำนายราคาในกรณีที่การฟ้องร้องครั้งนี้ไม่เกิดขึ้น Bayesian Structural Time Series Bayesian Structural Analysis จะนำเอาการ Regression มารวมกันกับเทคนิคทาง Time Series โดยจะสรุปได้ในโดยสมการ เราจะใช้ Package ใน software R และหลักการทาง Bayesian Inference เพื่อประมาณค่าของ  และค่าความคลาดเคลื่อนที่เป็นไปได้ของการประมาณ โดยผลลัพธ์ที่ได้สามารถนำมาแสดงผลได้ดังแผนภาพข้างล่างนี้ โดยที่ตัวแปร series ในโค้ดข้างล่างนี้เป็นตัวแปรเดียวกันกับโค้ดที่ใช้สร้าง Figure 3 ข้างบน  จะเห็นได้ว่า confidence interval นั้นไม่ได้กว้างขึ้นในระยะยาว ทำให้การทำนายระยะยาวพอมีความเป็นไปได้มากขึ้น นอกจากนี้เรายังสามารถดู Summary Statistics เพื่อประเมินความมั่นใจของค่าประมาณของเราได้ References
29 June 2021

บทความ

งานวิจัยบ่งชี้ อาจมีผู้ติดเชื้อโควิด-19 มากกว่าที่รายงานอยู่หลายเท่าตัว
งานวิจัยล่าสุดจากสหรัฐอเมริกาได้มีข้อสรุปที่น่าเป็นห่วงว่า จำนวนผู้ติดเชื้อเราทราบกันว่ามีอยู่ทั่วโลกจากการนำเสนอข้อมูลผ่านแผนภาพตามสถานการณ์จริงหรือ dashboard นั้น อาจน้อยกว่าจำนวนผู้ติดเชื้อที่มีอยู่จริงในขณะนี้หลายเท่าตัว!
7 April 2020
PDPA Icon

We use cookies to optimize your browsing experience and improve our website’s performance. Learn more at our Privacy Policy and adjust your cookie settings at Settings

Privacy Preferences

You can choose your cookie settings by turning on/off each type of cookie as needed, except for necessary cookies.

Accept all
Manage Consent Preferences
  • Strictly Necessary Cookies
    Always Active

    This type of cookie is essential for providing services on the website of the Personal Data Protection Committee Office, allowing you to access various parts of the site. It also helps remember information you have previously provided through the website. Disabling this type of cookie will result in your inability to use key services of the Personal Data Protection Committee Office that require cookies to function.
    Cookies Details

  • Performance Cookies

    This type of cookie helps the Big Data Institute (Public Organization) understand user interactions with its website services, including which pages or areas of the site are most popular, as well as analyze other related data. The Big Data Institute (Public Organization) also uses this information to improve website performance and gain a better understanding of user behavior. Although the data collected by these cookies is non-identifiable and used solely for statistical analysis, disabling them will prevent the Big Data Institute (Public Organization) from knowing the number of website visitors and from evaluating the quality of its services.

  • Functional Cookies

    This type of cookie enables the Big Data Institute (Public Organization)’s website to remember the choices you have made and deliver enhanced features and content tailored to your usage. For example, it can remember your username or changes you have made to font sizes or other customizable settings on the page. Disabling these cookies may result in the website not functioning properly.

  • Targeting Cookies

    "This type of cookie helps the Big Data Institute (Public Organization) understand user interactions with its website services, including which pages or areas of the site are most popular, as well as analyze other related data. The Big Data Institute (Public Organization) also uses this information to improve website performance and gain a better understanding of user behavior. Although the data collected by these cookies is non-identifiable and used solely for statistical analysis, disabling them will prevent the Big Data Institute (Public Organization) from knowing the number of website visitors and from evaluating the quality of its services.

Save settings
This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.