Python တွင် moving averages တွက်ချက်နည်း
ရွေ့လျားပျမ်းမျှ သည် ဒေတာရှိ “ ဆူညံသံ” ကို လျှော့ချရန်နှင့် ပုံစံများနှင့် ခေတ်ရေစီးကြောင်းများကို ပိုမိုလွယ်ကူစွာ ခွဲခြားသတ်မှတ်ရန် အချိန်စီးရီးဒေတာကို ချောမွေ့စေရန် အသုံးပြုနိုင်သည့် နည်းလမ်းတစ်ခုဖြစ်သည်။
ရွေ့လျားပျမ်းမျှနောက်ကွယ်ရှိ အယူအဆသည် သတ်မှတ်ကာလတစ်ခုအတွက် “ ရွေ့လျားပျမ်းမျှ” သို့ရောက်ရှိရန် ယခင်ကာလများစွာ၏ ပျမ်းမျှအားယူရန်ဖြစ်သည်။
ဤကျူတိုရီရယ်တွင် Python တွင် ရွေ့လျားပျမ်းမျှနှုန်းများကို တွက်ချက်နည်းကို ရှင်းပြထားသည်။
ဥပမာ- Python ရှိ Moving Averages
ကာလ 10 ကျော်အတွင်း ကုမ္ပဏီတစ်ခု၏ စုစုပေါင်းရောင်းချမှုကို ပြသသည့် အောက်ပါဇယားရှိသည်ဆိုပါစို့။
x = [50, 55, 36, 49, 84, 75, 101, 86, 80, 104]
နည်းလမ်း 1- cumsum() လုပ်ဆောင်ချက်ကို အသုံးပြုပါ။
ရွေ့လျားပျမ်းမျှအား တွက်ချက်ရန် နည်းလမ်းတစ်ခုမှာ cumsum() လုပ်ဆောင်ချက်ကို အသုံးပြုခြင်းဖြစ်သည်-
import numpy as np #define moving average function def moving_avg(x, n): cumsum = np.cumsum(np.insert(x, 0, 0)) return (cumsum[n:] - cumsum[:-n]) / float(n) #calculate moving average using previous 3 time periods n = 3 moving_avg(x, n): array([47, 46.67, 56.33, 69.33, 86.67, 87.33, 89, 90])
ဤသည်မှာ ရလဒ်ကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-
- တတိယကာလ၏ ရွေ့လျားပျမ်းမျှအား 47 ဖြစ်သည်။ ၎င်းကို ပထမသုံးကာလ၏ ပျမ်းမျှအဖြစ် တွက်ချက်သည်- (50+55+36)/3 = 47 ။
- စတုတ္ထကာလအတွက် ရွေ့လျားပျမ်းမျှသည် 46.67 ဖြစ်သည်။ ၎င်းကို ယခင်ကာလသုံးခု၏ ပျမ်းမျှအဖြစ် တွက်ချက်သည်- (55+36+49)/3 = 46.67 ဖြစ်သည်။
နောက် … ပြီးတော့။
နည်းလမ်း 2: ပန်ဒါကိုသုံးပါ။
ရွေ့လျားပျမ်းမျှအား တွက်ချက်ရန် အခြားနည်းလမ်းမှာ ပန်ဒါအခြေခံလုပ်ဆောင်ချက်ကို ရေးရန်ဖြစ်သည်။
import pandas as pd #define array to use and number of previous periods to use in calculation x = [50, 55, 36, 49, 84, 75, 101, 86, 80, 104] n=3 #calculate moving average pd.Series(x).rolling(window=n).mean().iloc[n-1:].values array([47, 46.67, 56.33, 69.33, 86.67, 87.33, 89, 90])
ဤနည်းလမ်းသည် ယခင်နည်းလမ်းနှင့် အတိအကျတူညီသောရလဒ်များကို ထုတ်ပေးသော်လည်း ပိုကြီးသော array များတွင် ပိုမိုမြန်ဆန်စွာ လုပ်ဆောင်လေ့ရှိပါသည်။
ရွေ့လျားပျမ်းမျှတွက်ချက်မှုတွင် အသုံးပြုရန် ယခင်ကာလများ၏ မည်သည့်နံပါတ်ကိုမဆို သတ်မှတ်နိုင်သည်ကို သတိပြုပါ။ ဥပမာအားဖြင့်၊ သင်သည် n=5 ကို အသုံးပြုလိုသည်-
#use 5 previous periods to calculate moving average n=5 #calculate moving average pd.Series(x).rolling(window=n).mean().iloc[n-1:].values array([54.8, 59.8, 69., 79., 85.2, 89.2])
ရွေ့လျားပျမ်းမျှအား တွက်ချက်ရန် အချိန်များ များလေလေ၊ ရွေ့လျားနေသော ပျမ်းမျှမျဉ်းသည် “ ချောမွေ့” လာလေလေဖြစ်သည်။