Loading...
Loading...
Comprehensive AB testing analysis tool that supports experimental design, statistical testing, user segmentation analysis, and visual report generation. It is used to analyze AB test results such as product revisions, marketing campaigns, and function optimizations, providing statistical significance testing and in-depth insights.
npx skill4agent add liangdabiao/claude-data-analysis-ultra-main ab-testing-analyzer# Dependencies
pip install pandas numpy scipy matplotlib seaborn statsmodelsfrom scripts.ab_test_analyzer import ABTestAnalyzer
from scripts.statistical_tests import StatisticalTests
from scripts.visualizer import ABTestVisualizer
# Initialize analyzer
analyzer = ABTestAnalyzer()
stats_tests = StatisticalTests()
visualizer = ABTestVisualizer()
# Load AB test data
data = analyzer.load_data('ab_test_data.csv')
# Basic conversion rate analysis
conversion_results = analyzer.analyze_conversion(
data,
group_col='Page Version',
conversion_col='Purchased'
)
# Statistical significance testing
t_test_result = stats_tests.t_test(
data,
group_col='Page Version',
metric_col='Purchased'
)
# Generate visualization report
fig = visualizer.plot_conversion_comparison(conversion_results)# Quick test
python quick_test.py
# Basic AB test example
python examples/basic_ab_test_example.py
# Advanced segmentation analysis example
python examples/advanced_segmentation_example.py
# Comprehensive analysis example
python examples/comprehensive_analysis_example.pyab-testing-analyzer/
├── SKILL.md # Detailed skill documentation
├── README.md # User guide (this file)
├── quick_test.py # Quick function test
├── test_skill.py # Complete test suite
│
├── scripts/ # Core function modules
│ ├── __init__.py
│ ├── ab_test_analyzer.py # Core AB test analysis
│ ├── statistical_tests.py # Statistical testing module
│ ├── segment_analyzer.py # User segmentation analysis
│ └── visualizer.py # Visualization generator
│
└── examples/ # Examples and data
├── sample_data/ # Sample data
│ ├── sample_ab_test_data.csv
│ └── sample_user_segments.csv
├── basic_ab_test_example.py # Basic AB test example
├── advanced_segmentation_example.py # Advanced segmentation analysis example
└── comprehensive_analysis_example.py # Comprehensive analysis example# Calculate conversion rates for each group
conversion_rates = analyzer.calculate_conversion_rates(
data,
group_col='Test Group',
conversion_col='Conversion Status'
)
# Calculate lift and confidence interval
lift_analysis = analyzer.calculate_lift(
conversion_rates,
control_group='Control Group',
test_group='Test Group'
)# Calculate retention rates
retention_rates = analyzer.calculate_retention_rates(
data,
group_col='Test Group',
retention_col='retention_7'
)
# Visualize retention rate curves
fig = visualizer.plot_retention_curves(retention_rates)# Independent samples t-test
t_result = stats_tests.t_test(
data,
group_col='Page Version',
metric_col='Purchase Amount',
test_type='independent'
)
# Paired samples t-test
paired_t_result = stats_tests.t_test(
before_after_data,
group_col='User ID',
metric_col='Behavioral Metric',
test_type='paired'
)# Goodness of fit test
chi2_goodness = stats_tests.chi_square_test(
observed_data,
expected_data,
test_type='goodness_of_fit'
)
# Independence test
chi2_independence = stats_tests.chi_square_test(
data,
group_col='Test Group',
outcome_col='Conversion Status',
test_type='independence'
)# Calculate Cohen's d
cohens_d = stats_tests.cohens_d(
data,
group_col='Test Group',
metric_col='Conversion Status'
)
# Calculate Cramer's V
cramers_v = stats_tests.cramers_v(data, group_col, outcome_col)from scripts.segment_analyzer import SegmentAnalyzer
segment_analyzer = SegmentAnalyzer()
# Value-based user segmentation
value_segments = segment_analyzer.value_based_segmentation(
data,
value_col='Total Consumption Amount',
n_tiers=3
)
# Segmentation conversion analysis
segment_conversion = segment_analyzer.segment_conversion_analysis(
data,
segment_col='Value Tier',
group_col='Test Group',
conversion_col='Conversion Status'
)# Interaction effect between page version and user characteristics
interaction_analysis = segment_analyzer.interaction_analysis(
data,
group_col='Page Version',
segment_col='Value Tier',
outcome_col='Conversion Status'
)
# Visualize interaction effects
fig = visualizer.plot_interaction_effects(interaction_analysis)# Bayesian AB test analysis
bayesian_result = analyzer.bayesian_ab_test(
data,
group_col='Test Group',
conversion_col='Conversion Status',
prior='jeffreys'
)
# Calculate win probability
win_probability = analyzer.calculate_win_probability(bayesian_result)# Multivariate AB testing (MVT)
mvt_result = analyzer.multivariate_test(
data,
group_cols=['Page Version', 'Button Color', 'Title Copy'],
conversion_col='Conversion Status'
)# Conversion rate comparison chart
fig = visualizer.plot_conversion_comparison(
conversion_data,
title='AB Test Conversion Rate Comparison'
)
# Confidence interval chart
fig = visualizer.plot_confidence_intervals(
statistical_results,
metric='Conversion Rate'
)
# User segmentation heatmap
fig = visualizer.plot_segment_heatmap(
segment_data,
title='User Segmentation Conversion Rate Heatmap'
)# Generate interactive dashboard
dashboard = visualizer.create_interactive_dashboard(
analysis_results,
output_file='ab_test_dashboard.html'
)User ID,Test Group,Conversion Status,Retention Status,Total Consumption Amount,Gender,Age,Value Tier,Device Type
U001,Test Group,Yes,TRUE,299.99,Male,25,High Value,Mobile
U002,Control Group,No,FALSE,59.99,Female,32,Low Value,PC
U003,Test Group,Yes,TRUE,599.99,Male,28,High Value,Mobile
U004,Control Group,No,FALSE,199.99,Female,35,Medium Value,PCUser ID,RFM Segment,Behavioral Segment,Demographic Segment,Comprehensive Segment
U001,High Value,Active User,Young Male,High Value Young User
U002,Low Value,Churned User,Mature Female,Need Re-engagement User# Set significance level
analyzer.set_significance_level(alpha=0.05)
# Set statistical power
analyzer.set_statistical_power(power=0.8)
# Set multiple comparison correction method
analyzer.set_multiple_comparison_correction(method='bonferroni')# Define custom segmentation rules
custom_segments = {
'high_value': {'Total Consumption Amount': (500, float('inf'))},
'medium_value': {'Total Consumption Amount': (100, 500)},
'low_value': {'Total Consumption Amount': (0, 100)}
}
# Apply custom segmentation
segmented_data = segment_analyzer.apply_custom_segments(
data,
segment_rules=custom_segments
)# Set chart style
visualizer.set_style(style='seaborn', palette='viridis')
# Custom chart configuration
chart_config = {
'figsize': (12, 8),
'dpi': 300,
'format': 'png',
'style': 'professional'
}
fig = visualizer.plot_with_config(data, config=chart_config)# Quick function verification
python quick_test.py
# Run examples
python examples/basic_ab_test_example.py