Statistical programming, matrix languages, and more

Integration of a function including Chi-square

Accepted Solution Solved
Reply
New Contributor
Posts: 2
Accepted Solution

Integration of a function including Chi-square

I want to integral this function (1-chi-square(x/2,df=10))**5 by the chi-square(x, df=10), so I write the code below. However, the error showed up. Can any one help me solve this problem?

 

Proc iml;

start integrand(probchi(x,10));

return ((1-probchi((x/2),10))**5);

finish;

call quad(answer, "integrand", {0 .P});

print answer;

quit;


Accepted Solutions
Solution
‎10-01-2016 03:33 PM
SAS Super FREQ
Posts: 3,615

Re: Integration of a function including Chi-square

[ Edited ]

So that we can all use the same terminology, please review "The four essential functions for statistical programmers."

For the chi-square distribution, the CDF at x is the integral of the PDF from 0 to x. It looks like you want your integrand to be

(1 - CDF("ChiSq", x, 10))**5, and the domain of integration to be [0, infinity).

 

If so, then your code is almost right. Just a slight modification of the calling syntax (and I use CDF instead of PROBCHI):

 

proc iml;
start integrand(x);
   return (1-cdf("ChiSq", x/2,10))##5 ;
finish;
call quad(answer, "integrand", {0 .P});
print answer;

View solution in original post


All Replies
Solution
‎10-01-2016 03:33 PM
SAS Super FREQ
Posts: 3,615

Re: Integration of a function including Chi-square

[ Edited ]

So that we can all use the same terminology, please review "The four essential functions for statistical programmers."

For the chi-square distribution, the CDF at x is the integral of the PDF from 0 to x. It looks like you want your integrand to be

(1 - CDF("ChiSq", x, 10))**5, and the domain of integration to be [0, infinity).

 

If so, then your code is almost right. Just a slight modification of the calling syntax (and I use CDF instead of PROBCHI):

 

proc iml;
start integrand(x);
   return (1-cdf("ChiSq", x/2,10))##5 ;
finish;
call quad(answer, "integrand", {0 .P});
print answer;
New Contributor
Posts: 2

Re: Integration of a function including Chi-square

Thank you! Yes, this is very helpful. But I want the "Integrand (CDF("ChiSq", x/2, 10))" instead of Integrand (x)). In other word, I want "dCDF("ChiSq", x/2, 10)" instead of "dx". How should I do that?

SAS Super FREQ
Posts: 3,615

Re: Integration of a function including Chi-square

Sorry, but I don't understand your notation.  I don't know what "dCDF" means, unless you mean PDF, which is the derivative of the CDF.

 

The Integrand function evaluates a function at a value of x. It returns a number. The QUAD function integrates that function on a (possibly infinite) interval. It returns the definite integral of the function on the interval.

Super User
Posts: 9,854

Re: Integration of a function including Chi-square

Maybe you should calculated it by hand firstly.
Assuming CDF("ChiSq", x/2, 10)= e^x , then
dCDF("ChiSq", x/2, 10)= e^x * dx 

SAS Super FREQ
Posts: 3,615

Re: Integration of a function including Chi-square

If F(x) is the cumulative distribution function and f(x) is the associated density, then one iterpretation of "dCDF" is

dF = dF/dx * dx = f(x) dx

which is why I suggested using the PDF function.  

 

However, if the argument to F is itself a function of x, say u(x), then make sure you use the chain rule. For example, if the argument is u(x) then 

d(F(u(x)) = dF/du * du/dx * dx = f(u(x)) * u`(x) dx

 

 

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 5 replies
  • 322 views
  • 0 likes
  • 3 in conversation