محاسبه میانگین متحرک

ساخت وبلاگ

فرض کنید داده های شما یک موج سینوسی پر سر و صدا با مقادیر گمشده است:

set. seed(993) x  1:300 y  گناه(x/20) + با توجه به(300,sd=.1) y[251:255]  NA 

از تابع فیلتر () می توان برای محاسبه میانگین متحرک استفاده کرد.

# داده های نامشخص (خاکستری) را ترسیم کنید طرح(x, y, نوع="ل", کول=خاکستری(.5)) # خطوط خط را بکشید توری() # صاف با تاخیر: # میانگین نمونه فعلی و 19 نمونه قبلی (قرمز) f20  هرزه(1/20, 20) f20 #> [1] 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 #>[18] 0. 05 0. 05 0. 05 y_lag  فیلتر کردن(y, f20, طرفین=1) خط(x, y_lag, کول="قرمز") # صاف متقارن: # میانگین نمونه فعلی ، 10 نمونه آینده و 10 نمونه گذشته (آبی) f21  هرزه(1/21,21) f21 #> [1] 0.04761905 0.04761905 0.04761905 0.04761905 0.04761905 0.04761905 0.04761905 #> [8] 0.04761905 0.04761905 0.04761905 0.04761905 0.04761905 0.04761905 0.04761905 #>[15] 0. 04761905 0. 04761905 0. 04761905 0. 04761905 0. 04761905 0. 04761905 0. 04761905 y_sym  فیلتر کردن(y, f21, طرفین=2) خط(x, y_sym, کول="آبی") 

plot of chunk uamed-chunk-2

همانطور که در نمودار بالا نشان داده شده است ، فیلتر () در هر کجا که با مقادیر گمشده روبرو می شود ، سوراخ می کند.

یک روش متفاوت برای رسیدگی به داده های گمشده ، نادیده گرفتن آن است و به طور متوسط آن را شامل نمی شود. عملکرد تعریف شده در اینجا این کار را انجام می دهد.

# x: بردار # n: تعداد نمونه های # محور: اگر نادرست باشد ، نمونه فعلی و نمونه های قبلی (N-1) # اگر درست باشد ، در گذشته و آینده به طور متقارن متوسط است.(اگر n یکنواخت است ، از یک نمونه دیگر از آینده استفاده کنید.) ممتاز  تابع(x, n=1, محور=دروغ)  if (محور)  قبل از  کف ((n-1)/2) بعد از  سقف((n-1)/2) > دیگر  قبل از  n-1 بعد از  0 > # تعداد و تعداد تعداد موارد غیر NA را پیگیری کنید s  هرزه(0, طول(x)) شمردن  هرزه(0, طول(x)) # داده های محور را اضافه کنید جدید  x # اضافه کردن به لیست شمارش در هر کجا که وجود نداشته باشد شمردن  شمردن + !is. na(جدید) # اکنون NA_S را با 0_S جایگزین کنید و به کل اضافه کنید جدید[is. na(جدید)]  0 s  s + جدید # داده ها را از قبل اضافه کنید i  1 در حالی که (i  قبل از)  # این بردار با مقادیر افست برای افزودن است جدید  c(هرزه(NA, i), x[1:(طول(x)-i)]) شمردن  شمردن + !is. na(جدید) جدید[is. na(جدید)]  0 s  s + جدید i  i+1 > # داده ها را از بعد اضافه کنید i  1 در حالی که (i  بعد از)  # این بردار با مقادیر افست برای افزودن است جدید  c(x[(i+1):طول(x)], هرزه(NA, i)) شمردن  شمردن + !is. na(جدید) جدید[is. na(جدید)]  0 s  s + جدید i  i+1 > # مبلغ برگشتی تقسیم بر شمارش s/شمردن > # همان توطئه ها را با خطوط ضخیم تر بسازید طرح(x, y, نوع="ل", کول=خاکستری(.5)) توری() y_lag  فیلتر کردن(y, هرزه(1/20, 20), طرفین=1) خط(x, y_lag, کول="قرمز", LWD=4) # میانگین عقب مانده به رنگ قرمز y_sym  فیلتر کردن(y, هرزه(1/21,21), طرفین=2) خط(x, y_sym, کول="آبی", LWD=4) # میانگین متقارن به رنگ آبی # میانگین حرکت عقب مانده را با روش جدید محاسبه کنید و بیش از حد با سبز رنگ کنید y_lag_na. rm  ممتاز(y, 20) خط(x, y_lag_na. rm, کول="سبز", LWD=2) # میانگین متحرک متقارن را با روش جدید محاسبه کنید و بیش از حد با سبز رنگ کنید y_sym_na. rm  ممتاز(y, 21, درست است، واقعی) خط(x, y_sym_na. rm, کول="سبز", LWD=2) 

plot of chunk uamed-chunk-3

کتاب آشپزی برای r

این سایت توسط Knitr و Jekyll ساخته شده است. اگر خطایی پیدا کردید ، لطفاً از طریق ایمیل [email protected] ایمیل کنید

اخبار رمز ارزها...
ما را در سایت اخبار رمز ارزها دنبال می کنید

برچسب : نویسنده : منیژه سلیمی بازدید : <-PostHit-> تاريخ : جمعه 9 تير 1402 ساعت: 21:07