Skip to content

Look ahead bias and proper usage of cfacshr #152

@chenandrewy

Description

@chenandrewy

Related to #95, it seems there is look ahead bias in cfacshr. This is seen in the fact that cfacshr is almost always 1.0 at the end of the sample. This issue can affect ShareIss1Y, ShareIss5Y, and anything that uses 13F data.

It also seems like we're not using cfacshr correctly in ShareIss1Y and ShareIss5Y. The proper usage can be seen in this example of Nvidia's 2021 4:1 split
image

So the adjusted shares should multiply by cfacshr. But in our code, we divide ☹️. Thankfully splits are relatively rare but we should fix this.

The OP for ShareIss1Yr, Pontiff and Woodgate 2008 uses facshr, not cfacshr:

image

Though, I'm not sure exactly how to map their $f_i$ into CRSP's facshr (my sense is that there is a typo, and $TotalFactor_t$ should multiply $SharesOutstanding_t$. Regardless, it's clear from the Nvidia example how to use cfacshr properly and that one should not divide.

ShareIss5Y comes from Daniel and Titman 2006. They mention they adjust for splits, and that they use facshr (not cfacshr):
image
So we should also adjust for splits as best as we can here and avoid the lookahead bias from cfacshr.

For the 13F signals, it's much harder for me to understand. We may need to put that off for the next annual update.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions