I downloaded the return series for WFIVX (a Wilshire 5000 index fund) and I calculate a correlation coefficient of .9991 with the Fama-French market return series from Ken French's website (for 2000 to 2017)! So I think something is wrong with your .93 calculation?
Are your monthly returns over the same period (i.e. end of month $t-1$ to end of month $t$)). Do they include all distributions etc...?
How Fama and French calculate the market return (RM)
From Ken French's webpage:
Rm-Rf, the excess return on the market, value-weight return of all
CRSP firms incorporated in the US and listed on the NYSE, AMEX, or
NASDAQ that have a CRSP share code of 10 or 11 at the beginning of
month t, good shares and price data at the beginning of t, and good
return data for t minus the one-month Treasury bill rate (from
That the first digit of the CRSP share code is 1 means that the shares are ordinary common shares (and not certificates or ADRs etc...)
The CRSP coding for the 2nd digit are:
0 Securities which have not been further defined.
1 Securities which need not be further defined.
2 Companies incorporated outside the US
3 Americus Trust Components (Primes and Scores).
4 Closed-end funds.
5 Closed-end fund companies incorporated outside the US
8 REIT's (Real Estate Investment Trusts).
Does this match Fama-French market return?
The below SQL code achieves a mean 0.4 basis point absolute different with the Fama-French
rm factor (from their website) since 2000.
It gets a bit more dodgy in the early 1980s and I'd have to check all the details a bit better, but the big point is that you can about all the way there by:
- Only use NYSE, AMEX, and NASDAQ stocks.
- Only use regular, common shares (and no REITs)
I've included some SQL code below. (It runs on my idiosyncratic setup, and I'm including just for illustrative purposes... you won't be able to run this.):
SELECT t1.date, SUM(t1.ret * t2.prc * t2.shrout) / SUM(t2.prc * t2.shrout) as vw_ret
SELECT t1.permno, t1.date, t1.ret
FROM q_stock.msf t1
JOIN q_stock.mse e on t1.permno = e.permno and e.event = 'NAMES' and e.date <= t1.date and t1.date <= e.nameendt -- join with events file to get share code
WHERE (exchcd = 1 or exchcd = 2 or exchcd = 3) and t1.date > 20000000 and t1.ret is not null and (shrcd = 10 or shrcd = 11)) t1
JOIN mycrsp.yyyymm_date_link l ON t1.date = l.date
JOIN q_stock.msf t2 ON t1.permno = t2.permno and l.prev_date = t2.date -- lagged by 1 month to get market cap weights
WHERE t2.prc > 0 -- good prior month price data (FF may do more than this)
GROUP BY t1.date
ORDER BY t1.date
(Note that Fama French factors have RMRF and RF so to get RM you do RM = RMRF + RF.)