Value Investing Screening Model

In value investing, the first step is to look for potentially undervalued stocks. I borrowed an analytical algorithm from operational research, the Data Envelopment Analysis (DEA), to help me find companies whose trading multiples are not warranted by their financial statements. DEA enables us to compare and rank records based on their features without making any prior assumptions about the importance or weights of the features. Each record/stock has M inputs that measure the financial performances, and N outputs that measure the company’s valuation.

where, E is the efficiency of stock i, and u, v are the weights of each output and input of the stock. Then the problem of finding the best weights for a particular stock i can be formulated as follows:

The above optimization problem can be solved with Linear Dynamic Programming. The h in the first equation is the efficiency. A low efficiency indicates that the company might be undervalued. I used this algorithm in value investing. I used each company’s financial statistics as inputs and valuation comps as outputs:

Inputs: Beta, operating margin, profit margin, revenue per share, return on assets, return on equity, EPS, revenue growth, leverage ratio

Outputs: Trailing P/E, forward P/E, EV/Sales, EV/EBIT, P/BV, PEG, P/sales

We can run this algorithm to all the stocks. The stocks with the lowest efficiency have the best chance of being undervalued, i.e., their financial statistics tell a different story from their valuation. What the algorithm gave me was a lead to a story that had to be developed. I would take a more in-depth look into the most undervalued stocks and analyse their fundamentals to decide if they are cheap for a valid reason.

Click to view my stock screening model [Python]