SPB Git

Repository Public Research preview

tab_construct_validity.tex 5.2 KB 34 lines latex

1% Generated by scripts/r3k_20_tables_v2.py from results/r3k_v2/results_construct.json, results/n1/tokenizer_audit.json, results/n1/keyword_baseline.json -- do not edit by hand (FIRC-0002 v2.1, Stage E exhibits).2% Placement decided at Stage E: main. \input{tables/tab_construct_validity} on its own prints the whole float; inside an existing float wrapper only the body is printed.3\ExhibitTable{tab:constructvalidity}{\textbf{Construct validity of the semantic AI score: keyword baseline, stripped anchors, sector composition and encoder truncation.} Panel A: the composite and five alternative measures scored on the same firm-years: Spearman correlation with the composite, equal-weighted full-sample Q5$-$Q1 spreads (within-year winsorized, pp per year; [NW $t$] [plain $t$] and 95\% CI over cohorts) and Fama--MacBeth slopes with controls (pp per SD, [NW $t$]) on winsorized and raw returns. The stripped anchors re-score the stored chunk embeddings against anchor texts without the cybersecurity and automation vocabulary (no corpus re-embedding). Panel B: horse races. Panel C: what the encoder actually reads and how much of the score is lexical.}{\scriptsize}{%4\begin{threeparttable}\setlength{\tabcolsep}{3pt}5\begin{tabular}{lrrrrrr}6\toprule7Signal & $\rho$ with composite & \makecell[b]{Full Q5$-$Q1, \\ {wins.}} & \makecell[b]{[NW $t$] \\ {[plain $t$]}} & 95\% CI & \makecell[b]{FM slope, \\ {wins. [NW $t$]}} & \makecell[b]{FM slope, \\ {raw [NW $t$]}} \\8\midrule9\multicolumn{7}{@{}l}{\textit{Panel A: alternative measures of AI language (same panel, same return)}} \\10\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{AI composite (baseline)} & 1.00 & +4.1 & [2.08] [1.84] & [-0.7, +8.8] & +1.87 [2.41] & +2.75 [2.45] \\11\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{Keyword baseline (core AI terms per 1,000 words)} & 0.13 & +4.7 & [2.30] [1.82] & [-0.9, +10.3] & +0.61 [1.25] & +0.51 [1.03] \\12\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{Keyword baseline, $\log(1 + x)$} & 0.14 & +4.7 & [2.30] [1.82] & [-0.9, +10.3] & +0.81 [1.95] & +0.77 [2.08] \\13\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{Stripped-anchor composite} & 0.98 & +4.1 & [2.33] [2.13] & [-0.0, +8.3] & +1.79 [2.70] & +2.62 [2.65] \\14\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{Core-AI adoption anchor} & 0.80 & +4.8 & [2.69] [1.99] & [-0.4, +10.0] & +1.74 [3.02] & +2.26 [3.15] \\15\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{Cyber anchor stripped of AI terms} & 0.35 & +1.9 & [0.97] [1.12] & [-1.7, +5.5] & +0.92 [1.49] & +0.90 [1.07] \\16\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{Composite ex Utilities and Energy ($N$ = 25{,}420)} & -- & +4.6 & [2.16] [1.84] & [-0.8, +9.9] & +2.06 [2.46] & +3.02 [2.47] \\17\midrule18\multicolumn{7}{@{}l}{\textit{Panel B: Fama--MacBeth horse races (wins., pp per SD [NW $t$])}} \\19\multicolumn{1}{>{\raggedright\arraybackslash}p{0.3\textwidth}}{Composite vs keyword baseline} & \multicolumn{6}{l}{composite +1.85 [2.37]; keyword +0.36 [0.68]} \\20\multicolumn{1}{>{\raggedright\arraybackslash}p{0.3\textwidth}}{Composite vs stripped-anchor composite} & \multicolumn{6}{l}{composite +0.15 [0.06]; stripped +1.66 [0.79]} \\21\midrule22\multicolumn{7}{@{}l}{\textit{Panel C: encoder truncation and lexical content of the score (node audit of the stored chunks and embeddings)}} \\23\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{Encoder window (tokens) / chunk length (words) / median tokens per chunk} & \multicolumn{6}{l}{256 / 512 / 634} \\24\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{Chunks truncated (frame K, $n$ = 10{,}000) / median words read / share of token mass dropped} & \multicolumn{6}{l}{99.8\% / 205 / 60\%} \\25\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{AI keyword occurrences beyond the encoder window} & \multicolumn{6}{l}{61\% of 40{,}522} \\26\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{Spearman correlation of the keyword baseline with the composite / firm-years with zero core AI hits} & \multicolumn{6}{l}{0.13 / 84\%} \\27\multicolumn{1}{>{\raggedright\arraybackslash}p{0.28\textwidth}}{Utilities: share of top-quintile firm-years vs share of the sample} & \multicolumn{6}{l}{6.5\% vs 3.2\%} \\28\bottomrule29\end{tabular}30\begin{tablenotes}[flushleft]\scriptsize31\item \emph{Notes:} Keyword baseline = core AI terms (published AI lexicons) per 1,000 words of the section texts, computed on the node audit (code/n1); the keyword and semantic measures agree weakly, and the keyword measure carries a similar sort spread but a weaker regression slope. The encoder reads roughly the first 200 words of each 512-word chunk, so the score is a function of chunk openings; re-chunking to the encoder window (X4) was not executed and the consequences for the premium are unknown. No human- or LLM-labelled validation sample exists: the 1,700-chunk coding frames and codebook were delivered without labels (results/n1/validation\_*), so precision and recall of the score are not measured. $N$ = 27{,}399 firm-years in Panel A. Source: results/r3k\_v2/results\_construct.json, results/n1/tokenizer\_audit.json, keyword\_baseline.json.32\end{tablenotes}33\end{threeparttable}}34
Files main
Menu

Theme