I am playing around with the CAPM for a small European stock market (about 100 stocks). First, I use five years of monthly data (January 2017 to December 2021) to estimate betas for each firm using time series regressions $$ (r_{i,t}-r_{f,t})=\alpha_i+\beta_i (r_{m,t}-r_{f,t})+\varepsilon_{i,t} $$ or more briefly, $$ r^*_{i,t}=\alpha_i+\beta_i r^*_{m,t}+\varepsilon_{i,t} $$ where $r^*_i:=(r_{i,t}-r_{f,t})$ is firm's $i$ excess return and $r^*_m:=(r_{m,t}-r_{f,t})$ is the market's excess return. Second, I take the vector of estimated betas and use it as a regressor in a cross-sectional regression for January 2022, $$ r^*_{i,\tau}=\lambda_\tau \hat\beta_i+\varepsilon_{i,\tau} $$ where $\tau$ denotes January 2022. I get an extremely poor fit: $0<R^2<0.1$. Being unsure if that is a "normal" result, I repeat the cross-sectional regression for February and other months in 2022 and keep getting equally poor fit; in all cases, $0<R^2<0.1$.
Question 1: Is that "normal"? E.g. if I were to run the model on data from a major stock market (perhaps NYSE), would I get a similarly poor fit? References would be welcome.
My original aim was to illustrate how the CAPM works (first for myself and then hopefully for a class I am teaching). I was hoping to observe a cloud of data approximating a hypothetical security market line (SML), but the data does not seem to cooperate.
Question 2: Are there any tricks (in an honest sense) to make the SML more "visible"? I have tried using multi-month compound returns (e.g. the entire year 2022) in the cross-sectional regression to see if a linear pattern emerges, but this did not work.