Turn on suggestions

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

Showing results for

Options

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

🔒 This topic is **solved** and **locked**.
Need further help from the community? Please
sign in and ask a **new** question.

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

Posted 09-21-2016 02:45 PM
(1571 views)

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;

1 ACCEPTED SOLUTION

Accepted Solutions

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

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;
```

5 REPLIES 5

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

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;
```

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

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

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.

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

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

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

Are you ready for the spotlight? We're accepting content ideas for **SAS Innovate 2025** to be held May 6-9 in Orlando, FL. The call is **open **until September 25. Read more here about **why** you should contribute and **what is in it** for you!

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.