turn on suggestions

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

Showing results for

Find a Community

- Home
- /
- Analytics
- /
- Stat Procs
- /
- Joint probability distribution of three variable

Topic Options

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

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

03-30-2018 09:01 AM

I have used this for program for copula simulation

data returns;

input ret_x ret_y ret_z;

cards;

0.004182 0.003503 0.584

-0.027960 -0.000582 0.54

0.006732 0.025611 0.14

-0.033435 -0.002838 -0.24

0.029560 0.010814 -0.4

-0.003054 -0.001689 0.8

-0.012255 -0.012408 0.9

0.013958 0.003427 0.14

-0.011318 -0.017075 0.14

-0.022587 0.002316 0.28

;

/* Copula estimation */

proc copula data = returns;

var ret_x ret_y ret_z;

fit normal / outcopula=estimates;

/* keep only correlation estimates */

data estimates;

set estimates;

keep ret_x ret_y ret_z;

/* Copula simulation */

proc copula;

var ret_x ret_y ret_z;

define cop normal (cor = estimates);

simulate cop / ndraws = 500

outuniform = simulated_uniforms

plots=(data=uniform scatter);

run;

Got this log :

1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

70

71 data returns;

72 input ret_x ret_y ret_z;

73 cards;

NOTE: The data set WORK.RETURNS has 10 observations and 3 variables.

NOTE: DATA statement used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 521.87k

OS Memory 28840.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 50 Switch Count 2

Page Faults 0

Page Reclaims 131

Page Swaps 0

Voluntary Context Switches 10

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 272

84 ;

85 /* Copula estimation */

86 proc copula data = returns;

87 var ret_x ret_y ret_z;

88 fit normal / outcopula=estimates;

89 /* keep only correlation estimates */

NOTE: The data set WORK.ESTIMATES has 3 observations and 9 variables.

NOTE: PROCEDURE COPULA used (Total process time):

real time 0.04 seconds

user cpu time 0.04 seconds

system cpu time 0.00 seconds

memory 2572.53k

OS Memory 30124.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 51 Switch Count 2

Page Faults 0

Page Reclaims 517

Page Swaps 0

Voluntary Context Switches 9

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 272

90 data estimates;

91 set estimates;

92 keep ret_x ret_y ret_z;

93 /* Copula simulation */

NOTE: There were 3 observations read from the data set WORK.ESTIMATES.

NOTE: The data set WORK.ESTIMATES has 3 observations and 3 variables.

NOTE: DATA statement used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 801.06k

OS Memory 30124.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 52 Switch Count 2

Page Faults 0

Page Reclaims 143

Page Swaps 0

Voluntary Context Switches 9

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 264

94 proc copula;

95 var ret_x ret_y ret_z;

96 define cop normal (cor = estimates);

___

1

WARNING 1-322: Assuming the symbol CORR was misspelled as cor.

97 simulate cop / ndraws = 500

98 outuniform = simulated_uniforms

99 plots=(data=uniform scatter);

____

22

202

ERROR 22-322: Syntax error, expecting one of the following: ), DATATYPE, DISTRIBUTION, NONE.

ERROR 202-322: The option or parameter is not recognized and will be ignored.

100 run;

NOTE: The SAS System stopped processing this step because of errors.

WARNING: The data set WORK.SIMULATED_UNIFORMS may be incomplete. When this step was stopped there were 0 observations and 0

variables.

WARNING: Data set WORK.SIMULATED_UNIFORMS was not replaced because this step was stopped.

NOTE: PROCEDURE COPULA used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 339.25k

OS Memory 29864.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 53 Switch Count 0

Page Faults 0

Page Reclaims 52

Page Swaps 0

Voluntary Context Switches 0

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 16

101

102

103 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

115

Please help me to solve this and help me to add same data using excel sheet.

data returns;

input ret_x ret_y ret_z;

cards;

0.004182 0.003503 0.584

-0.027960 -0.000582 0.54

0.006732 0.025611 0.14

-0.033435 -0.002838 -0.24

0.029560 0.010814 -0.4

-0.003054 -0.001689 0.8

-0.012255 -0.012408 0.9

0.013958 0.003427 0.14

-0.011318 -0.017075 0.14

-0.022587 0.002316 0.28

;

/* Copula estimation */

proc copula data = returns;

var ret_x ret_y ret_z;

fit normal / outcopula=estimates;

/* keep only correlation estimates */

data estimates;

set estimates;

keep ret_x ret_y ret_z;

/* Copula simulation */

proc copula;

var ret_x ret_y ret_z;

define cop normal (cor = estimates);

simulate cop / ndraws = 500

outuniform = simulated_uniforms

plots=(data=uniform scatter);

run;

Got this log :

1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

70

71 data returns;

72 input ret_x ret_y ret_z;

