فرض کنید داده های شما یک موج سینوسی پر سر و صدا با مقادیر گمشده است:
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, کول="آبی")

همانطور که در نمودار بالا نشان داده شده است ، فیلتر () در هر کجا که با مقادیر گمشده روبرو می شود ، سوراخ می کند.
یک روش متفاوت برای رسیدگی به داده های گمشده ، نادیده گرفتن آن است و به طور متوسط آن را شامل نمی شود. عملکرد تعریف شده در اینجا این کار را انجام می دهد.
# 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)

کتاب آشپزی برای r
این سایت توسط Knitr و Jekyll ساخته شده است. اگر خطایی پیدا کردید ، لطفاً از طریق ایمیل [email protected] ایمیل کنید
اخبار رمز ارزها...
ما را در سایت اخبار رمز ارزها دنبال می کنید
برچسب :
نویسنده : منیژه سلیمی
بازدید : <-PostHit->
تاريخ : جمعه
9 تير
1402 ساعت: 21:07