Skip to content

[Question] What if the return mean & sem of status_quo for each iteration is different? #274

@FriendLey

Description

@FriendLey

In the online A/B test. We use the BatchTrial mode and set a status_quo(control group). Because of fluctuations in the online metrics, we usually have different mean and sem of status_quo in each iteration.

Suppose we need to optimize a range parameter $a \in [0.0, 1.0]$. The objective metric is video playback time per capita which can only be obtained through online experiments. We started an online experiment with three groups and the control group's parameter is $a = 0.0$. The experiment went through two iterations, one from Monday to Wednesday and the other from Thursday to Saturday. we get the following data frame:

arm_name trial_index a mean(s) sem time
0_0 0 0.3 1600 0 Mon. - Wed.
0_1 0 0.5 1700 0 Mon. - Wed.
Control 0 0.0 1650 0 Mon. - Wed.
1_0 1 1.0 2500 0 Thu. - Sat.
1_1 1 0.8 2600 0 Thu. - Sat.
Control 1 0.0 2300 0 Thu. - Sat.

(For convenience, assuming that sem of each group is 0)

if I directly use Models.BOTORCH(experiment=exp, data=exp.eval()) to generate a model, It will prompt Warning: [WARNING 03-16 14:37:02] ModelBridge: Status quo status_quo found in data with multiple features. Use status_quo_features to specify which to use. But It can be seen from the results that the mean between multiple iterations cannot be directly compared. So I can't specify which to use.

My method is to first calculate the relative difference of each group relative to the control group of the corresponding iteration. After processing, I have the following data:

arm_name trial_index a mean(s) sem time
0_0 0 0.3 (1600 - 1650) / 1650 = -0.030 0 Mon. - Wed.
0_1 0 0.5 (1700 - 1650) / 1650 = 0.030 0 Mon. - Wed.
1_0 1 1.0 (2500 - 2300) / 2300 = 0.087 0 Thu. - Sat.
1_1 1 0.8 (2600 - 2300) / 2300 = 0.130 0 Thu. - Sat.
Control 1 0.0 0 0 Thu. - Sat.

Then pass this data to Models.BOTORCH. My question are:

  1. How does Ax handle this scenario?
  2. Is My method correct? If correct, does Ax consider supporting this method internally?

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions