← Back to Research
Placebo test: shuffle sentiment within ticker
Shuffle score_mean within ticker (destroys time ordering) and re-run predictive panel FE.
Updated: 2026-04-05
Study
Robustness • Status: LIVE
Updated: 2026-04-05
β real
-0.000133
β placebo
-8.95e-05
Seed
7
Tickers
507
Sample ticker
—
Tickers (panel)
507
Obs (panel)
261179
R² (TS)
—
R² (FE)
—
Key findings
- Placebo test: shuffling sentiment should remove any true predictive relationship.
- Baseline β=-0.00013323464208029765 vs placebo β=-8.950510769708544e-05.
- Interpretation: if placebo collapses toward zero while baseline does not, the signal is less likely to be driven only by fixed cross-sectional differences.
Specification
- Compare baseline panel FE vs placebo with permuted score_mean.
Data
- Universe: S&P 500 tickers in your snapshot pipeline.
- Frequency: Daily.
- Returns: log(P_t) − log(P_{t−1}) from ticker JSON prices.
- Sentiment: score_mean from your sentiment pipeline (ticker JSON).
Limitations
- Timing: after-close articles can contaminate same-day results; predictive tests mitigate this but do not fully solve it.
- Causality: results are descriptive; omitted variables and measurement error remain.
- Trading: no transaction costs / slippage / capacity modeled.
References (minimal)
- Newey, W. K., & West, K. D. (1987). A simple, positive semi-definite, heteroskedasticity and autocorrelation consistent covariance matrix.
- Petersen, M. A. (2009). Estimating standard errors in finance panel data sets.
Methodology
- Within each ticker, randomly permute the sentiment time series (deterministic seed).
- Re-estimate y_ret(t+1) ~ score_mean(t) (+ controls) with panel FE and ticker-clustered SE.
Figures
Charts are from the sample ticker (not the full panel).
Series (sample)
No series available.
Sentiment (sample)
score_mean
No sentiment series available. Export
results.series.score_mean.Tables
Placebo (shuffle within ticker): panel FE comparison
| Spec | β(score_mean) | p | Sig |
|---|---|---|---|
| Baseline | -1.332e-4 | 0.19931 | 0 |
| Placebo (seed=7) | -8.951e-5 | 0.422631 | 0 |
Note: exported by the Python builder; formatting is intentionally compact.
Models
This study is primarily descriptive (figures/tables). No regression model outputs were exported.
Appendix
Raw exported objects (reproducibility / debugging).
Raw exported JSON (collapsed)
{
"results": {
"n_tickers": 507,
"n_obs_panel": 261179,
"panel_fe_baseline": {
"params": {
"score_mean": -0.00013323464208029765
},
"bse": {
"score_mean": 0.00010380408330189446
},
"tvalues": {
"score_mean": -1.2835202416152551
},
"pvalues": {
"score_mean": 0.1993098726609117
},
"nobs": 260672,
"rsquared": 0.000006083300493009425,
"rsquared_adj": 0.00000224707046869721,
"cov_type": "cluster(ticker)"
},
"panel_fe_placebo": {
"params": {
"score_mean": -0.00008950510769708544
},
"bse": {
"score_mean": 0.00011162110265869739
},
"tvalues": {
"score_mean": -0.8018654677759655
},
"pvalues": {
"score_mean": 0.42263078337295856
},
"nobs": 260672,
"rsquared": 0.00000274536813915649,
"rsquared_adj": -0.0000010908746903570687,
"cov_type": "cluster(ticker)"
},
"tables": [
{
"title": "Placebo (shuffle within ticker): panel FE comparison",
"columns": [
"Spec",
"β(score_mean)",
"p",
"Sig"
],
"rows": [
[
"Baseline",
-0.00013323464208029765,
0.1993098726609117,
""
],
[
"Placebo (seed=7)",
-0.00008950510769708544,
0.42263078337295856,
""
]
]
}
]
},
"methodology": [
"Within each ticker, randomly permute the sentiment time series (deterministic seed).",
"Re-estimate y_ret(t+1) ~ score_mean(t) (+ controls) with panel FE and ticker-clustered SE."
],
"sections": [
{
"title": "Specification",
"bullets": [
"Compare baseline panel FE vs placebo with permuted score_mean."
]
},
{
"title": "Data",
"bullets": [
"Universe: S&P 500 tickers in your snapshot pipeline.",
"Frequency: Daily.",
"Returns: log(P_t) − log(P_{t−1}) from ticker JSON prices.",
"Sentiment: score_mean from your sentiment pipeline (ticker JSON)."
]
},
{
"title": "Limitations",
"bullets": [
"Timing: after-close articles can contaminate same-day results; predictive tests mitigate this but do not fully solve it.",
"Causality: results are descriptive; omitted variables and measurement error remain.",
"Trading: no transaction costs / slippage / capacity modeled."
]
},
{
"title": "References (minimal)",
"bullets": [
"Newey, W. K., & West, K. D. (1987). A simple, positive semi-definite, heteroskedasticity and autocorrelation consistent covariance matrix.",
"Petersen, M. A. (2009). Estimating standard errors in finance panel data sets."
]
}
],
"conclusions": [
"Placebo test: shuffling sentiment should remove any true predictive relationship.",
"Baseline β=-0.00013323464208029765 vs placebo β=-8.950510769708544e-05.",
"Interpretation: if placebo collapses toward zero while baseline does not, the signal is less likely to be driven only by fixed cross-sectional differences."
]
}