ประยุกต์ Econometrics ด้วย Math.NET และ F#

เกริ่นนำ

บทความนี้จะแนะนำนักเศรษฐศาสตร์เชิงปริมาณให้รู้จัก Math.NET และ F# ที่จะนำมาประยุกต์ใช้วิเคราะห์ข้อมูลเชิงปริมาณทางด้านเศรษฐศาสตร์
วิธีการที่เอาองค์ประกอบจากที่อื่น ที่เราไม่ได้สร้างขึ้นมาเองเขาเรียกว่าการ reuse ครับ

เตรียมเครื่องมือให้พร้อม

1. install .NET Framwork 4.0 ดาวโลดจากที่นี่ download

2. install FunPad ดาวโลดจากที่นี่ download

3. dowload Math.NET แล้วแตก zip รอไว้ก่อนเลยครับ

เครื่องมือพร้อมแล้วประยุกต์ใช้กันเถอะ

ก่อนจะเริ่มใช้งาน Math.NET ต้องหา Dataset มาก่อนครับ ผมเข้าไป load มาจาก ธนาคารแห่งประเทศไทย

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

1. เปิด FunPad ขึ้นมาครับ

2. ให้ reference Math.NET เข้ามาใน FunPad ขอเราครับ โดยพิมพ์สำสั่ง

#r “[folder ที่เราแตก zip Math.NET ไว้]\Math.NET\lib\Net40\MathNet.Numerics.dll”;;

พอกด Enter คำสั่งด้านบนแล้วต้องขึ้นว่า

–> Referenced ‘[folder ที่เราแตก zip Math.NET ไว้]\Math.NET\lib\Net40\MathNet.Numerics.dll’

3. เปิด module เข้ามาใน FunPad ครับในที่นี้ผล load module ทางด้าน Statistics เข้ามาครับ เราจะมาคำนวณตัวสถิติเชิงพรรณนากัน

open MathNet.Numerics.Statistics;;

4. พิมพ์คำสั่งกำหนด dataset ที่เราจะคำนวณ ตามนี้ครับ(dataset ไม่จำเป็นต้องเหมือนผมก็ได้ครับ)

//ข้อมูลนี้คือ GDP หรือผลผลิตมวลรวมของประเทศไทย ตั้งแต่ปี 2001 – 2009

let gdp_TH_2001_2009 =
[5133502.0;5450643.0;5917369.0;
6489476.0;7092893.0;7844939.0;
8525197.0;9080466.0;9041551.0;];;

5. code F# คำนวณตัวสถิติเชิงพรรณนา

let statistics = new DescriptiveStatistics(gdp_TH_2001_2009)

statistics;;

FunPad จะแสดงผลลัพย์ดังนี้ครับ

val it : DescriptiveStatistics =
MathNet.Numerics.Statistics.DescriptiveStatistics
{Count = 9;
Kurtosis = -1.704092384;
Maximum = 9080466.0;
Mean = 7175115.111;
Median = 7092893.0;
Minimum = 5133502.0;
Skewness = 0.01042702762;
StandardDeviation = 1524225.418;
Variance = 2.323263124e+12;}

เรามาดูตัวอย่างคำนวณตัวสถิติเชิงอนุมาณอีกสักตัวอย่างดีกว่า คำนวณค่า Correlation หรือตัวสถิติที่จะแสดงปริมาณความสัมพันธ์ระหว่างตัวแปร 2 ตัวว่ามีปริมาณความสัมพันธ์มากน้อย เท่าไร โดย มีค่าตั้งแต่ -1 ถึง 1 หากมีค่าใกล้ 1 ก็แสดงว่ามีความสัมพันธ์กันระหว่างตัวแปร 2 ตัวนี้กันมากในทางส่งเสริมกัน แลมีค่าเข้าใกล้ -1 มีความสัมพันธ์กันในทางตรงข้ามกัน และมีค่าใกล้ 0 คือมีความสัมพันธ์กันน้อยมาก หรือไม่มีเลย

ผมเพิ่ม dataset อีกชุดหนึ่งเข้าไปเพื่อจะได้คำนวณ Correlation ได้ดังนี้ครับ

//ข้อมูลนี้คือ รายจ่ายของรัฐบาลไทย ตั้งแต่ปี 2001 – 2009

let gov_expenditure_TH_2001_2009 =
[581117.0;603891.0;636002.0;
720595.0;843649.0;925987.0;
1039270.0;1120842.0;1213928.0;];;

โดยก่อนจะหาคู่ของความสัมพันธ์อะไร ก็ต้องสมเหตุสมผลด้วยนะครับ จากข้อมูลของผม ผมได้สังเกตุ และใช้ทฤษฎีทางเศรษฐศาสตร์ที่อธิบายว่า รายได้ กับ รายจ่าย มีความสัมพันธ์กัน คือถ้าผมจ่ายเงินเพื่อซื้อของ จากรายจ่ายของผม มันจะกลายเป็นรายได้ของคนอื่น แล้วคนอื่นๆก็จะจับจ่ายใช้สอยหมุนเวียนจนกระทั้ง รายจ่ายนั้นกลายมาเป็นรายได้ให้ผมอีกนั่นเอง ดังนั้นจึงสมเหตุสมผลที่ผมจะคำนวณ เพื่อหาค่าความสัมพันธ์ของ รายได้ และรายจ่าย

let correlation = Correlation.Pearson(gdp_TH_2001_2009, gov_expenditure_TH_2001_2009);;

ผลลัพย์ก็คือ

val correlation : float = 0.9878012966

อธิบายผลได้ว่า: รัฐบาลจะจ่ายมากขึ้นเมื่อ GDP มากขึ้น อาจจะเนื่องมาจากรัฐบาลเก็บภาษีได้มากขึ้น ซึ่งเป็นรายได้หลักของรัฐบาล ดังนั้นรัฐบาลจึงจ่ายมากขึ้นตามรายได้ที่เพิ่มขึ้น

จบเพียงเท่านี้ละครับ
ติดตามบทความผมไปเรื่อยๆนะครับ ผมจะค่อยๆเสนอเครื่องมือทางด้าน Econometrics ที่ซับซ้อนขึ้นไปเรื่อยๆ เพื่องานวิเคราะห์เชิงตัวเลขทางด้านเศรฐกิจทั้งในระดับจุลภาพ และมหภาค…

ขอบคุณครับ

Advertisements

#net, #economics, #f