evaluate_interactor_significance_linear¶
Linear regression-based interactor significance testing for tfbpmodeling.
tfbpmodeling.evaluate_interactor_significance_linear ¶
evaluate_interactor_significance_linear ¶
evaluate_interactor_significance_linear(
input_data,
stratification_classes,
model_variables,
estimator=LinearRegression(fit_intercept=True),
)
Compare predictive performance of interaction terms vs. their main effects.
This function performs a stratified cross-validation comparison between: - The original model containing interaction terms (e.g., TF1:TF2) - A reduced model where each interactor is replaced by its corresponding main effect (e.g., TF2)
R² scores are computed for both models using stratified CV. The delta in R² informs whether the interaction term adds predictive value.
| Parameters: |
|
|---|
| Returns: |
|
|---|
| Raises: |
|
|---|
Source code in tfbpmodeling/evaluate_interactor_significance_linear.py
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | |
Overview¶
The evaluate_interactor_significance_linear module provides functions for evaluating the significance of interaction terms using standard linear regression methods. This approach uses classical statistical tests to compare models with and without interaction terms.
Key Features¶
- Classical Statistics: Uses standard linear regression and F-tests
- Direct Interpretation: Unregularized coefficients with clear interpretation
- Statistical Rigor: Proper p-values and confidence intervals
- Flexible Testing: Multiple comparison correction options
Usage Examples¶
Basic Significance Testing¶
from tfbpmodeling.evaluate_interactor_significance_linear import (
evaluate_interactor_significance_linear
)
# Run linear regression-based significance testing
results = evaluate_interactor_significance_linear(
X_main=main_effects_data,
X_interaction=interaction_data,
y=response_data,
alpha=0.05
)
# Extract results
significant_interactions = results['significant_features']
p_values = results['p_values']
f_statistics = results['f_statistics']
Multiple Comparison Correction¶
# With Bonferroni correction
results = evaluate_interactor_significance_linear(
X_main=main_effects_data,
X_interaction=interaction_data,
y=response_data,
alpha=0.05,
correction='bonferroni'
)
# With FDR correction
results = evaluate_interactor_significance_linear(
X_main=main_effects_data,
X_interaction=interaction_data,
y=response_data,
alpha=0.05,
correction='fdr_bh'
)
Method Details¶
Statistical Approach¶
- Main Effect Model: Fit linear regression with only main effects
- Full Model: Fit linear regression with main effects + interactions
- F-Test: Compare models using F-statistic for nested model comparison
- Individual Tests: Test each interaction term individually
Model Comparison¶
- Nested F-Test: Overall test for any interaction effects
- Individual t-Tests: Test each interaction coefficient
- Partial F-Tests: Test subsets of interaction terms
- Multiple Comparisons: Adjust for multiple testing
Advantages¶
- Interpretable: Direct coefficient interpretation
- Established Theory: Well-understood statistical properties
- Sensitive: Can detect small but significant effects
- Comprehensive: Provides full statistical inference
Considerations¶
- Overfitting Risk: May overfit in high-dimensional settings
- Multicollinearity: Sensitive to correlated predictors
- Assumptions: Requires standard linear regression assumptions
- Multiple Testing: Needs correction for many interactions
Related Modules¶
- evaluate_interactor_significance_lassocv: Regularized alternative
- interactor_significance_results: Results handling
- interface: Workflow integration