73 cards;

NOTE: The data set WORK.RETURNS has 10 observations and 3 variables.

NOTE: DATA statement used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 521.87k

OS Memory 28840.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 50 Switch Count 2

Page Faults 0

Page Reclaims 131

Page Swaps 0

Voluntary Context Switches 10

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 272

84 ;

85 /* Copula estimation */

86 proc copula data = returns;

87 var ret_x ret_y ret_z;

88 fit normal / outcopula=estimates;

89 /* keep only correlation estimates */

NOTE: The data set WORK.ESTIMATES has 3 observations and 9 variables.

NOTE: PROCEDURE COPULA used (Total process time):

real time 0.04 seconds

user cpu time 0.04 seconds

system cpu time 0.00 seconds

memory 2572.53k

OS Memory 30124.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 51 Switch Count 2

Page Faults 0

Page Reclaims 517

Page Swaps 0

Voluntary Context Switches 9

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 272

90 data estimates;

91 set estimates;

92 keep ret_x ret_y ret_z;

93 /* Copula simulation */

NOTE: There were 3 observations read from the data set WORK.ESTIMATES.

NOTE: The data set WORK.ESTIMATES has 3 observations and 3 variables.

NOTE: DATA statement used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 801.06k

OS Memory 30124.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 52 Switch Count 2

Page Faults 0

Page Reclaims 143

Page Swaps 0

Voluntary Context Switches 9

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 264

94 proc copula;

95 var ret_x ret_y ret_z;

96 define cop normal (cor = estimates);

___

1

WARNING 1-322: Assuming the symbol CORR was misspelled as cor.

97 simulate cop / ndraws = 500

98 outuniform = simulated_uniforms

99 plots=(data=uniform scatter);

____

22

202

ERROR 22-322: Syntax error, expecting one of the following: ), DATATYPE, DISTRIBUTION, NONE.

ERROR 202-322: The option or parameter is not recognized and will be ignored.

100 run;

NOTE: The SAS System stopped processing this step because of errors.

WARNING: The data set WORK.SIMULATED_UNIFORMS may be incomplete. When this step was stopped there were 0 observations and 0

variables.

WARNING: Data set WORK.SIMULATED_UNIFORMS was not replaced because this step was stopped.

NOTE: PROCEDURE COPULA used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 339.25k

OS Memory 29864.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 53 Switch Count 0

Page Faults 0

Page Reclaims 52

Page Swaps 0

Voluntary Context Switches 0

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 16

101

102

103 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

115

Please help me to solve this and help me to add same data using excel sheet.

Accepted Solutions

Solution

03-31-2018
04:06 AM

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to sreenu

03-30-2018 04:16 PM

You didn't mention what version of SAS you are running, but here is a link to the most recent doc.

1. The correct syntax for the DEFINE statement is

define cop normal (corr = estimates);

2. The correct syntax for the PLOTS option is

plots=(datatype=uniform);

If you are using an older version of SAS that might have different syntax, consult the documentation for your version.

All Replies

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to sreenu

03-30-2018 08:38 AM

data returns;

input ret_x ret_y ret_z;

cards;

0.004182 0.003503 0.584

-0.027960 -0.000582 0.54

0.006732 0.025611 0.14

-0.033435 -0.002838 -0.24

0.029560 0.010814 -0.4

-0.003054 -0.001689 0.8

-0.012255 -0.012408 0.9

0.013958 0.003427 0.14

-0.011318 -0.017075 0.14

-0.022587 0.002316 0.28

;

/* Copula estimation */

proc copula data = returns;

var ret_x ret_y ret_z;

fit normal / outcopula=estimates;

/* keep only correlation estimates */

data estimates;

set estimates;

keep ret_x ret_y ret_z;

/* Copula simulation */

proc copula;

var ret_x ret_y ret_z;

define cop normal (cor = estimates);

simulate cop / ndraws = 500

outuniform = simulated_uniforms

plots=(data=uniform scatter);

run;

Got this log :

1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

70

71 data returns;

72 input ret_x ret_y ret_z;

73 cards;

NOTE: The data set WORK.RETURNS has 10 observations and 3 variables.

NOTE: DATA statement used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 521.87k

OS Memory 28840.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 50 Switch Count 2

Page Faults 0

Page Reclaims 131

Page Swaps 0

Voluntary Context Switches 10

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 272

84 ;

85 /* Copula estimation */

86 proc copula data = returns;

87 var ret_x ret_y ret_z;

88 fit normal / outcopula=estimates;

89 /* keep only correlation estimates */

NOTE: The data set WORK.ESTIMATES has 3 observations and 9 variables.

NOTE: PROCEDURE COPULA used (Total process time):

real time 0.04 seconds

user cpu time 0.04 seconds

