07 Jul 2017
What does it mean for a behavior or choice to be irrational?
A simple example: a person is given the choice between receiving one or two dollars and chooses to receive one dollar. Was her choice irrational? Common sense dictates that it was. Now a more difficult one: An overweight person has decided that he wants to lose weight and you see him eating a chocolate croissant. Is this behavior on that person’s part irrational?
This second example is much more nuanced than the first one. For starters, it’s not clinical. In the first example you know all there is to know about that person’s situation, that she has two possibilities with one being objectively better than the other and yet not choosing it. In the second example, you only know that that person wants to lose weight but the context behind his eating the croissant is lost on you. I imagine most people would say that that person’s behavior is irrational since it goes against his stated goal. You just don’t eat chocolate croissants if you want to lose weight. So let’s put a tentative answer: Eating a chocolate croissant if you want to lose weight is irrational.
Now lets introduce introduce some context. Let’s call that person Doug. Doug has been on a new diet for three weeks. The nitty gritty details about his diet are irrelevant, what matters is that the diet represents a big change in his eating behaviors and every day Doug must be mindful that he cannot slip back into his previous habits. His goal truly is to lose weight. Yet, on Sundays, he eats chocolate croissants for breakfast. You see, Doug allows himself to cheat on Sundays. It’s all part of his plan to lose weight. The idea behind his decision is that by allowing himself to eat chocolate croissants on Sundays he won’t be craving them throughout the week, or at least he’ll know that come Sunday his cravings will be fulfilled. And you know what? It’s working. He really is sticking to his diet, not only on Sundays but throughout the week. It might be that the croissants are just an excuse to pig out on unhealthy food, but they don’t seem to be hindering his weight loss journey.
Now, let’s ask the question again: Is Doug’s eating of that croissant irrational on his part?
Context is everything, and it doesn’t come readily for those looking outside-in. I was motivated to think on this upon reading the following quote from Meir Statman’s Finance or Normal People: How Investors and Markets Behave:
Consider a person with debt balances on two credit cards. The debt on the first is large and its interest rate is high, whereas the debt on the second is small and its interest rate is low. Now suppose that the person has cash sufficient to fully extinguish the small debt on the low-interest card but not sufficient to fully extinguish the large debt on the high-interest card. Wants for utilitarian benefits direct that person to reduce the debt balance on the high-interest card. Indeed, we might regard a decision to extinguish the debt on the low-interest card as a cognitive or emotional error. Yet it is not, because sacrificing short-term utilitarian benefits by extinguishing the debt of the low-interest card might enhance long-term utilitarian benefits. The expressive and emotional benefits of the small victory that comes with fully extinguishing the small low-interest debt balance might encourage a person to persevere in extinguishing the large high-interest debt.
Again, context is everything. Classifying another person’s behavior as rational or irrational is contingent on us having all relevant information that underlies that behavior, and it’s not obvious that we’re even able to get that information most of the time.
For starters, that same information might be opaque for the person who does the behavior. Grandma says that she goes to church to look upon the face of God but the true reason might be that all her friends are there on Sundays and she enjoys their presence and the routine. Less charitable people might insist that her going to church is irrational on her part because God doesn’t exist so she’s only losing her time, but spending time with her friends is reason enough to go to church.
Curse of knowledge problems also arise when assessing context. Consider two persons going on a diet but one believes a low-fat diet is the best tool for the job while the other believes a low-carb one is where its at. Which one of these is the irrational belief? Even if one is indeed correct while the other is not, I’m not sure acting on one’s beliefs, even if they turn out to be factually wrong, is irrational, but a zealous low-carb dieter might believe the low-fat dieter to be irrational in his beliefs and vice-versa.
This does not mean that there is no such thing as irrational behavior, as the first example of choosing one dollar versus two dollars shows. The point is that in assessing another person’s behavior as irrational or rational, we are prone to committing errors in thinking by assuming that what we know is all there is to know. Doug wasn’t being irrational, quite the contrary, but upon seeing Doug we couldn’t know the context behind that decision so we default on the explanation that that decision is not a rational decision on his part. It’s possible that we will be correct in our assessment most of the time since it’s unlikely that every Doug out there is eating chocolate croissants because it’s their cheat day (or maybe cheat day is every day), but this just means that we must think probabilistically, that while we may be correct in our assessment, it’s entirely possible that we’re wrong.
14 Jun 2017
During this semester I took a class on Forecasting to get a better understanding of how to do time series analysis and better grasp forecasting methodologies. For the final project the goal was to pick a country and forecast its GDP for 2017. I picked Greece because it seemed an interesting country for this type of project given its recent history. The reasons behind it are beyond the scope of this post and the project, but it will suffice to say that Greece hasn’t exactly been the most stable of economies, and that lack of stability was what drew me to choose it.
The data used in this project was retrieved from the GDP and main components (output, expenditure and income) dataset available from EUROSTAT. The dataset created includes data related to Greece’s Real GDP, measured in Chain Linked Volumes (2010), million euro and isn’t seasonally or calendar adjusted. Data related to government expenditure, household expenditure, imports, exports, and investment levels was also extracted.
Graphical Exploratory Analysis
We’ll start by looking at the data that we got:
It’s obvious that by around 2009 Greece’s Real GDP started experiencing a downfall that seems to have petered out by 2012 and has largely stayed constant since. We could decompose this time series into a trend and a seasonal component using STL decomposition, or even applying a Hodrick-Prescott filter, but I don’t think it would give us more information that we already get by just looking at the plot above.
A good starting point for a forecasting project is to transform the data by applying a Box-Cox transformation to stabilize the seasonal variation. A Box-Cox transformation is a class of transformations that is defined by:
where lambda is a parameter that needs to be estimated. We use the function already provided by the forecast package for this purpose:
lambda <- BoxCox.lambda(realgdp)
gdp_boxcox <- BoxCox(realgdp,lambda)
After transforming the data, we get the following:
The very thing that made Greece such an enticing target for this project also makes it challenging for our forecast process. Because Greece’s recent economic history is so tumultuous, it we were to use a method that includes all the temporal data that we have we would be fitting a model to information that is no longer relevant to us. This means we need to select a time interval that provides only the information that is relevant and exclude that which isn’t, not only because Greece’s economic fundamentals have changed but because including that information might actually damage the model’s performace.
A way to go about selecting which data to maintain and which to throw away would just to look at the plot of Greece’s Real GDP and eyeball it. I don’t have anything against that in this particular case because it seems to me you can identify the three phases the Real GDP goes through by just looking at it. However, because my main goal with this project is for me to learn, so I decided to use an R package that provides functions that identify structural breaks in the data programatically.
To go about estimating where the stuctural breaks happen I used the breakpoints function provided by the strucchange package, available from CRAN, which implements the algorithm detailed in . Again, I am not sure whether this approach is superior to just eyeballing it, but at least now I know how to use this package.
Okay so now we know the time interval we will be using: 2011Q3 onwards. Before I proceed to throwing some models onto the data however, I still need to make one last transfomation to the data because my goal is to forecast growth rates, not the actual Real GDP. This is fairly simple.
There are plenty of different models we could use but how do we go about selecting the best model? We need a way to select the best model from all models that we’ll be using, and this selection needs to be based on the goals of the project. I am not quite confident my approach here is 100% valid, but for pragmatic purposes I don’t think it’s that bad. The idea is that we’ll will be calculating the RMSE and MAE of each model’s out of sample performace, and then select that which minimizes both variables. It seems to me that it would be hard for a model to not minimize both variables but perform consistently better than one who does.
Exponential Smoothing methods are fairly standard forecasting tools. If we consider different combinations of the trend and seasonal components of a time series, we can work out fifteen exponential smoothing models that we can use. If we take into account that each of these can be further subdivided between a version with an additive error component and another with a multiplicative one, we end up with 30 models in total to consider.
To calculate the out of sample RMSE and MAE for each model I use a cross validation setting with a forecasting horizon of h=4, or 4 quarters, and this setting will be used for all models that allow for a cross validation calculation of error measures.
The six models with the best performance, given by how low their RMSE and MAE values are, are as follows:
From this table we can see that a Holt’s Linear Method, correponding to an additive trend component, no seasonal component, and an additive error component (hence ANA), provides us with the lowest RMSE and MAE of the bunch.
Bagged ETS is an approach detailed in «paper». The idea is to decompose the time series into a trend, seasonal, and error component, bootstrapping the error component, adding back in the trend, seasonal, and the bunch of artificial error components you get from the bootstrap, and applying an ETS model to each individual time series. After getting the forecast for all of them, you calculate its mean and that’s the end forecast result of the algorithm. One issue from this approach is that I can’t use cross validation to calculate the RMSE and MAE that I want, so I ended up restricting the dataset to include 8 pseudo-out of sample periods to calculate the RMSE and MAE on those.
While the MAE and RMSE error measures differ in how they’re computed, we can see that this approach has a good forecasting performace.
ARIMA models are one other class of standard models known to everyone who’s done time series analysis. The idea is the same from the exponential smoothing section: I’ll calculate the out of sample, cross validated, out of sample RMSE and MAE for a bunch of models and select the one that minimizes both.
Because we’re dealing with data with seasonal variation, I’ll be using a seasonal ARIMA model. These models are specificed using 6 parameters, so I need to decide the range of values these can take. In the end I ended up restricting the non-seasonal parameters to [0,3] and the seasonal parameters to [0,2] for entirely pragmatic reasons. These intervals provided a good sample of possible ARIMA models, 1728 of them, while not being too time consuming to calculate.
The four models with the best performance are as follows:
As is easily seen, the model (3,0,0)(2,1,1) is the best performant of the bunch. Its residual diagnostics also seem very good, with the residuals not being autocorrelated nor biased (and following a normal distribution thus passing the Ljung-Box test).
Let’s say we’re at time \(t\). If we’re forecasting something, it means we’re trying to estimate some future values, at time \(t+1\). In the context of regression analysis, this means that we won’t have the values for the independent variables for time \(t+q\) at time \(t\), that is, future values are only available in the future, which means we need to use the lag of the independent variables. I decided to use a lag of 1, which basically means that I will be estimating the Real GDP at time \(t+1\) using the value of the variables at time \(t\).
I’ll cut to the chase: I tried using multiple linear regression, along with ridge and lasso regression just to see if their out of sample performance would be better than the ARIMA one. It wasn’t, by a long shot. I’ll abstain from going through the results here because they’re not that interesting.
So, it seems the \(ARIMA(3,0,0)(2,1,1)\) wins as it obtains the lowest RMSE and MAE of all models here used. Now our task is to use it to forecast the Real GDP values for all 4 quarters of 2017.
The image above is what applying the ARIMA model to the data and setting the forecast horizon for \(h=4\) gets you, the estimated values and their corresponding confidence intervals. Because we’re forecasting growth rates, that’s what the model gives you back, but it would be interesting to see what it translates to in actual Real GDP values. To do this its just a matter of transforming the growth rates back into actual values, and, since the growth rates come from a time series that’s been transformed with a Box-Cox transformation, we need to do the reverse of that transformation. This is what we get in the end:
With the following predicted values:
Since the provisional data for the 1st quarter of 2017 is 42827.3, we can be optimistic that our model actually does provide us with good forecasts for Greece’s Real GDP. It is entirely possible that this is a fluke, or good fortune, so I will update it further as data for the following quarters are released to see if the model’s good performance holds up.
This was my first foray into time series analysis/forecasting, and I enjoyed it more than I thought I would. To be sure, there’s bound to be some errors here that I didn’t catch, some intricacie of the forecasting process that I have yet to learn. If you know what that is, please do tell as I want to get better at this.
Still, given the results I got, I would say this project was a success.
20 May 2017
Joe, Bea, and Greg need to decorate the tent for the big party later that night. Joe is doing his share of the work, but when he looks over his shoulder he sees Bea and Greg drinking a beer and having a good time. Joe is pissed.
“Hey you two, do you expect me to all of this by myself?”
“Relax”, Bea says, “we’ve got time.”
“People are due to arrive in 2 hours and we still have all of this to hang from the ceiling. If you guys don’t start helping me do this I’ll quit and the party will suck.”
“Fine Joe, jeez, you can be such a hardass sometimes.”
Bea and Greg start doing their fair share of the work. Soon however, Greg notices something.
“Hey Bea, have you seen Joe?”
“I think he’s out back.”
Greg finds Joe sitting in a chair playing with his phone.
“Can’t believe this. You lecture us about doing our work and yet here you are like it’s nothing. Hypocrite.”
The party was a success
By definition, an hypocrite is someone who acts in contradiction to his stated beliefs. Joe is an hypocrite. He scolded Bea and Greg for not doing their fair share of the work yet, after getting them to work, he decided that the rules didn’t apply to him.
Each one of us can recognize an hypocrite, and each one of us can be, or has been, an hypocrite. That this behavior, and our capability to identify it, seems universal fascinates me.
Human behavior doesn’t exist in a vacuum. Everyone who has read a little bit of evolutionary psychology knows that. Some behaviors arise from evolutionary pressures to ensure our success, in evolutionary terms, despite those constraints. An example would be how the differing burdens of siring a child in males and females shaped the mating strategies of each sex.
I hypothesize hypocrisy was woven from the same evolutionary cloth. Our success as a species was due to our ability to cooperate in large groups, and one problem that must be solved to sustain large-scale cooperation is the free rider problem. A free rider problem arises when an individual benefits from the resources and goods that a group is able to procure without having contributed to it. This poses a problem for cooperation because if everyone decides to coast on the backs of others, then nothing gets done. Developing solutions that bring the number of free riders to sustainable levels is of paramount importance to any group if it is to be successful.
Yet the needs of the group can indeed be different from those of the individuals. The free rider problem exists precisely because it is advantageous for the individual to not put in the work and still get the rewards. Why risk your life bringing a mammoth down? The others can do it without you and you still get to eat. You can’t beat that. Yet the individual must make sure that the group goes through with the motions that get the reward. No one’s getting any mammoth if no one goes out to kill him.
Thus hypocrisy. Joe wants the tent to be decorated in time because a successful party raises him in status among his social group. When he notices that he alone is working he gets furious because his friends are coasting on his hard work. He then uses his rhetorical and argumentative powers to get his friends into doing the work that they should be doing, thus ensuring their cooperation. Yet now that they are cooperating, he sees an opportunity to dodge his own share of the work, which if he is able to do until the tent is fully decorated means that he gets the gains without putting in much work. Of course then Greg is onto him and in the end the three of them decorate the tent quickly and have a blast in the party.
So this free rider problem gave rise to at least two different modules. One is the behavior itself, the shirking off of one’s share of the work while retaining a share of the rewards, i.e. being a free rider. The other is not only the ability to identify when another person is slacking off, but the cultural environment where that is recognized as wrong. The first is an individual behavior, the second a cultural response.
I hypothesize one would find a concept similar to hypocrisy in every culture. Perhaps those studying cultural evolution can tell me if I’m wrong or not, but I find it hard to imagine that other cultures wouldn’t have some variation on the idea of hypocrisy as a cultural concept to identify free riders, and thus labeled as wrong to ensure full cooperation. It seems to me that this has the qualities necessary to pass on through the generations as something that increases group fitness (of course there might be other ways to solve this problem, hypocrisy is just one of them, and not a costly one at that.)
This theory of mine also explains why each one of us recognizes that hypocrisy is bad, and yet still engage in it from time to time. It pays to be an hypocrite. If no one finds out.
I haven’t read Robert Kurzban’s Why Everyone (Else) is a Hypocrite. I wouldn’t be surprised if it includes something similar to the theory here presented, or a much better one at that