سری زمانی()ts
دسترسی سریع
ts(data,start,end,frequency)
که درآن شناسه ی data،داده های سری زمانی است.شناسه یstart ،زمان مشاهده ی اول است.شناسه یend ،زمان مشاهده ی آخر است و شناسه یfrequency،تعداد مشاهدات در هر واحد زمانی است. مثال: تابع زیر،سری زمانی را برای داده های 1:12، از سال1364 تا سال 1376 تشکیل می دهند؛> x<-ts(1:12,start=1364,end=1376,frequency=1)
> x
Time Series:
Start = 1364
End = 1376
Frequency = 1
[1] 1 2 3 4 5 6 7 8 9 10 11 12 1
توجه کنید که تابع نیز همان سری زمانی را تولید میکند. نکته: تابع time()،سری زمانی جدید را روی همان واحد های زمانی موجود ایجاد می کند که در این صورت،مقادیر آن زمان های ثبت مشاهدات است.(برداری از زمان هایی که در آن ها سیزمانی به دست آمده است.) نکته: تابع cycle()،سری زمانی به وجود می آورد که مقادیر آن،موقعییت هر مشاهده در تناوب مربوط به سری زمانی را نشان می دهد. نکته: تابعfrequency، تعداد نمونه ها در هر واحد زمان را نشان می دهد. نکته: تابعdeltat، فاصله ی زمانی بین مشاهدات را نمایش می دهد. سری زمانی علاوه بر ویژگی طول و حالت،دارای ویژگی tspاست،به طوری که با این ویژگی می توان"زمان شروع سری"،"زمان پایان سری"و"دوره ی تناوب مشاهدات "را مشخص کرد.برای مثال،برای سری زمانی x،مثالی که در بالا ذکر شد،داریم:> tsp(x)
[1] 1364 1376 1
بررسی نموداری سری زمانی برای رسم یک نمودار سری زمانی درR،از تابع ts.plotاستفاده میکنیم. برای رسم نمودار های پراکندگی تاخیر،که در تشخیص خود هم بستگی کمک می کند،از تابع lag.plot() استفاده میکنیم. تابعacf() ،به صورت نموداری برآوردی از تابع اتوکواریانس با تابع خود هم بستگی (ACF)را نشان میدهد. تابع pacf()،برای خود هم بستگی های جزیی(PACF) مورد استفاده قرار میگیرد. تابع هم بستگی()ccf ،هم بستگی متقاطع (با مواریانس متقاطع) دو سری یک متغییره را بررسی می کند. همانطور که می دانیم و با توجه به آنچه گفته شد،با استفاده از نمودار سری زمانی،نمودار پراکندگی تاخیر و نمودار تابع خود هم بستگی،می توان تصویری از هم بستگی پیاپی سری زمانی را نمایش داد. مثال: برای داده های ،که داده های مربوط به مرگ و میر تصادفی در ایالات متحده بین سال های 1973 تا 1978 است.نکات گفته شده در بالا را بررسی می کنیم:USAccDeaths
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1973 9007 8106 8928 9137 10017 10826 11317 10744 9713 9938 9161 8927
1974 7750 6981 8038 8422 8714 9512 10120 9823 8743 9129 8710 8680
1975 8162 7306 8124 7870 9387 9556 10093 9620 8285 8466 8160 8034
1976 7717 7461 7767 7925 8623 8945 10078 9179 8037 8488 7874 8647
1977 7792 6957 7726 8106 8890 9299 10625 9302 8314 8850 8265 8796
1978 7836 6892 7791 8192 9115 9434 10484 9827 9110 9070 8633 9240
زمانی که دستور مقابل را میزنیم در نرم افزار پلات زیر را به ما میدهد که خود این پلات برای ما نمایانگر یه تفسیر هایی می باشد. مثلا نشان میدهد که مقدار مرگ و میر در زمان های مختلف چگونه بوده است.به طور مثال در نیمه ی اول سال 1973 مقدار تصادفاتی که منجر به مرگ شده است به بالاترین میزان خود رسیده است.وهم چنین در اوایل سال 1974 و1977 و1978 کمترین میزان تصادفات منجر به مرگ داشته ایم.این دستور پلات مربوط به سری زمانی را به مانشان میدهد که ما از روی ان تقریبا متوجه شدیم که در چه زمان هایی بیشترین و کمترین مقدار تصلدف منجربه مرگ رخ داده است.ts.plot(USAccDeaths)
تابعdeltat، فاصله ی زمانی بین مشاهدات را نمایش می دهد.> deltat(USAccDeaths)
[1] 0.08333333
به طور مثال deltat(1973,1974) را اگر ما بخواهیم یعنی اینکه فاصله ی زمانی مشاهده ی اول و دوم.این بدان معنی است که مشاهده ی اول از ماه اول منهای مشاهده ی دوم از ماه دوم.که اینجا مقدارش تقریبا برابر 0.08 شده است. سری زمانی علاوه بر ویژگی طول و حالت،دارای ویژگی tsp است،به طوری که با این ویژگی می توان"زمان شروع سری"،"زمان پایان سری"و"دوره ی تناوب مشاهدات "را مشخص کرد. همانطور که در مثال رو برو مشاهده میکنید زمان شروع سری 1973 است و زمان پایان سری 1978 است و دوره ی تناوب مشاهداتمون 12 است این یعنی 12 ماه سال دوره ی تناوب ما در اینجا به حساب آمده است.> tsp(USAccDeaths)
[1] 1973.000 1978.917 12.000
این دستور به ما فراوانی میدهد یعنی اینکه نشان میدهد عدد هابا چه مقداری تکرار داشته است.> frequency(USAccDeaths)
[1] 12
دستور مقابل نمودار پراکندگی تاخیر را به ما میدهد.این نمودار مارا متوجه این می کندکه پراکندگی میزان تصادفات منجر به مرگ و میر چگونه بوده است.همانطور که مشاهده میشود پراکندگی در وسطت این پلات بیشتر است.درنمودار های تاخیر،اگر توده ی نقاط دایره ای شکل باشند،هم بستگی کمی درآن تاخیر وجود دارد.اگر شکل توده ی نقاط بیضی باشد،نشان دهنده ی هم بستگی مثبت یا منفی است. ما در این پلات این جریان را به وضوح میبینیم که شکل توده به صورت دایره ای نیست و چون به صورت دایره ای نیست متوجه میشویم که زمان یعنی روزها و ماه های سال در میزان تصادفات مبجر به مرگ و میر هم بستگی داشته است. تابعacf: تابعacf() به صورت نموداری برآورد تابع اتو کواریانس یا تابع خود هم بستگی را می دهد. دستور مقابل نمودار ،نمودار تابع خود هم بستگی برای داده های تصادفات منجر به مرگ ومیر ایالات متحده است.که دارای دوره ی تناوب 12 است.lag.plot(USAccDeaths)
acf(USAccDeaths)
این نمودار به ما نشان میدهد که میزان خود هم بستگی چه قدر بوده است.به طور مثال ما این موضوع را میدانیم که هم بستگی هر چیزی با خودش یک است. با استفاده از این دستور می توانیم تابع اتو کواریانس و تابع هم بستگی و تابع خود هم بستگی جزیی را بدست آوریم البته شایان ذکر است که بگویم در دوقسمت این دستور ها با یکدیگر متفاوت است. تابع اتو کواریانس : دستور تابع اتو کواریانس به صورت زیر می باشد.acf(x,lag.max=N/4,typ="cov",main="ACVE")
که در آن دستور به معنای خود هم بستگی است. دستور تابع خود هم بستگی جزیی به صورت زیر میباشد .acf(x,lag.max=N/4,typ="par",main="PACF")
اگر بخواهیم خود هم بستگی جزیی را نشان دهیم باید از دستور این استفاده کنیم . دستور تابع هم بستگی به صورت زیر می باشد.acf(x,lag.max=N/4,typ="cor",main="ACF")
که در آن دستور به معنای هم بستگی است.که هرگاه یک معادله ی خطی نوشتیم و علامت X,Yهر دو مثبت بودند هم بستگی آن ها 1 است و هرگاه هر یکی از آنها منفی باشد و دیگری مثبت باشد هم بستگی 1- می شود. به طور مثال داده های تصادفات منجر به مرگ ایلات متحده را در این دستور ها وارد میکنیم تا ببینم خروجی به ما چه چیزی می دهد.Acf(USAccDeaths,lag.max=100/4,typ=”cov”,main=”ACVE”)
این نمودار ،نمودار تابع خود هم بستگی می باشد.که نشان می دهد هر متغییر با خودش چه میزان هم بستگی دارد.acf(USAccDeaths,lag.max=100/4,typ="par",main="PACF")
این نمودار ،نمودار خود هم بستگی جزیی است.acf(USAccDeaths,lag.max=100/4,typ="cor",main="ACF")
این نمودار ،نمودار هم بستگی است.میزان تصادفات با میزان مرگ و میر هم بستگی دارد.حال باید توجه کنیم که ایا هم بستگی آن ها مستقیم است یا معکوس که در اینجا شایان ذکر است که هم بستگی مستقیمی دارد. کاربا مدل ARIMA(): برای برازش مدل به داده ها arima() ،از تابع arima()استفاده می کنیم.فرم کلی این تابع به صورت زیر است: این دستور کلی از برازش مدل است:arima(x,order=c(0,0,0),seasonal=list(order=c(0,1,1)),method=c("ML"))
که در آن یکx سری زمانی یک متغییره است.orderشامل سه مولفه ی (p,d,q)است که رتبه یp ، رتبه ی AR ،dمرتبه ی تفاضل گیری و qرتبه یMA است،seasonal به همراه period (که به طور پیش فرض برابر با فراوانی در نظر گرفته می شود)قسمت فصلی مدل arima را مشخص می کندو در شناسه یmethod نوع روش محاسبه ی ضرایب رگرسیونی مشخص می شود. پس از برازش مدل به داده ها ،باید مناسب بودن برازش داده شده بررسی شود. یکی از روش های تشخیص مناسب بودن مدل برازش داده شده،رسم نمودار های باقی مانده های استاندارد شده = در مقابل زمان است. اگر مدل مناسبی برازش شده باشد و داده ها نرمال باشدآنگاه تقریبا یک فرآیند خالص نرمال با میانگین صفر و واریانس یک است. روش دیگر برای تشخیص مناسب بودن مدل برازش داده شده،آزمون خود هم بستگی باقی مانده ها است. اگر مدل مناسب باشد خود هم بستگی های باقی مانده ها بید متغییر های تصادفی ناهمبسته و نرمال با میانگین صفر و واریانس باشد. پس از این که مدل مناسب به داده ها برازش شد،با استفاده از تابع ،predict() نقاط بعدی مدل را پیش بینی می کنیم.فرم کلی این تابع به صورت زیر است: Predict(مدل برازش داده شده ,n.ahead=تعداد گام لازم یرای پیش بینی ,newxreg=تعداد گام جدید) دقت کنیدکه newxreg باید حداقل تعداد سطر های n.ahead را داشته باشد. برای شبیه سازی از یک مدل arimaاز تابع arima.sim()استفاده می کنیم.فرم این تابع به صورت زیر است: arima.sim(مدل,n=طول سری خروجی) پس از اینکه مدل مناسب به داده ها برازش شد،با استفاده از تابع نقاط بعدی مدل را پیش بینی میکنیم. برای رسم نمودار تشخیصی سری زمانی ،از تابع tsdiag()استفاده میکنیم.که خروجی این تابع شامل نمودار باقی مانده سری زمانی ،نمودار تابع خود هم بستگی باقی مانده، و مقادیر pمقدار برای آماره ی یانگ باکس است. از تابع عمومی summary() برای تولید خلاصه ی نتایج حاصل ار تابع برازش مدل استفاده میکنیم. از تابع عمومی resuduals() برای استخراج باقی مانده های مدل برازش داده شده به وسیله ی تابع برازش استفاده می کنیم. مثال: باتوجه به نمودار برای داده های مرگ ومیر تصادفی در ایلات متحده ملاحظه کردید که این داده ها دارای دوره ی 12 هستند.بنابراین برای اینکه بتوانیم از مدل ARIMAاستفاده کنیم باید تفاضل گیری مرتبه ی یک فصلی داشته باشیم تا مانایی در داده ها حاصل شود در نتیجه مدل پیشنهادی می تواندARIMA(0,1,1)(0,1,1) باشد.بنابراین داریم:> arima(USAccDeaths,order=c(0,1,1),seasonal=list(order=c(0,1,1)))
Call:
arima(x = USAccDeaths, order = c(0, 1, 1), seasonal = list(order = c(0, 1, 1)))
Coefficients:
ma1 sma1
-0.4303 -0.5528
s.e. 0.1228 0.1784
sigma^2 estimated as 99347: log likelihood = -425.44, aic = 856.88
با این دستور،برداری از براورد ضرایب MAوSMA به همراه انحراف معیار آن ها را به دست می آوریم.هم چنین برآورد ماکسیمم درست نمایی واریانس و مقدار AICرا محاسبه می کند. به طور خیلی ساده (4و1و4) اگر بخواهیم توضیح بدم این گونه است که، وابستگی به مقدار واقعی قبل است و وابستگی به مقدار خطای مرحله ی قبل و اختلاف بعدی و فبلی. مثلا 4 اولی:4 جمله ی مقدار قبل(4تا وابستگی داره که از اصل داده ها دریافتش میکند.). مثلا1: یک بار اختلاف میگیریم که سری زمانی جدید به سری سری زمانی مانایی تبدیل شود. مثلا 4 دومی:4 تا از مقدار باقی مانده های مرحله قبل پس از برآورد پارامتر های مدل باید مناسب بودن مدل را بررسی کنیم.بنابراین با الستفاده از دستور زیر پلات زیر بدست می آید:اولین پلات ، پلات نمودار باقی مانده سری است که از الگوی خاصی ندارد.دومین نمودار،نمودار تابع خود هم بستگی باقی مانده هاست که باقی مانده ها معنی دار است. خروجی تابع شامل نمودار باقی مانده ی سری،نمودار تابع خود هم بستگی باقی مانده ها و Pمقدار آماره ی یانگ-باکس دستور کاربردیatuo.arima : این دستور به طور خودکار در نرم افزار می گرده و با توجه به داده ای که در اختیارش قرار داده ایم به طور خودکار و اتو ماتیک را انجام میده و و بهترین را معرفی میکند، به طور خودکار و لزومی نداره که شما بهترین را پیدا کنید. فرم کلی آن به صورت زیر است:tsdiag(arima(USAccDeaths,order=c(0,1,1),seasonal=list(order=c(0,1,1))))
Atuo.arima(data,x)
نظرات
هیچ نظری وجود ندارد.
افزودن نظر
Sitemap
Copyright © 2017 - 2023 Khavarzadeh®. All rights reserved