system cpu time 0.00 seconds

memory 2572.53k

OS Memory 30124.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 51 Switch Count 2

Page Faults 0

Page Reclaims 517

Page Swaps 0

Voluntary Context Switches 9

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 272

90 data estimates;

91 set estimates;

92 keep ret_x ret_y ret_z;

93 /* Copula simulation */

NOTE: There were 3 observations read from the data set WORK.ESTIMATES.

NOTE: The data set WORK.ESTIMATES has 3 observations and 3 variables.

NOTE: DATA statement used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 801.06k

OS Memory 30124.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 52 Switch Count 2

Page Faults 0

Page Reclaims 143

Page Swaps 0

Voluntary Context Switches 9

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 264

94 proc copula;

95 var ret_x ret_y ret_z;

96 define cop normal (cor = estimates);

___

1

WARNING 1-322: Assuming the symbol CORR was misspelled as cor.

97 simulate cop / ndraws = 500

98 outuniform = simulated_uniforms

99 plots=(data=uniform scatter);

____

22

202

ERROR 22-322: Syntax error, expecting one of the following: ), DATATYPE, DISTRIBUTION, NONE.

ERROR 202-322: The option or parameter is not recognized and will be ignored.

100 run;

NOTE: The SAS System stopped processing this step because of errors.

WARNING: The data set WORK.SIMULATED_UNIFORMS may be incomplete. When this step was stopped there were 0 observations and 0

variables.

WARNING: Data set WORK.SIMULATED_UNIFORMS was not replaced because this step was stopped.

NOTE: PROCEDURE COPULA used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 339.25k

OS Memory 29864.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 53 Switch Count 0

Page Faults 0

Page Reclaims 52

Page Swaps 0

Voluntary Context Switches 0

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 16

101

102

103 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

115

Please help me to solve this and help me to add same data using excel sheet.

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to sreenu

03-30-2018 09:03 AM

data returns;

input ret_x ret_y ret_z;

cards;

0.004182 0.003503 0.584

-0.027960 -0.000582 0.54

0.006732 0.025611 0.14

-0.033435 -0.002838 -0.24

0.029560 0.010814 -0.4

-0.003054 -0.001689 0.8

-0.012255 -0.012408 0.9

0.013958 0.003427 0.14

-0.011318 -0.017075 0.14

-0.022587 0.002316 0.28

;

/* Copula estimation */

proc copula data = returns;

var ret_x ret_y ret_z;

fit normal / outcopula=estimates;

/* keep only correlation estimates */

data estimates;

set estimates;

keep ret_x ret_y ret_z;

/* Copula simulation */

proc copula;

var ret_x ret_y ret_z;

define cop normal (cor = estimates);

simulate cop / ndraws = 500

outuniform = simulated_uniforms

plots=(data=uniform scatter);

run;

Got this log :

1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

70

71 data returns;

72 input ret_x ret_y ret_z;

73 cards;

NOTE: The data set WORK.RETURNS has 10 observations and 3 variables.

NOTE: DATA statement used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 521.87k

OS Memory 28840.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 50 Switch Count 2

Page Faults 0

Page Reclaims 131

Page Swaps 0

Voluntary Context Switches 10

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 272

84 ;

85 /* Copula estimation */

86 proc copula data = returns;

87 var ret_x ret_y ret_z;

88 fit normal / outcopula=estimates;

89 /* keep only correlation estimates */

NOTE: The data set WORK.ESTIMATES has 3 observations and 9 variables.

NOTE: PROCEDURE COPULA used (Total process time):

real time 0.04 seconds

user cpu time 0.04 seconds

system cpu time 0.00 seconds

memory 2572.53k

OS Memory 30124.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 51 Switch Count 2

Page Faults 0

Page Reclaims 517

Page Swaps 0

Voluntary Context Switches 9

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 272

90 data estimates;

91 set estimates;

92 keep ret_x ret_y ret_z;

93 /* Copula simulation */

NOTE: There were 3 observations read from the data set WORK.ESTIMATES.

NOTE: The data set WORK.ESTIMATES has 3 observations and 3 variables.

NOTE: DATA statement used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 801.06k

OS Memory 30124.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 52 Switch Count 2

Page Faults 0

Page Reclaims 143

Page Swaps 0

Voluntary Context Switches 9

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 264

94 proc copula;

95 var ret_x ret_y ret_z;

96 define cop normal (cor = estimates);

___

1

WARNING 1-322: Assuming the symbol CORR was misspelled as cor.

97 simulate cop / ndraws = 500

98 outuniform = simulated_uniforms

99 plots=(data=uniform scatter);

____

22

202

ERROR 22-322: Syntax error, expecting one of the following: ), DATATYPE, DISTRIBUTION, NONE.

ERROR 202-322: The option or parameter is not recognized and will be ignored.

