Hi Fred,
there are several ways to parameterize and several to code this.
A GUI user would open the "Nonlinear" dialogue window and klick on
[Model Library],
chose "First-order Deacay Kinetics", klick on [Make Formula]
assign Y, X, and Group variables y, x, group and the comparison group
(here: "c").
After a klick on [Make Formula] in the starting values selection window
a new table column would contain the fomula (with other numbers)
Parameter(
{theta1_a = 0.1, theta1_b = 0.1, theta1 = 1,
theta2_a = 0.1, theta2_b = 0.1, theta2 = -1,
theta3_a = 0.1, theta3_b = 0.1, theta3 = 1},
(theta1 + theta1_a * (:group == "a") + theta1_b * (:group == "b"))* Exp(
-(theta2 + theta2_a * (:group == "a") + theta2_b * (:group == "b")) *
:x) +
(theta3 + theta3_a * (:group == "a") + theta3_b * (:group ==
"b"))
)
You might want to enter your formula via the column properties,
define Parameters A, B, C with
[x] expand into categories, selecting column (here: group)
and enter the formula as usual with the result:
Parameter(
{A_group_a = 1, A_group_b = 1, A_group_c = 1,
B_group_a = 1, B_group_b = 1, B_group_c = 1,
C_group_a = 1, C_group_b = 1, C_group_c = 1},
Match( :group, "a", A_group_a, "b", A_group_b, "c", A_group_c ) +
Match( :group, "a", B_group_a, "b", B_group_b, "c", B_group_c ) * (1
- Exp( - :x /
Match( :group, "a", C_group_a, "b", C_group_b, "c", C_group_c)
) )
)
To switch from dummy coding (reference group "c") to effect coding, as
used in the linear model prediction formula, change to
Parameter(
{A = 1, A_a = 1, A_b = 1,
B = 1, B_a = 1, B_b = 1,
C = 1, C_a = 1, C_b = 1},
(A + Match( :group, "a", A_a, "b", A_b, "c", -A_a - A_b ))+
(B + Match( :group, "a", B_a, "b", B_b, "c", -B_a - B_b )) * (1 -
Exp( - :x /
(C + Match( :group, "a", C_a, "b", C_b, "c", -C_a - C_b))
) )
)
For a shared Parameter C, you could delete the last Match() from the
formula.
I'd advise to instead chose "Remember Solution" from the red triangle,
use the report window options
Parameter Current Value Lock
C_a 0 [x]
C_b 0 [x]
and "Remember Solution" again, so you get the test, if these parameters
are equal across groups.
Reinhard Vonthein
------Original Message------
I would like to specify a non-linear model in JMP and allow different coefficients for different treatments.
That is the only statistical software available to me.
The linear analog would be (something like): Y = TREATMENT, SLOPE, TREATMENT*SLOPE
This model will fit overall INTERCEPT and SLOPE, and deviations from those for each TREATMENT.
In effect, each TREATMENT will have its own INTERCEPT and SLOPE.
Variations on this are: Y = TREATMENT, SLOPE (where each TREATMENT has its own INTERCEPT, but they all have the same SLOPE), etc.
I am fitting the model: Y = A + B[1-EXP(-x/C)]
And I (might) want each of the treatments to have their own A, B, C
Depending on the fit and the regression diagnostics, I may decide they can share one or more of the parameters – that's what I'm trying to find out.
In the past, I brute-forced this situation by fitting the model BY TREATMENT, and later re-combining, but now my dataset is too big for that.
I appreciate any advice you might have.
Thank you.
Regards,
Fred W. Girshick
This note may contain Infineum confidential information. If you are an unintended recipient, (i) place no reliance on the information contained herein, (ii) do not disclose, distribute, or duplicate any information from this note, and (iii) please contact the author.
________________________________________