Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Home
- /
- Analytics
- /
- Forecasting
- /
- MA(2)

Options

- RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Posted 03-08-2016 04:32 AM
(1743 views)

Re: MA(2)[ Edited ]

37m ago - last edited 22m ago

Hi

I am applying a second order moving average process (MA(2)) to uncover the

unobserved returns.

I am trying to estimate the parameters of the model for each hedge fund strategy by maximum likeli-

hood. Then the estimated parameters will be used to desmooth returns.

How do i go about this last part. You help would be greatly appreciated

My codes so far just gives me the moving average factor

proc arima data = sample ;

by mainstrategy;

identify var=returns nlag=6 outcov=acf noprint ;

estimate q=2;

run ;

Is there a problem with using the by statement in arima procedure. Is there another way to achieve the same results without using the by statement.

My orginal data is too huge to upload so here is a sample

Date Return AUM mainstrategy

199512 -0.0055 26.9 Relative value

199601 0.0048 27.1 Relative value

199602 0.0089 30.7 CTA

3 REPLIES 3

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Hello,

There is no problem with using BY groups in PROC ARIMA. In order to obtain ML estimates of the MA parameters you must use method=ml option in the estimate statement. However, I do not understand your question very well. It is unclear what you mean by "desmoothing" using the estimated MA parameters. Assuming "returns" are your observed returns, you are fitting a returns = constant + MA(2) model. If you want, (returns - estimated constant) can surve as an estimate of the MA part. Is this what you want?

By the way, your mathematical equation does not conform to your ARIMA model specification. Do you mean the unobserved R_t acts like the white noise part of the ARIMA model? ARIMA assumes theta_0 to be 1.

There is another procedure, PROC UCM, in SAS/ETS that might be more appropriate for decomposing your returns into a slow moving smooth part and a rougher noise part. See an example of trend removal using HP filter: https://support.sas.com/documentation/cdl/en/etsug/68148/HTML/default/viewer.htm#etsug_ucm_examples0... You can also get a decomposition based on an MA(2) component (see the syntax for IRREGULAR component: https://support.sas.com/documentation/cdl/en/etsug/68148/HTML/default/viewer.htm#etsug_ucm_syntax11....). UCM is a very general purpose procedure to obtain such decompositions. It supports BY processing also. If you want even more customization, you can use the SSM procedure (https://support.sas.com/documentation/cdl/en/etsug/68148/HTML/default/viewer.htm#etsug_ssm_gettingst...). However, SSM procedure usually requires more coding.

Hope this helps.

Hope this helps.

Rajesh

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Hi Rajesh,

I think there can be a bit of confusion in the equation because of the R's. But lets take a clearer one where

where X_t is the unobserved returns and nt is the white noise. then I want to estimate the parameters using the

maximum likelihood estimation method with the normalization constraint 1 = theta0 + theta1 + theta2.

thanks

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

**SAS Innovate 2025** is scheduled for May 6-9 in Orlando, FL. Sign up to be **first to learn** about the agenda and registration!

Multiple Linear Regression in SAS

Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.

Find more tutorials on the SAS Users YouTube channel.