100 run;

NOTE: The SAS System stopped processing this step because of errors.

WARNING: The data set WORK.SIMULATED_UNIFORMS may be incomplete. When this step was stopped there were 0 observations and 0

variables.

WARNING: Data set WORK.SIMULATED_UNIFORMS was not replaced because this step was stopped.

NOTE: PROCEDURE COPULA used (Total process time):

real time 0.00 seconds

user cpu time 0.00 seconds

system cpu time 0.00 seconds

memory 339.25k

OS Memory 29864.00k

Timestamp 03/30/2018 10:48:35 AM

Step Count 53 Switch Count 0

Page Faults 0

Page Reclaims 52

Page Swaps 0

Voluntary Context Switches 0

Involuntary Context Switches 0

Block Input Operations 0

Block Output Operations 16

101

102

103 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;

115

Please help me to solve this and help me to add same data using excel sheet.

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to sreenu

03-30-2018 10:25 AM

Multiple identical posts merged to a single topic.

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to ballardw

03-30-2018 11:56 AM

Sorry for the mistake Sir ...thanks a lot for replying ....expecting good answers from the people like you

Solution

03-31-2018
04:06 AM

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to sreenu

03-30-2018 04:16 PM

You didn't mention what version of SAS you are running, but here is a link to the most recent doc.

1. The correct syntax for the DEFINE statement is

define cop normal (corr = estimates);

2. The correct syntax for the PLOTS option is

plots=(datatype=uniform);

If you are using an older version of SAS that might have different syntax, consult the documentation for your version.

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to Rick_SAS

03-31-2018 11:07 AM

data returns;

input ret_x ret_y ret_z;

cards;

0.004182 0.003503 0.584

-0.027960 -0.000582 0.54

0.006732 0.025611 0.14

-0.033435 -0.002838 -0.24

0.029560 0.010814 -0.4

-0.003054 -0.001689 0.8

-0.012255 -0.012408 0.9

0.013958 0.003427 0.14

-0.011318 -0.017075 0.14

-0.022587 0.002316 0.28

;

/* Copula estimation and simulation of returns */

proc copula data = returns;

var ret_x ret_y ret_z;

* fit T-copula to stock returns;

fit T /

marginals = empirical

method = MLE

plots = (datatype = both);

* simulate 10000 observations;

* independent in time, dependent in cross-section;

simulate /

ndraws = 10000

seed = 1234

out = simulated_returns

plots(unpack) = (datatype = original);

/* compute equally weighted portfolio return */

data port_ret (drop = i ret);

set simulated_returns;

array returns{3} ret_x ret_y ret_z;

ret =0;

do i =1 to 3;

ret = ret+ 0.2*exp(returns[i]);

end;

port_ret = ret-1;

/* compute descriptive statistics */

/* quantile table will give Value-at-Risk estimates for the portfolio */

proc univariate data = port_ret;

var port_ret;

run;

I have used this code in SAS o demand of academics. its working and got results...Stil I am having one problem..I didnt get a combined JPDF..what i have to do for that

input ret_x ret_y ret_z;

cards;

0.004182 0.003503 0.584

-0.027960 -0.000582 0.54

0.006732 0.025611 0.14

-0.033435 -0.002838 -0.24

0.029560 0.010814 -0.4

-0.003054 -0.001689 0.8

-0.012255 -0.012408 0.9

0.013958 0.003427 0.14

-0.011318 -0.017075 0.14

-0.022587 0.002316 0.28

;

/* Copula estimation and simulation of returns */

proc copula data = returns;

var ret_x ret_y ret_z;

* fit T-copula to stock returns;

fit T /

marginals = empirical

method = MLE

plots = (datatype = both);

* simulate 10000 observations;

* independent in time, dependent in cross-section;

simulate /

ndraws = 10000

seed = 1234

out = simulated_returns

plots(unpack) = (datatype = original);

/* compute equally weighted portfolio return */

data port_ret (drop = i ret);

set simulated_returns;

array returns{3} ret_x ret_y ret_z;

ret =0;

do i =1 to 3;

ret = ret+ 0.2*exp(returns[i]);

end;

port_ret = ret-1;

/* compute descriptive statistics */

/* quantile table will give Value-at-Risk estimates for the portfolio */

proc univariate data = port_ret;

var port_ret;

run;

I have used this code in SAS o demand of academics. its working and got results...Stil I am having one problem..I didnt get a combined JPDF..what i have to do for that

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to Rick_SAS

03-31-2018 11:11 AM

Dear sir, I have got the following results, but i am expecting a JPDF table, How to get that jpdf

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to sreenu

03-31-2018 04:04 AM

Thanks for your reply sir .. am using Sas on demand of academics ....can i use the syntax suggested by you ?