## Generate Equation based on Estimates

Solved
Regular Contributor
Posts: 185

# Generate Equation based on Estimates

I want to generate logistic regression equation based on coefficient estimates. I am trying to find automate solution -

The coefficient estimates are stored in a dataset. They look like below -

 Variables Estimate Intercept 0.001 ABCD 0.558356 DEFG 0.464783 HIJKL 0.111268 MNOP 0.811915

score = 0.001 + 0.558356 * ABCD + 0.464783 * DEFG + 0.111269 * HIJKL + 0.811915 * MNOP

p = 1 / (1 + exp(-score))

I want the following equation to be stored in a separate data set. In this data set, there would be a single column named "Equation" and first row contains the equation:

P_1 = 1 / (1 + exp( -(0.001 + 0.558356 * ABCD + 0.464783 * DEFG + 0.111269 * HIJKL + 0.811915 * MNOP))

Note : I am aware of SCORE, OUTMODEL and INMODEL statements in PROC LOGISTIC to calculate predicted probability. But my task is to note down the equation based on estimates.

Accepted Solutions
Solution
‎08-02-2015 02:02 PM
Posts: 5,540

## Re: Generate Equation based on Estimates

Build the string using CAT_ functions:

data want;

length eq \$200;

do until (done);

set estimates end=done;

if Variable = "Intercept" then

eq = catx(" + ", Eq, Estimate);

else

eq = catx(" + ", Eq, catx(" * ", Estimate, Variable));

end;

Eq = cats( "P_1 = 1 / (1 + exp( -(", Eq, "))");

keep Eq;

run;

PG

PG

All Replies
Solution
‎08-02-2015 02:02 PM
Posts: 5,540

## Re: Generate Equation based on Estimates

Build the string using CAT_ functions:

data want;

length eq \$200;

do until (done);

set estimates end=done;

if Variable = "Intercept" then

eq = catx(" + ", Eq, Estimate);

else

eq = catx(" + ", Eq, catx(" * ", Estimate, Variable));

end;

Eq = cats( "P_1 = 1 / (1 + exp( -(", Eq, "))");

keep Eq;

run;

PG

PG
Regular Contributor
Posts: 185

## Re: Generate Equation based on Estimates

Thanks a ton. It works like charm. Could you please explain how it works -

if Variable = "Intercept" then

eq = catx(" + ", Eq, Estimate);

else

eq = catx(" + ", Eq, catx(" * ", Estimate, Variable));

end;

Posts: 5,540

## Re: Generate Equation based on Estimates

CATX function concatenates values (strings or formatted numbers) and adds the first function argument (e.g. " + ") between the concatenated values. So here, the string eq is built up by adding to it ( eq = catx(" + ", eq, something) ) the intercept estimate or the concatenation of the estimate and the variable name, separated by " * ", using the CATX function again. Initially, eq is empty.

Read the manual for more fun details about the CATX, CATS, and CATT functions .

PG
🔒 This topic is solved and locked.