Analyst Ratings and Stock Prices
Study 1: ID3, C4.5 and the effect of Analyst Ratings on Stock Price Movements
Abstract:
The objective of this study is to investigate if the recommendations of Equity Research Analysts of prestigious Investment Banks/Brokerage firms are accurate; i.e. if these Analysts are able to predict the movement of stock prices of blue chip companies and to investigate if patterns exist in recommendation and price change data using the ID3 and C4.5 algorithms. The study suggests that there may not be a pattern that is across the Analyst and Stock price data and that the predictive value of the Upgrades/Downgrades of recommendations seems to be more accurate at predicting future price movement than absolute recommendations during bearish times.
Objective
The objective of this study is:
- To investigate if the recommendations of Equity Research Analysts of prestigious Investment Banks/Brokerage firms are accurate; i.e. if these Analysts are able to predict the movement of stock prices of blue chip companies and to investigate if patterns exist in recommendation and price change data using the ID3 and C4.5 algorithms.
Method
- The historic recommendations of the analysts of above mentioned Research firms (for specific time periods) the above mentioned stocks are tabulated. Time periods are chosen so that they reflect bullish(rising stock prices) as well as bearish (falling stock prices)
- The Upgrade/Downgrade history is tabulated for the same.
- The stock prices are adjusted for Dividends and Stock Splits and tabulated.
- The normalized stock price changes after periods of approximately 3 months and 1 year are tabulated. For example, Banc of America Securities initiated a “Buy” recommendation on Microsoft’s stock on 5/1/02 when the adjusted share price was 22.25 The stock price of Microsoft after 3 months, i.e. 8/2/02 (mm/dd/yy) was 18.98 .
Normalized Price Difference = (New Price – Old Price )/ Old Price
Thus, the normalized 3 month change is (22.25 – 18.98)/18.98 = -0.15831
- Thus, 3 month normalized price changes and 1 year normalized price changes are tabulated.
- This data is further “discretized” in the following format:
Action, From, To, Price Movement
For the previous example, the discretized data would be:
Initiated, Buy, Buy, Fall
The Price Movement in this case is “Fall” since the price fell after 3 months
- This data is fed into the system which analyzes this data using the C4.5 algorithm to produce decision trees which reflect the patterns that the C4.5 algorithm has found.
- These decision trees are examined for consistency across different stocks.
- The accuracy of the analyst recommendations are examined using the table generated from step 5.3.
Results
Decision Trees Yielded ranged simple trees such as:
From = Sell: Rise (0.0)
From = Moderate_Sell: Fall (1.0)
From = Moderate_Buy: Fall (1.0)
From = Hold: Rise (2.0)
To complex trees such as:
Action Depth = 0
If Action = Upgrade Then Depth = 1 Parent = Action
If Action = Downgrade Then Depth = 1 Parent = Action
If Action = Initialized Then Depth = 1 Parent = Action
Fall Depth = 2 Parent = If Action = Upgrade Then
From Depth = 2 Parent = If Action = Downgrade Then
Fall Depth = 2 Parent = If Action = Initialized Then
If From = Buy Then Depth = 3 Parent = From
If From = Sell Then Depth = 3 Parent = From
If From = Strong_Buy Then Depth = 3 Parent = From
If From = Hold Then Depth = 3 Parent = From
If From = Strong_Sell Then Depth = 3 Parent = From
If From = Moderate_Buy Then Depth = 3 Parent = From
If From = Moderate_Sell Then Depth = 3 Parent = From
To Depth = 4 Parent = If From = Buy Then
Fall Depth = 4 Parent = If From = Sell Then
Fall Depth = 4 Parent = If From = Strong_Buy Then
Fall Depth = 4 Parent = If From = Hold Then
Fall Depth = 4 Parent = If From = Strong_Sell Then
Fall Depth = 4 Parent = If From = Moderate_Buy Then
Fall Depth = 4 Parent = If From = Moderate_Sell Then
If To = Buy Then Depth = 5 Parent = To
If To = Sell Then Depth = 5 Parent = To
If To = Strong_Buy Then Depth = 5 Parent = To
If To = Hold Then Depth = 5 Parent = To
If To = Strong_Sell Then Depth = 5 Parent = To
If To = Moderate_Buy Then Depth = 5 Parent = To
If To = Moderate_Sell Then Depth = 5 Parent = To
Rise Depth = 6 Parent = If To = Buy Then
Rise Depth = 6 Parent = If To = Sell Then
Rise Depth = 6 Parent = If To = Strong_Buy Then
Rise Depth = 6 Parent = If To = Hold Then
Rise Depth = 6 Parent = If To = Strong_Sell Then
Fall Depth = 6 Parent = If To = Moderate_Buy Then
Rise Depth = 6 Parent = If To = Moderate_Sell Then
Tabulated Results
| Types of Calls | Stock | Calls | Non- Bearish Calls | Bearish Calls | 3 month correct calls | 6 month correct calls | 1 year correct calls |
| Bullish Stocks | |||||||
| GE | |||||||
| Vanilla Calls | GE | 7 | 7 | 0 | 5 | 6 | 5 |
| % Right | 71 | 86 | 71 | ||||
| Grade Calls | GE | 6 | 3 | 3 | 3 | 4 | 3 |
| % Right | 50 | 67 | 50 | ||||
| Apple | |||||||
| Vanilla Calls | Apple | 16 | 16 | 0 | 14 | 15 | 15 |
| % Right | 88 | 94 | 94 | ||||
| Grade Calls | Apple | 13 | 8 | 5 | 8 | 9 | 8 |
| % Right | 62 | 69 | 62 | ||||
| Bearish Stocks | |||||||
| Amazon | 10/24/2001 | 2/1/2000 | |||||
| Vanilla Calls | Amazon | 14 | 14 | 0 | 4 | 1 | 0 |
| % Right | 29 | 8 | 0 | ||||
| Grade Calls | Amazon | 11 | 3 | 8 | 4 | 7 | 5 |
| % Right | 36 | 64 | 63 | ||||
| Microsoft | 3/8/2000 | 12/31/02 | |||||
| Vanilla Calls | Microsoft | 15 | 15 | 0 | 6 | 7 | 4 |
| % Right | 40 | 47 | 31 | ||||
| Grade Calls | Microsoft | 10 | 6 | 4 | 4 | 3 | 3 |
| % Right | 40 | 33 | 38 | ||||
Terminology:
- Vanilla Calls – Total No. of Recommendations made
- Non- Bearish Recommendations - Buy, Strong Buy, Moderate Buy and Hold
- Bearish Recommendations – Sell, Moderate Sell, Strong Sell
- Correct Call – Non-Bearish Call followed by Bullish Price Movement (Increase in adjusted stock price for the given time period)
Analysis of Findings
- The ID3 algorithm returned complex trees with a high depth showing no consistency across different stocks. This suggests that the ID3 algorithm was not able to pick any pattern in the data.
- The C4.5 algorithm returned relatively simple trees with a low depth. However, these trees had very little in common to each other. This suggests that the C4.5 algorithm did not find any pattern common to all the stocks.
- The number of “Sell”, “Moderate Sell”, “Strong Sell” ratings are very low, in fact 0 for these 4 stocks over the time periods under consideration despite the fact that there was considerable bearish movement
- It is interesting to note that the Analyst recommendations seem to be inaccurate at predicting stock price movement during bearish times with accuracy rates as low as 8%, 0%.
Conclusions
- From 1,2 and 3, it appears that there may not be a pattern that is across the Analyst and Stock price data.
- Analyst recommendations seem to be accurate at predicting stock price movement during bullish times with accuracy rates as high as 94%. This however, could be due to the fact that Analyst recommendations almost always seem to be bullish.
- The predictive value of the Upgrades/Downgrades of recommendations seems to be more accurate at predicting future price movement than absolute recommendations during bearish times.
References
- Quinlan’s C4.5 library source code was used to generate decision trees
- All financial data was retrieved from Yahoo Finance URL – http://finance.yahoo.com
No comments yet.
Leave a comment!
You must be logged in to post a comment.
