{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":10038,"databundleVersionId":180088,"sourceType":"competition"}],"dockerImageVersionId":30747,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"## Theory: \n\nA/B testing is a powerful method to compare two or more variants of a treatment (e.g., a webpage, an algorithm, etc.) to determine which one performs better. Here's a comprehensive guide on how to conduct A/B testing, including A/A testing, practical significance, guardrail metrics, network effects, and considerations for double-sided markets.\n\n### 1. **Define the Problem and Goals**\n   - **Example:** Your goal is to increase the average revenue per user (ARPU).\n   - **Primary Metric:** Average Revenue per User (ARPU).\n   - **Secondary Metrics:** Conversion Rate (CR), Time Spent on Page, etc.\n   - **Guardrail Metrics:** Metrics that you do not want to worsen (e.g., Bounce Rate, Cart Abandonment Rate).\n\n### 2. **Conduct A/A Testing**\n   - **Purpose:** A/A testing is used to ensure that your experiment setup is not biased and that randomization works as expected.\n   - **Steps:**\n     1. **Split your traffic:** Randomly divide users into two groups (A1 and A2), both seeing the current checkout page.\n     2. **Run the test:** Measure the metrics over a period.\n     3. **Check for Bias:** If both groups A1 and A2 show similar results, your randomization process is likely unbiased.\n   - **Metrics Analysis:** Conduct hypothesis testing (t-test) to compare the metrics from A1 and A2. The p-value should be high (usually > 0.05), indicating no significant difference.\n\n### 3. **Design the A/B Test**\n   - **Variant Creation:** Develop an alternative checkout page (Variant B).\n   - **Traffic Allocation:** Split users randomly into two groups:\n     - **Group A:** Control group sees the original page.\n     - **Group B:** Treatment group sees the new page.\n   - **Sample Size Calculation:** Determine the required sample size using the following inputs:\n     - **Baseline Conversion Rate (ARPU):** From historical data.\n     - **Minimum Detectable Effect (MDE):** The smallest improvement you want to detect (e.g., a 2% increase in ARPU).\n     - **Statistical Power (1 - β):** Typically set at 0.8 (80%).\n     - **Significance Level (α):** Typically set at 0.05.\n\n   - **Formula:** Mentioned Below\n\n### 4. **Set Alpha, Beta, and Practical Significance**\n   - **Alpha (α):** The probability of a Type I error (false positive). Set it to 0.05 for a 5% significance level.\n   - **Beta (β):** The probability of a Type II error (false negative). Commonly set to 0.2, giving 80% power.\n   - **Practical Significance:** Define the minimum effect size that is meaningful for your business (e.g., a 1% increase in ARPU might be financially significant).\n\n### 5. **Run the A/B Test**\n   - **Monitor Metrics:** Track both primary and secondary metrics in real-time.\n   - **Guardrail Metrics:** Ensure that guardrail metrics (e.g., bounce rate) do not degrade significantly.\n   - **Network Effects:** If your platform has network effects (e.g., user interactions in a social network), account for potential spillovers where changes in one group affect the other.\n   - **Double-Sided Market Considerations:** In markets with two user groups (e.g., buyers and sellers), ensure that changes on one side do not negatively impact the other.\n\n### 6. **Analyze the Results**\n   - **Hypothesis Testing:** Use a t-test or z-test to determine if the difference between Group A and Group B is statistically significant.\n     - **Null Hypothesis (H0):** There is no difference in ARPU between the original and new checkout pages.\n     - **Alternative Hypothesis (H1):** There is a difference in ARPU.\n   - **Confidence Interval:** Calculate the confidence interval for the difference in ARPU to understand the range of possible outcomes.\n   - **P-Value:** Compare the p-value to α (0.05). If p < 0.05, reject the null hypothesis, indicating that the difference is statistically significant.\n   - **Practical Significance:** Check if the observed difference meets the threshold for practical significance.\n\n### 7. **Consider Network and Market Effects**\n   - **Network Effects:** If applicable, check if the test influenced user interactions beyond the test group, which could bias results.\n   - **Double-Sided Market:** Ensure that changes beneficial to one side (e.g., buyers) do not negatively affect the other side (e.g., sellers).\n\n### 8. **Decide and Implement**\n   - **Go/No-Go Decision:** Based on statistical and practical significance, decide whether to implement the new variant.\n   - **Rollout Plan:** If Variant B is successful, decide on a gradual or full rollout.\n\n### 9. **Document and Share Findings**\n   - **Documentation:** Record the hypothesis, methodology, results, and decisions.\n   - **Presentation:** Share the results with stakeholders, emphasizing both the statistical significance and practical implications.\n\n### 10. **Post-Experiment Monitoring**\n   - **Monitor Performance:** After rolling out the winning variant, continue to monitor key metrics to ensure that the observed improvements persist over time.","metadata":{}},{"cell_type":"code","source":"import os\nimport json\nimport numpy as np\nimport pandas as pd\n\ndef load_df(csv_path='/kaggle/input/ga-customer-revenue-prediction/train.csv', nrows=None):\n    JSON_COLUMNS = ['device', 'geoNetwork', 'totals', 'trafficSource']\n    \n    df = pd.read_csv(csv_path, \n                     converters={column: json.loads for column in JSON_COLUMNS}, \n                     dtype={'fullVisitorId': 'str'}, # Important!!\n                     nrows=nrows)\n    \n    for column in JSON_COLUMNS:\n        column_as_df = pd.json_normalize(df[column])\n        column_as_df.columns = [f\"{column}.{subcolumn}\" for subcolumn in column_as_df.columns]\n        df = df.drop(column, axis=1).merge(column_as_df, right_index=True, left_index=True)\n    print(f\"Loaded {os.path.basename(csv_path)}. Shape: {df.shape}\")\n    return df\n\nprint(os.listdir(\"../input\"))","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:16:24.175647Z","iopub.execute_input":"2024-08-20T03:16:24.176085Z","iopub.status.idle":"2024-08-20T03:16:24.188062Z","shell.execute_reply.started":"2024-08-20T03:16:24.176049Z","shell.execute_reply":"2024-08-20T03:16:24.186835Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time\ndf_small = load_df(nrows=20000)","metadata":{"execution":{"iopub.status.busy":"2024-08-20T01:39:37.885281Z","iopub.execute_input":"2024-08-20T01:39:37.885681Z","iopub.status.idle":"2024-08-20T01:41:06.696364Z","shell.execute_reply.started":"2024-08-20T01:39:37.885651Z","shell.execute_reply":"2024-08-20T01:41:06.695161Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pandas as pd\n\n# Load the dataset (assuming it's downloaded and extracted)\ndf = load_df()\n\ndf_raw = df.copy()\n\n# Display basic information\ndisplay(df.info())\ndisplay(df.head())\n\n# Convert transactionRevenue to float and fill NaNs with 0\ndf['totals.transactionRevenue'] = df['totals.transactionRevenue'].astype(float).fillna(0)","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-08-20T03:16:28.295555Z","iopub.execute_input":"2024-08-20T03:16:28.295995Z","iopub.status.idle":"2024-08-20T03:18:33.964897Z","shell.execute_reply.started":"2024-08-20T03:16:28.295959Z","shell.execute_reply":"2024-08-20T03:18:33.963579Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Create a new column for revenue in USD\ndf['revenue'] = df['totals.transactionRevenue'] / 1e6","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:25:51.882324Z","iopub.execute_input":"2024-08-20T03:25:51.882750Z","iopub.status.idle":"2024-08-20T03:25:51.892197Z","shell.execute_reply.started":"2024-08-20T03:25:51.882713Z","shell.execute_reply":"2024-08-20T03:25:51.890776Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df['geoNetwork.city'].value_counts().head()","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:25:52.801031Z","iopub.execute_input":"2024-08-20T03:25:52.801403Z","iopub.status.idle":"2024-08-20T03:25:53.065746Z","shell.execute_reply.started":"2024-08-20T03:25:52.801374Z","shell.execute_reply":"2024-08-20T03:25:53.064623Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_analyze = df[df['geoNetwork.city'].isin(['Mountain View', 'San Francisco'])].copy()","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:25:55.175044Z","iopub.execute_input":"2024-08-20T03:25:55.175996Z","iopub.status.idle":"2024-08-20T03:25:56.244691Z","shell.execute_reply.started":"2024-08-20T03:25:55.175952Z","shell.execute_reply":"2024-08-20T03:25:56.243114Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from scipy.stats import ttest_ind\n\n# Randomly split the data into two groups\ngroup_A1 = df_analyze.sample(frac=0.5, random_state=1)\ngroup_A2 = df_analyze.drop(group_A1.index)\n\n# Calculate mean revenue for both groups\nmean_A1 = group_A1['revenue'].mean()\nmean_A2 = group_A2['revenue'].mean()\n\n# Perform a t-test\nt_stat, p_value = ttest_ind(group_A1['revenue'], group_A2['revenue'], equal_var=False)\n\nprint(f\"Mean Revenue Group A1: {mean_A1}\")\nprint(f\"Mean Revenue Group A2: {mean_A2}\")\nprint(f\"P-Value: {p_value}\")\n\n# Check if p-value > 0.05\nif p_value > 0.05:\n    print(\"No significant difference between A1 and A2. Randomization is working.\")\nelse:\n    print(\"Significant difference found. Randomization may be biased.\")","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:25:57.119201Z","iopub.execute_input":"2024-08-20T03:25:57.119611Z","iopub.status.idle":"2024-08-20T03:25:57.327865Z","shell.execute_reply.started":"2024-08-20T03:25:57.119575Z","shell.execute_reply":"2024-08-20T03:25:57.326088Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import numpy as np\n\n# Create a random binary flag for variant B (1 means user sees the new variant)\ndf_analyze['variant_B'] = (df_analyze['geoNetwork.city']=='San Francisco')\n\n# Split data into control (A) and treatment (B) groups\ncontrol_group = df_analyze[~df_analyze['variant_B']]\ntreatment_group = df_analyze[df_analyze['variant_B']]","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:26:17.641319Z","iopub.execute_input":"2024-08-20T03:26:17.641743Z","iopub.status.idle":"2024-08-20T03:26:17.832477Z","shell.execute_reply.started":"2024-08-20T03:26:17.641712Z","shell.execute_reply":"2024-08-20T03:26:17.830950Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import statsmodels.stats.api as sms\n\n# Baseline conversion rate (from historical data)\nbaseline_cr = 0.01  # Example value\n\n# Minimum Detectable Effect (MDE)\nmde = 0.02  # 2% increase in conversion rate\n\n# Significance level (alpha)\nalpha = 0.05\n\n# Power (1 - beta)\npower = 0.8\n\n# Calculate sample size\nsample_size = sms.NormalIndPower().solve_power(\n    effect_size=sms.proportion_effectsize(baseline_cr, baseline_cr + mde),\n    power=power, alpha=alpha, ratio=control_group.shape[0]/treatment_group.shape[0])\nprint(f\"Required sample size per group: {int(sample_size)}\")","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:26:19.609511Z","iopub.execute_input":"2024-08-20T03:26:19.609909Z","iopub.status.idle":"2024-08-20T03:26:19.634231Z","shell.execute_reply.started":"2024-08-20T03:26:19.609875Z","shell.execute_reply":"2024-08-20T03:26:19.632821Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"control_group.shape, treatment_group.shape","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:22:08.074351Z","iopub.execute_input":"2024-08-20T03:22:08.075327Z","iopub.status.idle":"2024-08-20T03:22:08.082226Z","shell.execute_reply.started":"2024-08-20T03:22:08.075284Z","shell.execute_reply":"2024-08-20T03:22:08.081119Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Calculate mean revenue for both groups\nmean_control = control_group['revenue'].mean()\nmean_treatment = treatment_group['revenue'].mean()\n\n# Perform a t-test\nt_stat, p_value = ttest_ind(control_group['revenue'], treatment_group['revenue'], equal_var=False)\n\nprint(f\"Mean Revenue Control Group: {mean_control}\")\nprint(f\"Mean Revenue Treatment Group: {mean_treatment}\")\nprint(f\"P-Value: {p_value}\")\n\n# Check if the result is statistically significant\nif p_value < alpha:\n    print(\"Significant difference detected between control and treatment.\")\nelse:\n    print(\"No significant difference detected between control and treatment.\")","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:26:21.891669Z","iopub.execute_input":"2024-08-20T03:26:21.892093Z","iopub.status.idle":"2024-08-20T03:26:21.904546Z","shell.execute_reply.started":"2024-08-20T03:26:21.892058Z","shell.execute_reply":"2024-08-20T03:26:21.903346Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Define practical significance threshold (e.g., $1 increase in ARPU)\npractical_threshold = 1.0\n\n# Calculate the observed effect size\nobserved_difference = mean_treatment - mean_control\n\nprint(f\"Observed Difference: {observed_difference}\")\n\nif observed_difference > practical_threshold:\n    print(\"The observed difference is practically significant.\")\nelse:\n    print(\"The observed difference is not practically significant.\")","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:26:43.063939Z","iopub.execute_input":"2024-08-20T03:26:43.064761Z","iopub.status.idle":"2024-08-20T03:26:43.071979Z","shell.execute_reply.started":"2024-08-20T03:26:43.064720Z","shell.execute_reply":"2024-08-20T03:26:43.070598Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"The minimum sample size calculation is a crucial step in designing an A/B test (or any hypothesis test) to ensure that the test has enough power to detect a true effect, if one exists. Here's how the minimum sample size is calculated:\n\n### **Key Concepts**\n\n1. **Baseline Conversion Rate (CR₀):**\n   - The existing conversion rate or metric value before any changes. For example, if 10% of users currently convert, then CR₀ = 0.10.\n\n2. **Minimum Detectable Effect (MDE):**\n   - The smallest change in the metric that you want to be able to detect with statistical significance. For example, if you want to detect at least a 2% increase in conversion, then MDE = 0.02.\n\n3. **Significance Level (α):**\n   - The probability of rejecting the null hypothesis when it is actually true (Type I error). Commonly set at 0.05, which corresponds to a 5% chance of a false positive.\n\n4. **Statistical Power (1 - β):**\n   - **Beta (β):** The probability of a Type II error (false negative). Commonly set to 0.2,\n   - The probability of correctly rejecting the null hypothesis when it is false (i.e., detecting a true effect). A power of 0.8 (80%) is commonly used.\n\n5. **Effect Size:**\n   - A standardized measure of the difference between the control and treatment groups. It is calculated using the baseline conversion rate and the minimum detectable effect.\n\n### **Effect Size Calculation**\n\nThe effect size for a proportion (like a conversion rate) is calculated using the formula:\n\n![image.png](attachment:a632d4e6-c620-40fc-a20c-c500b44d777f.png)\n\n### **Sample Size Calculation Formula**\n\nThe sample size per group in an A/B test can be calculated using the following formula:\n\n![image.png](attachment:1a78971a-1655-4380-a7e0-0b4f05e09710.png)\n\n\nThis will output the minimum sample size required for each group (control and treatment) to detect the specified MDE with the given power and significance level.","metadata":{"execution":{"iopub.status.busy":"2024-08-20T02:25:29.715020Z","iopub.execute_input":"2024-08-20T02:25:29.715490Z","iopub.status.idle":"2024-08-20T02:25:29.752169Z","shell.execute_reply.started":"2024-08-20T02:25:29.715452Z","shell.execute_reply":"2024-08-20T02:25:29.750164Z"}},"attachments":{"a632d4e6-c620-40fc-a20c-c500b44d777f.png":{"image/png":"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iJ167mxDZWEO3f4+wob7MRmGwcagcevWHiPwBQRSSQB6mcrHklajHj9+/NJLLxFCPvvsM8fGXC73+eefO1/jD3YVcYnl6+COzcyzXZWXizNT2fx1b84S5iRi/oJ2/euaDNwWSyfY4Ol8TVyrFU8URaYH2kateIoqRIL9JEp9IXxTitmLpPHwWOS50Hh41ljN1QHr0DONHM/syUroylolbyZBO11kuyrLxdPZ7LtVL3Hbh9lrrcuvVREv8JT4VLG2JtbO81aXt0Uhaj8JjYcXNQn/ZH3D3SDQNwLQy76hPiINXblyhRDiDCh/+umn8fHxg/RtT1c2JakpimuStN72DB33UZ2ubck0YdZyo3WQnfT7aCmyKE3mFeIXGnlP/y/q2y2pKYlrotSU2498o8Ck5uiP2vJavbpUa2wmI07jrWPxMilelEszAehlmp9OGm17+PDhM888Qwj59ttvDcN477339je4TGOfemATm6ssNLwTnj2od/iroPm8TsVsIhr+XqIHI0EAejkSj7m3nbx48SIh5OTJkz///PPExERvKx/a2lqVqZB80UPbnR4ZzvJFRydI6VFLqAYEDp0A9PLQER+9Bv78809zhev999//8ssvj14HD9YjfUPI7iec0MFaGa67WteyXDB8wXD1AdaCgE0AemmTwM/9EDh37hwh5JVXXtnPTUe/rLKSzwRD9B39fof3cF97csKrwFkQSBMB6GWansbw2PLbb78RQr766qvhMblPliorhZmrrQP60vTJxr40s9MozFYicnH3xQg0AgK9JAC97CXNkarrypUrI9VfdBYEQGDECUAvR/wFQPdBAARAAAQSEYBeJsKEQiAAAiAAAiNOAHo54i8Aug8CIAACIJCIAPQyESYUAgEQAAEQGHEC0MsRfwHQfRAAARAAgUQEoJeJMKEQCIAACIDAiBOAXo74C4DugwAIgAAIJCIAvUyECYVAAARAAARGnAD0csRfAHQfBEAABEAgEQHoZSJMKAQCIAACIDDiBKCXI/4CoPsgAAIgAAKJCEAvE2FCIRAAARAAgREnAL0c8RcA3QcBEAABEEhEAHqZCBMKgQAIgAAIjDgB6OWIvwDoPgiAAAiAQCIC/w9VjyQYvfp31AAAAABJRU5ErkJggg=="},"1a78971a-1655-4380-a7e0-0b4f05e09710.png":{"image/png":"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"}}},{"cell_type":"code","source":"import statsmodels.stats.api as sms\n\n# Define the parameters\nbaseline_cr = 0.10  # Baseline conversion rate (CR₀)\nmde = 0.02  # Minimum Detectable Effect (MDE)\nalpha = 0.05  # Significance level\npower = 0.8  # Power\n\n# Calculate the effect size\neffect_size = sms.proportion_effectsize(baseline_cr, baseline_cr + mde)\n\n# Calculate the required sample size\nsample_size = sms.NormalIndPower().solve_power(effect_size=effect_size, \n                                               power=power, \n                                               alpha=alpha, \n                                               ratio=1)  # Assuming equal-sized groups\n\nprint(f\"Required sample size per group: {effect_size}, {int(sample_size)}\")","metadata":{"execution":{"iopub.status.busy":"2024-08-20T03:16:03.264804Z","iopub.execute_input":"2024-08-20T03:16:03.265240Z","iopub.status.idle":"2024-08-20T03:16:03.286325Z","shell.execute_reply.started":"2024-08-20T03:16:03.265206Z","shell.execute_reply":"2024-08-20T03:16:03.285086Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### **Interpretation**\n\n- **Why is sample size important?** If your sample size is too small, your test might not detect a true difference (leading to a Type II error). If it’s too large, you may waste resources or detect insignificant differences as statistically significant.\n  \n- **What affects sample size?** Higher baseline conversion rates, smaller detectable effects, lower significance levels, and higher power all increase the required sample size.\n\nUnderstanding and correctly calculating the minimum sample size is essential to ensure that your A/B test results are reliable and actionable.","metadata":{}}]}