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])

ရွေ့လျားပျမ်းမျှအား တွက်ချက်ရန် အချိန်များ များလေလေ၊ ရွေ့လျားနေသော ပျမ်းမျှမျဉ်းသည် “ ချောမွေ့” လာလေလေဖြစ်သည်။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်