6 Şubat 2013 Çarşamba

Random Walks and Gambler's Ruin

To contact us Click HERE
Suppose you have $100 and you decide to go to a casino to try to double your money. Are you better off putting the whole $100 on a single bet, or should you make a lot of smaller bets? Maybe you should adjust the size of your bet as the evening progresses? Should you stop as soon as you reach $200 (if you ever do), or keep going?

Lots of people have opinions about questions like these. Today, I will show you how to calculate the correct answers yourself with just a few lines of code in R. Even better, you will understand the approach, which means you can do your own analysis of whatever strategy you want to test. And best of all, it's free: no need to spend real money at an actual casino to find out.

First, you need a copy of R. This is the free, high quality,open source statistical programming language that has become astandard for statisticians in industry and academia because it is botheasy and powerful. Download the latest version for Windows, Mac, orLinux from The R Project forStatistical Computing. Click on "Download R" and select a mirror(meaning, pick a site located close to you, to speed up the downloadprocess - there are mirrors all over the world), then click "DownloadR for Windows" (or Mac or Linux). Then just double click the installerand accept the default selections. You should now have a desktop iconor Start menu entry for starting R. You can copy and paste the samplecode from this blog post right into the R console window, and it willprint answers and draw graphs right on your computer screen.

We are going to answer the questions by running simulations. Not thegiant computer-game kind of simulations, with photo-realistic images ofblackjack tables, just a simple mathematical simulation of theessential elements of the process.

What do we need to know to set up the simulation? Not very much. Wedon't even need to know the details of any particular casino game,just your probability of winning and your payoff if you dowin. These vary depending on the game you choose to play.

So, let's assume the following situation:
  • You start with some initial amount of money.
  • You choose a size for your next bet.
  • With probability w, you win back your bet plus more.
  • With probability 1-w, you lose your bet.
  • You decide whether to play again or to stop.
  • You have to stop if you cannot make a minimum bet.
Let 'm' represent how much money you have to play with. Let 'b'represent the amount you choose to bet, which must be between 0 and'm'. Let 'w' be the probability of winning, and let 's' be themultiple of your bet that you get if you win. In symbols:
  • With probability 'w', you now have 'm+b*s', because you get back your bet, bringing your total back to 'm', but then on top of that you get 's*b' as a prize.
  • With probability '1-w', you now have 'm-b', because you lose the amount 'b' that you bet.

We can code this up using R without difficulty. We have only tospecify the strategy you want to test. We can encapsulate yourstrategy into a function that returns the size of your nextbet, as long as we interpret a zero or negative bet size as meaningyou choose to end the game and walk away without further betting.

However, the questions at the beginning of this article asked whetheryou would be "better off" under certain strategies. This is trickierto decide, since it depends on your personal values (both moral andfinancial). In other words, the answer depends on you.

In order to have something to discuss here, I will rank orderthe strategies according to the probability that you do not losemoney. However, you can choose to rank them by other criteria, ifyou want, such as the average amount of money you walk away with. Happily,the results of our simulation will provide a complete picture of thepossible outcomes, so you can decide for yourself which strategy youprefer.

Here's the code. You can copy and paste this into R now.

w <- 0.48s <- 1f <- 0.5nextBet <- function(m) {  if(m >= 200) 0  else m*f}oneNight <- function() {  m <- 100  b <- nextBet(m)  while(b >= 1 & m >= b) {    if(runif(1) < w) m <- m + b*s    else m <- m - b    b <- nextBet(m)  }  m}score <- function() {  n <- 1e4  x <- 0  for(i in 1:n)    if(oneNight() >= 100) x <- x+1  x/n}print(score())

This should only take a second or two to run, after which it shouldprint a number around 0.37, which means that in about 37% of the testcases, the strategy did allow you to leave with at least as much moneyas you started with. But what exactly is the strategy we are testinghere?

Let's examine the code. The first line sets the probability of winningto be 48%. That's because in R, the two characters '<' and '-'together act like an arrow pointing left, and they mean "assign".

The next line sets s=1, which means you are playingdouble-or-nothing.

Finally, the strategy: 'f' represents the fraction of your currentbalance that you will bet each turn. In this example, 'f' is 1/2,which means that on your first turn, you bet $50, which is half yourbalance. If you lose, you will only have $50 left, so your second betwill be half of that, or $25. If you win, you will have $150, so yoursecond bet will be $75. And so on.

How does 'f' come to mean 'fraction to bet'? The answer is in the'nextBet' function. This function receives as an input your currentmoney balance 'm'. If you have reached $200, it returns zero, meaningtime to go home. Otherwise, it returns 'm*f', which is fraction 'f' ofyour current balance.

You can modify the code to test other strategies by changing the'nextBet' function. We will look at an example toward the end. Firstthough, let's see how 'nextBet' gets used. The 'oneNight' functionstarts you off with m=100 dollars. Then it calculates your initialbet. As long as that bet is positive, it draws a random number betweenzero and one using 'runif(1)', and if that is less than 'w', youwin. Winning raises your balance to 'm+b*s', while losing lowers it to'm-b'. Finally, you get to decide the size of your next bet; choosingzero means you exit the loop and are done. I have imposed a minimum bet of$1 here, so actually, if your balance drops below $2, half of it willbe below $1, so you will stop. I have also insisted that you haveenough money to cover the bet (that's the 'm >= b' condition in thewhile loop).

Calling the 'oneNight' function simulates a single night at thecasino. However, any one night could be lucky or unlucky, purely bychance, irrespective of the strategy you want to test. So the 'score'function calls 'oneNight' ten thousand times, to give a very thoroughevaluation of the possible results.

You can modify the 'score' function to reflect whatever metric youwant to use for ranking strategies. I have made it count up the numberof nights in which you walk out with at least the $100 you startedwith, but you could instead ask it to compute the average dollaramount that you end up with each night, by writing something like

score <- function() {  n <- 1e4  x <- 0  for(i in 1:n)    x <- x + oneNight()  x/n}

If you copy and paste that in and run 'print(score())' again, R willprint a number around 89, meaning that on average you take home $89each night. In fact, in this specific example, you actually takehome either at least $200 (in 37% of the cases) or something close tozero (in 63% of the cases), which simply happen to average to $89:in no case do you ever take home an intermediate value like $89.

Notice that $89 is less than your initial $100 balance. Thisis bad: it means that on average, you lose $11 each night. The morenights you play this game, the more you lose. Yes, on any given night,you might win, and temporarily reverse the trend, but if you play manynights, you will find your money draining away, slowly and not quitesteadily, but inescapably.

If you like, you can even see a histogram or density plot showing thevariety of outcomes:

score <- function() {  n <- 1e4  x <- c()  for(i in 1:n)    x <- c(x,oneNight())  plot(density(x))  mean(x)}print(score())

Here's the result:

You see a large peak near zero (you never really go negative, that'sjust an artifact of the smoothing process inherent in drawing thecurve), and a smaller peak at and above $200. If you win the first twobets, you walk away with $225, but other combinations of wins andlosses can lead to a variety of other winning outcomes between $200and $300.

I've been saying you will get an answer "close" to $89, because eachtime you run the program, you will get different random numbers, andso get a slightly different final answer. That's why we simulate10,000 different nights: it helps average out the noise, so that youwind up with a pretty consistent analysis, regardless of the specificroll of the dice. If you want to always get the same answer each time,put 'set.seed(123)' at the start of the code instead.

Mathematicians call this sort of situation a "random walk", becauseyour balance staggers randomly up and down over time, and it has"absorbing barriers" at $2 and $200, because once you reach (or pass)those values, you stop. Here is a picture of one particular night,showing your balance over time:

In this example, you won the first bet, but then lost the nexttwo. Then you won again, but then you lost 5 times in a row, whichforced you to stop.

So far, so good (or bad). Whether you like the odds reflected in these pictures or not, they are the results of betting half your cash each time, in a double-or-nothing game with a 48% chance of winning, given that you stop if you double your initial cash. But the real question is, "compared to what?" We need to try some alternative strategies to see if they are better or worse.

We assume you cannot change 'w' and 's', because those arefixed characteristics of the game you are playing. In reality, youcould go look for a different, more favorable game, but 48%double-or-nothing is about as favorable as typical casino games get,actually.

So what can you change? You can change 'f', or you can modify the'nextBet' function to do something else, such as bet a fixed dollaramount each time, rather than a fixed percentage. This is easy enough:type in

f <- 25nextBet <- function(m) {  if(m >= 200) 0  else f}

and now 'f' is the fixed dollar amount of each bet, in this case $25each time.

So, try some experiments. Change 'f' to reflect different fractions ordifferent fixed size bets, and see what happens. Draw the densitycurves to see the whole story, or just pick the strategy with thehighest score. Let me know in the comment section if you find astrategy you think is really good - but be warned, ultimately, acasino exists to take your money, so stick with computer simulationsand stay out of actual casinos. One can in fact prove, mathematically,that in this sort of game there is NO "winning" strategy, meaning onethat returns on average more than your original $100. You can keepyour original $100 by not going to the casino at all, but the moreoften you bet, the more likely you are to lose.

To demonstrate that last remark, here are the results if you bet yourfull balance in one big bet: you get a 48% chance of walking away with$200, making this strategy "better" (by my scoring definition) thanthe first one we looked at, since that only gave you a 37% chance ofwinning. This raises your average payout to $96, still less than the$100 you started with (as I said, this is unavoidable), but betterthan the $89. Of course, you don't have as much "fun", since theevening is over after just one bet, either way. The distribution ofoutcomes is very sharply peaked, at zero and at $200, since these arethe only two possible outcomes.

Conversely, if you decide to make the evening last by making smallerbets, you wind up hurting your chances of winning: the more often youbet, the more likely it is that the casino takes your money, becausethe odds are in its favor. If we set 'f <- 0.1' in our originalcode, so that you bet only 10% of your balance each time, you win onlyabout 26% of nights, and your average balance is $61. The distribution ofoutcomes is also more skewed: more probability of losing everything,less of reaching, let alone exceeding, $200, as shown in the image atthe very beginning of this post.

Similarly, if we make a fixed size small bet, say $10 each time, weget a 30% chance of winning, and a $62 payout. Again, the results areworse financially than just betting your whole $100 in one shot,although they might provide more "entertainment value" since you getto keep playing longer.

Now it's your turn. Think up some new strategies you would like tocompare, code them up and see what you can discover! What happens,for instance, if you limit yourself to 20 bets rather than continuingto play indefinitely until you reach zero or $200? (Hint: modify the'oneNight' function to count the number of bets 'n', then add '& n<= 20' in the condition of the 'while' loop.) (Warning: nostrategy, no matter how clever, will prevent you from losing money atthis game, so don't try it with real money!)

If you liked this article, you may also like Supply, Demand and Market Microstructure for a more elaborate, "agent based" simulation of economic activity, or check out the Contents page for a complete list of past topics.

Please post questions, comments and other suggestions using the box below, or email me directly at the address given by the clues at the end of the Welcome post. Remember that you can sign up for email alerts about new posts by entering your address in the widget on the sidebar. If you prefer, you can follow @ingThruMath on Twitter, where I will tweet about each new post to this blog. The Contents page has a complete list of previous articles in historical order. Now that there are starting to be a lot of articles, you may also want to use the 'Topic', 'Search' or 'Archive' widgets in the side-bar to find other articles of related interest.

I hope you enjoyed this discussion. You can click the "M"button below to email this post to a friend, or the "t" button toTweet it, or the "f" button to share it on Facebook, and so on. Seeyou next time!

5 Şubat 2013 Salı

Is the Fed Hampering the Recovery?

To contact us Click HERE
In his blog post on "Calvinist Monetary Economics," Paul Krugman claims that a recent Wall Street Journal op-ed by John Taylor on why he believes the Fed is hampering the recovery by keeping interest rates low falls into the "Calvinball" category. Writes Krugman:
For those who don’t read the classics, Calvinball is a sport in which you change the rules whenever you feel like it, very much including in the middle of games.

Back then the tight-money types were inventing new and peculiar principles of monetary policy on the fly; it was obvious that they were looking for some reason, any reason, to justify a rise in rates, because, well, because.
Krugman goes on:
Now Taylor is doing the same thing. He claims that he can show that the Fed’s low-rate policy is actually contractionary, using “basic microeconomic analysis”. Actually, as Miles Kimball points out, he’s committing a basic microeconomic fallacy — a fallacy you usually identify with Econ 101 freshmen early in the semester (and as it happens the same fallacy committed by Rajan).

For Taylor argues that low rates engineered by the Fed are just like a price ceiling that reduces the supply of loans, and therefore reduces overall lending.

Wow. No, the Fed’s interest rate target isn’t a price control; there is no legal or other restraint on the rates lenders can charge. The Fed is driving down interest rates, or equivalently driving up the price of bonds, by buying bonds; I can’t think of any kind of economic analysis in which that would reduce the quantity of bonds sellers end up issuing, that is, the amount of borrowing (and lending) in the economy.
 I'll put all of this controversy in the simplest of terms: Keynesian orthodoxy claims that lower interest rates will always have a positive effect upon the economy because the low rates encourage more borrowing, ceteris paribus, even in a so-called liquidity trap. The issue of the "liquidity trap," according to Keynesians, is that other factors are holding back "aggregate demand" so that lowering rates by themselves cannot create enough aggregate demand to lift the economy out of a downturn.

That is where fiscal policy comes in, and that is what Krugman has been saying. Thus, anyone who might claim that attempts by the Fed to push down interest rates might have an opposite effect of what is intended is playing "Calvinball."

The Keynesian approach is pretty straightforward, maybe even crude. All economic activity of an economy, all of the relative prices, all of the relations of production, the products creates, everything, can be put into two functions, aggregate demand and aggregate supply. Push aggregate demand to the right, and as long as the AS curve in not in its steep region, economic growth will occur without too much inflation.

Should the economy be in a "liquidity trap," then the only way to get the AD curve to move to the right is for government to engage in lots and lots of spending. The positive results from the spending then will trickle down to everyone else, provided government spends "enough." However, as Bob Murphy has noted, it seems that Krugman is playing some "Calvinball" of his own:
Here is my observation: Paul Krugman will say that government spending has surged under Obama (and Bernanke has engaged in monetary stimulus) when he wants to blow up right-wingers for their failed predictions, yet referring to the same period of time he will say that government spending has actually been either normal or even contractionary, when explaining why his Keynesian solutions haven’t fixed the economy.
 Certainly, Krugman is not above using the "Heads I win, tails you lose," method of arguing. However, I'd like to address a larger question: Can the Fed's "expansionary policies" actually have a contractionary effect upon the economy?

I'd like to take a different approach than has Taylor and point out that the Fed's purchases of securities of all types -- government, mortgage securities, private assets -- is done in order to keep the asset prices high and send false signals to the markets that these securities are worth more than they really are. (The only word for it is fraud and I should point out that when someone in private business, as opposed to Ben Bernanke, tries to artificially jack up the price of securities, he is likely to be prosecuted.)

The Fed wants to drive money toward those assets by keeping their prices artificially high, and I would argue this has two problems that do hamper the economy:
  • First, it prevents the needed liquidation of those assets which cannot be supported by market activity so that investors and entrepreneurs can follow real price signals to see where lines of sustainable investments are located. By throwing in what essentially are false prices, the Fed is making it harder for entrepreneurs to find the suitable production lines;
  • Second, the Fed's policies discourage savings (which makes Keynesians very happy, given their vaunted "multiplier" is 1 over the savings rate, so the less we save, the greater the "multiplier"), as real savings provide the liquid capital for long-term investments.

Given Krugman's mechanistic views of the economy and his overt hostility toward economic activity that is not created by government fiat, I doubt what I have said would convince Keynesians of anything. To them, the economy is a simple thing controlled by levers of spending with the Really Smart People in Washington and at Princeton knowing at all times when to "step on the gas" and "when to apply the brakes."

Nonetheless, I also would argue that the Fed is holding back the recovery, even as it acts in the name of "aggregate demand." This isn't "Calvinball." It is economics.

The Fed and its Role in the Economy: No Conspiracies, Just Bad Policy

To contact us Click HERE
In the comment section of my last post, one of my critics identified as JG made a point that I believe truly highlights the differences between Keynesians and the Austrians:
@ Anderson,"The Fed wants to drive money toward those assets by keeping their prices artificially high..."

Is that really what the Fed's goal is? To keep prices high? Do you really believe that QE is really a conspiracy to inflate MBS prices?

Someone less given to conspiracy theories would assume that the Fed was buying MBS to maintain liquidity in the financial system to faciliate lending during a time of weak demand.
True, the commenter was trying to lump me in with conspiracy theorists who seem to believe that the Fed principals conspire to wreck the economy and that they know exactly what they are doing and that is part of their dastardly plan. Now, I would agree that a bad economy in which an increasing number of people become dependent upon the government is good for President Obama in particular and the Democratic Party in general, especially if people come to believe that their state of dependence exists because the government is not taxing others enough or if businesses are conspiring to destroy the economy. We certainly see a lot of that from the Democrat/Keynesian camp, which is not without conspiracy theories of its own.

If I might use somewhat simplistic  models that I believe do reflect the differences in thinking between Keynesians and Austrians, the differences are portrayed as followed:
Keynesians: They believe that a market economy is internally flawed and will hurdle toward underconsumption at every turn. Their underconsumption lynchpin (wild swings in private investment, depending upon the "animal spirits" of investors) differs from that of the Marxists (capitalist profits suck the purchasing power from the proletariat, which leads to internal collapses of capitalist economies), but the results are similar.

For example, the housing boom and bust was a product of a pure, unregulated (by government) market in which none of the government agencies had anything to do with the crisis, except that the animalistic capitalist spirit so infected every regulatory agency that none of the regulatory agents -- even those who had perfect foresight (since most government agents are blessed with such foresight if they are performing under a regime run by the Democratic Party) -- did anything to stop it. The capitalists refused to read any price signals and led the economy into the abyss, as pure, unregulated capitalism always does. Had government agents been properly regulating the directing the housing market, it would have performed perfectly.

The Keynesians believe that capitalists do not respond to price signals (which are overblown, anyway, since an actual economy does not replicate the mathematical models of perfect competition), and that prices are useful mostly in their aggregation into various price indices, which themselves are statistics, not points of economic analysis.On the production side, market economies are prone to slide into the scourge of being overrun by monopolies, which create income inequality when then exacerbates the downward slide even more. Thus, without government oversight, and without the presence of a central bank like the Fed along with various government spending mechanisms, a market economy will implode into a miserable abyss of high unemployment and underconsumption. If there is deflation -- which always looms within a market economy -- then the system automatically will plunge into depression and stay there, since in the real world, entrepreneurs don't respond to price signals, anyway.

The important point here is that the Fed, along with the government agencies, exist in order to respond to private market failures, which the capitalists create on their own, with capitalist failures always being systematic. The Fed and the government, then, do not create conditions that lead to mass unemployment (unless someone at the Fed believes in Austrian theories that will make the central bank raise interest rates and choke off aggregate demand), but rather exists to offset those private market failures.


I believe this has been a fair interpretation of the Keynesian position. I now turn toward the Austrians.

Austrians: They believe that market economies are internally stable, and that government interventions, such as the ones made by the Fed, not only are counterproductive but actually help cause the downturns in the first place. No one is blessed at any time with "perfect information," but a price system actually sends the information that entrepreneurs and managers need to make production and exchange decisions regarding the future. Not all people respond properly to price signals, but the errors tend to be random, not systematic.

Intervention by government is harmful because it creates perverse incentives and directs production away from lines that are sustainable into those lines of production which are not. For example, far from being a free-market failure, the housing boom occurred because government in the form of the Federal Reserve System and the various government agencies that are tied to housing engaged in activities that directed investment and spending toward housing in amounts that could not be sustained. Not only did the Fed push down interest rates that encouraged more home buying and refinancing than what would happen in a normal market (without the intervention), but government agencies especially aimed their programs toward the "sub-prime" market in which were created vast amounts of mortgage securities that sold at prices well beyond what would have been the case had the government not been targeting housing in the first place.

Now, it was Wall Street, with its politically-connected banks and financial houses, that created many of these securities (Freddie and Fannie being the other two entities) but one must remember that these banks did not act within the structure of free markets. Instead, their principals acted knowing that the infamous Greenspan/Bernanke "Put" existed in the background, and that even though the mortgage securities certificates clearly stated that they were not guaranteed by the government, in essence that was a mere formality, for the government stood by to do just that: bail out Wall Street.

The point that Austrians emphasize is that without the government intervention and the promise of bailouts, the banks would have been much more likely to have followed the price signals that the markets were sending and not have marched over the cliff. Government here was not an entity that followed in the wake of private disasters in order to clean up the mess, but rather government was actively taking part in creating the mess in the first place.

As for the post-crisis mess, Austrians believe that since government interventions set the stage for the collapse, doing more of the same will not rescue the economy. In fact, it simply continues the same mistakes that occurred in the first place.

In response to the comment that I see Bernanke's purchases of mortgage securities as some sort of sinister plot to undermine the recovery, that is nonsense. My criticism is not of Bernanke's motives, but rather his actions. He is not "preserving liquidity" or anything like that; instead, he is propping up securities that markets already have rejected and continues to direct resources into lines of production that are unsustainable.
Keynesians counter with the "idle resources" argument that states that in a depressed economy such as ours, there are "idle resources" that are made idle by a lack of aggregate demand. When government resorts to what essentially are financial tricks such as the Fed purchasing securities, it is doing nothing more than engaging in unorthodox actions that are needed at this particular time because of very specific conditions that for the most part don't exist, i.e. the "liquidity trap." Without those actions, the economy will plunge into the abyss of a miserable, high-unemployment steady state in which we will be mired forever.

The Austrian response is that many of the "idle resources" are idle because they were malinvestments. The market does not support them because the patterns of purchasing and preferences shown by consumers do not and cannot keep those resources unemployed. Instead, entrepreneurs guided by price signals and interest rates (that follow a natural rate of interest, not something set by the Fed) will move resources from lower to higher-valued uses.

At the base of the thinking, I believe we can say the following: Keynesians believe that a market is not self-correcting in the event of a downturn, while Austrians believe that it is. There really is no middle ground between the two lines of thinking, which is why we see the kinds of responses we observe on this blog and elsewhere.

Paul Krugman: The Real Friend of Fraud

To contact us Click HERE
One of Paul Krugman's constant themes is that financial regulation, if done by people who properly have been schooled as Democrats, will guard against fraud, and he is at it again in his most recent column. The flip side of that point, of course, is that Republicans want fraud to happen because they are evil and beholden to Wild West Capitalism.

Before I deal with Krugman's own enthusiastic support for outright financial fraud, let me address one point that he claims: Barney Frank had absolutely no influence regarding the collapse of Fannie and Freddie. Krugman writes:
How can the G.O.P. be so determined to make America safe for financial fraud, with the 2008 crisis still so fresh in our memory? In part it’s because Republicans are deep in denial about what actually happened to our financial system and economy. On the right, it’s now complete orthodoxy that do-gooder liberals, especially former Representative Barney Frank, somehow caused the financial disaster by forcing helpless bankers to lend to Those People.

In reality, this is a nonsense story that has been extensively refuted; I’ve always been struck in particular by the notion that a Congressional Democrat, holding office at a time when Republicans ruled the House with an iron first, somehow had the mystical power to distort our whole banking system. But it’s a story conservatives much prefer to the awkward reality that their faith in the perfection of free markets was proved false.

This is one of those True Krugman Moments when he claims that (1) Frank had absolutely no influence in Congress even though he was the Democrat's Congressional point man on banking and financial matters; (2) the government never attempted to have large sums of money funneled to borrowers in the "sub-prime" category; and (3) the financial system that existed during the housing boom was pure free market without a hint of government intervention anywhere.

(Given Krugman's belief that Democrats are pure of heart and never would engage in financial fraud, I am surprised that he does not go after Jon Corzine, who was responsible for more than a billion dollars in very questionable losses for investors. Oh, I forgot. Corzine was a Democrat politician; he lost the money honestly trying to help his dear clients. And Bernie Madeoff also was a Democrat.)

As that famed right-wing publication, The Boston Globe, declared in a feature on Frank:
When US Representative Barney Frank spoke in a packed hearing room on Capitol Hill seven years ago, he did not imagine that his words would eventually haunt a reelection bid.

The issue that day in 2003 was whether mortgage backers Fannie Mae and Freddie Mac were fiscally strong. Frank declared with his trademark confidence that they were, accusing critics and regulators of exaggerating threats to Fannie’s and Freddie’s financial integrity. And, the Massachusetts Democrat maintained, “even if there were problems, the federal government doesn’t bail them out.’’

Now, it’s clear he was wrong on both points — and that his words have become a political liability as he fights a determined challenger to win a 16th term representing the Fourth Congressional District. Fannie and Freddie collapsed in 2008, forcing the federal government to buy $150 billion worth of stock in the enterprises and $1.36 trillion worth of mortgage-backed securities.
Now, I absolutely agree that Frank did not cause the meltdown nor did he cause the collapse of Fannie and Freddie, but even though his party did not hold a majority in the House of Representatives, nonetheless he did have influence and lots of it. (The influence comes out in the committee action, not the actual vote on the floor.) Furthermore, I do not recall any prominent Democrats during that period calling for lending restrictions on people with bad credit.

The blame for the meltdown is bipartisan, although Krugman will never admit to such. As for the Consumer Protection Bureau which he champions throughout the column, I do not believe that Washington and the Democrats are ready to jettison the very tenets of political liberalism and call for strict lending standards and to shut out people with bad credit from mortgage markets. That really would be a first!

Krugman's enthusiastic support for massive fraud, however, comes in his enthusiastic calls for inflation and lots of it, and inflation is a fraudulent way to repudiate debt (although Krugman has written that such a method is perfectly moral). As I have pointed out before, Krugman has openly agitated for government financial measures such as the Fed purchasing worthless financial instruments in order to jack up their market prices (if a private firm does the same, it is called "manipulation," which is against the law).

The difference is in the sheer numbers. While the meltdown featured head-scratching decisions by banks, nonetheless the actual losses due to the Corzine-Madeoff kind of fraud (where people actually set out to deceive others) were small compared to the over-the-cliff losses that came from lots of people jumping into the housing market because it was hot.

Krugman, like most Keynesians, believes that regulators have excellent foresight and know beforehand what lines of production will be profitable and which will not. (One remembers the Democrats pushing "industrial policy" in the 1980s, a brainchild of Bill Bradley and Gary Hart, both of whom believed that government agencies should target upcoming industries and then subsidize them. We see how well that works with "green energy.")

As Murray Rothbard once put it, if regulators actually had the kind of knowledge Krugman believes they have, then they would be in the markets themselves making lots of money employing their great foresight instead of making paltry government salaries. Instead, we find that regulators mostly will try to block any innovation, since they never will get credit for market successes, but surely will be blamed for market failures.

When it comes to fraud, however, keep in mind that it was the players in the market that realized Madeoff was running a scam, not the regulators. In fact, the lack of insight by regulators actually permitted Madeoff to run his operation longer than it should have gone, as people tended to think that if the regulatory agencies were OK with the guy, then he must be on-the-level.

The kind of fraud I fear, however, is not the fraud of some people being scammed in the financial markets. The greater and more dangerous fraud is that which Krugman heartily endorses: government money printing and the destructive inflation that follows it. Krugman's Inflation Fairy is as dishonest as Bernie Madeoff and much more dangerous.

Random Walks and Gambler's Ruin

To contact us Click HERE
Suppose you have $100 and you decide to go to a casino to try to double your money. Are you better off putting the whole $100 on a single bet, or should you make a lot of smaller bets? Maybe you should adjust the size of your bet as the evening progresses? Should you stop as soon as you reach $200 (if you ever do), or keep going?

Lots of people have opinions about questions like these. Today, I will show you how to calculate the correct answers yourself with just a few lines of code in R. Even better, you will understand the approach, which means you can do your own analysis of whatever strategy you want to test. And best of all, it's free: no need to spend real money at an actual casino to find out.

First, you need a copy of R. This is the free, high quality,open source statistical programming language that has become astandard for statisticians in industry and academia because it is botheasy and powerful. Download the latest version for Windows, Mac, orLinux from The R Project forStatistical Computing. Click on "Download R" and select a mirror(meaning, pick a site located close to you, to speed up the downloadprocess - there are mirrors all over the world), then click "DownloadR for Windows" (or Mac or Linux). Then just double click the installerand accept the default selections. You should now have a desktop iconor Start menu entry for starting R. You can copy and paste the samplecode from this blog post right into the R console window, and it willprint answers and draw graphs right on your computer screen.

We are going to answer the questions by running simulations. Not thegiant computer-game kind of simulations, with photo-realistic images ofblackjack tables, just a simple mathematical simulation of theessential elements of the process.

What do we need to know to set up the simulation? Not very much. Wedon't even need to know the details of any particular casino game,just your probability of winning and your payoff if you dowin. These vary depending on the game you choose to play.

So, let's assume the following situation:
  • You start with some initial amount of money.
  • You choose a size for your next bet.
  • With probability w, you win back your bet plus more.
  • With probability 1-w, you lose your bet.
  • You decide whether to play again or to stop.
  • You have to stop if you cannot make a minimum bet.
Let 'm' represent how much money you have to play with. Let 'b'represent the amount you choose to bet, which must be between 0 and'm'. Let 'w' be the probability of winning, and let 's' be themultiple of your bet that you get if you win. In symbols:
  • With probability 'w', you now have 'm+b*s', because you get back your bet, bringing your total back to 'm', but then on top of that you get 's*b' as a prize.
  • With probability '1-w', you now have 'm-b', because you lose the amount 'b' that you bet.

We can code this up using R without difficulty. We have only tospecify the strategy you want to test. We can encapsulate yourstrategy into a function that returns the size of your nextbet, as long as we interpret a zero or negative bet size as meaningyou choose to end the game and walk away without further betting.

However, the questions at the beginning of this article asked whetheryou would be "better off" under certain strategies. This is trickierto decide, since it depends on your personal values (both moral andfinancial). In other words, the answer depends on you.

In order to have something to discuss here, I will rank orderthe strategies according to the probability that you do not losemoney. However, you can choose to rank them by other criteria, ifyou want, such as the average amount of money you walk away with. Happily,the results of our simulation will provide a complete picture of thepossible outcomes, so you can decide for yourself which strategy youprefer.

Here's the code. You can copy and paste this into R now.

w <- 0.48s <- 1f <- 0.5nextBet <- function(m) {  if(m >= 200) 0  else m*f}oneNight <- function() {  m <- 100  b <- nextBet(m)  while(b >= 1 & m >= b) {    if(runif(1) < w) m <- m + b*s    else m <- m - b    b <- nextBet(m)  }  m}score <- function() {  n <- 1e4  x <- 0  for(i in 1:n)    if(oneNight() >= 100) x <- x+1  x/n}print(score())

This should only take a second or two to run, after which it shouldprint a number around 0.37, which means that in about 37% of the testcases, the strategy did allow you to leave with at least as much moneyas you started with. But what exactly is the strategy we are testinghere?

Let's examine the code. The first line sets the probability of winningto be 48%. That's because in R, the two characters '<' and '-'together act like an arrow pointing left, and they mean "assign".

The next line sets s=1, which means you are playingdouble-or-nothing.

Finally, the strategy: 'f' represents the fraction of your currentbalance that you will bet each turn. In this example, 'f' is 1/2,which means that on your first turn, you bet $50, which is half yourbalance. If you lose, you will only have $50 left, so your second betwill be half of that, or $25. If you win, you will have $150, so yoursecond bet will be $75. And so on.

How does 'f' come to mean 'fraction to bet'? The answer is in the'nextBet' function. This function receives as an input your currentmoney balance 'm'. If you have reached $200, it returns zero, meaningtime to go home. Otherwise, it returns 'm*f', which is fraction 'f' ofyour current balance.

You can modify the code to test other strategies by changing the'nextBet' function. We will look at an example toward the end. Firstthough, let's see how 'nextBet' gets used. The 'oneNight' functionstarts you off with m=100 dollars. Then it calculates your initialbet. As long as that bet is positive, it draws a random number betweenzero and one using 'runif(1)', and if that is less than 'w', youwin. Winning raises your balance to 'm+b*s', while losing lowers it to'm-b'. Finally, you get to decide the size of your next bet; choosingzero means you exit the loop and are done. I have imposed a minimum bet of$1 here, so actually, if your balance drops below $2, half of it willbe below $1, so you will stop. I have also insisted that you haveenough money to cover the bet (that's the 'm >= b' condition in thewhile loop).

Calling the 'oneNight' function simulates a single night at thecasino. However, any one night could be lucky or unlucky, purely bychance, irrespective of the strategy you want to test. So the 'score'function calls 'oneNight' ten thousand times, to give a very thoroughevaluation of the possible results.

You can modify the 'score' function to reflect whatever metric youwant to use for ranking strategies. I have made it count up the numberof nights in which you walk out with at least the $100 you startedwith, but you could instead ask it to compute the average dollaramount that you end up with each night, by writing something like

score <- function() {  n <- 1e4  x <- 0  for(i in 1:n)    x <- x + oneNight()  x/n}

If you copy and paste that in and run 'print(score())' again, R willprint a number around 89, meaning that on average you take home $89each night. In fact, in this specific example, you actually takehome either at least $200 (in 37% of the cases) or something close tozero (in 63% of the cases), which simply happen to average to $89:in no case do you ever take home an intermediate value like $89.

Notice that $89 is less than your initial $100 balance. Thisis bad: it means that on average, you lose $11 each night. The morenights you play this game, the more you lose. Yes, on any given night,you might win, and temporarily reverse the trend, but if you play manynights, you will find your money draining away, slowly and not quitesteadily, but inescapably.

If you like, you can even see a histogram or density plot showing thevariety of outcomes:

score <- function() {  n <- 1e4  x <- c()  for(i in 1:n)    x <- c(x,oneNight())  plot(density(x))  mean(x)}print(score())

Here's the result:

You see a large peak near zero (you never really go negative, that'sjust an artifact of the smoothing process inherent in drawing thecurve), and a smaller peak at and above $200. If you win the first twobets, you walk away with $225, but other combinations of wins andlosses can lead to a variety of other winning outcomes between $200and $300.

I've been saying you will get an answer "close" to $89, because eachtime you run the program, you will get different random numbers, andso get a slightly different final answer. That's why we simulate10,000 different nights: it helps average out the noise, so that youwind up with a pretty consistent analysis, regardless of the specificroll of the dice. If you want to always get the same answer each time,put 'set.seed(123)' at the start of the code instead.

Mathematicians call this sort of situation a "random walk", becauseyour balance staggers randomly up and down over time, and it has"absorbing barriers" at $2 and $200, because once you reach (or pass)those values, you stop. Here is a picture of one particular night,showing your balance over time:

In this example, you won the first bet, but then lost the nexttwo. Then you won again, but then you lost 5 times in a row, whichforced you to stop.

So far, so good (or bad). Whether you like the odds reflected in these pictures or not, they are the results of betting half your cash each time, in a double-or-nothing game with a 48% chance of winning, given that you stop if you double your initial cash. But the real question is, "compared to what?" We need to try some alternative strategies to see if they are better or worse.

We assume you cannot change 'w' and 's', because those arefixed characteristics of the game you are playing. In reality, youcould go look for a different, more favorable game, but 48%double-or-nothing is about as favorable as typical casino games get,actually.

So what can you change? You can change 'f', or you can modify the'nextBet' function to do something else, such as bet a fixed dollaramount each time, rather than a fixed percentage. This is easy enough:type in

f <- 25nextBet <- function(m) {  if(m >= 200) 0  else f}

and now 'f' is the fixed dollar amount of each bet, in this case $25each time.

So, try some experiments. Change 'f' to reflect different fractions ordifferent fixed size bets, and see what happens. Draw the densitycurves to see the whole story, or just pick the strategy with thehighest score. Let me know in the comment section if you find astrategy you think is really good - but be warned, ultimately, acasino exists to take your money, so stick with computer simulationsand stay out of actual casinos. One can in fact prove, mathematically,that in this sort of game there is NO "winning" strategy, meaning onethat returns on average more than your original $100. You can keepyour original $100 by not going to the casino at all, but the moreoften you bet, the more likely you are to lose.

To demonstrate that last remark, here are the results if you bet yourfull balance in one big bet: you get a 48% chance of walking away with$200, making this strategy "better" (by my scoring definition) thanthe first one we looked at, since that only gave you a 37% chance ofwinning. This raises your average payout to $96, still less than the$100 you started with (as I said, this is unavoidable), but betterthan the $89. Of course, you don't have as much "fun", since theevening is over after just one bet, either way. The distribution ofoutcomes is very sharply peaked, at zero and at $200, since these arethe only two possible outcomes.

Conversely, if you decide to make the evening last by making smallerbets, you wind up hurting your chances of winning: the more often youbet, the more likely it is that the casino takes your money, becausethe odds are in its favor. If we set 'f <- 0.1' in our originalcode, so that you bet only 10% of your balance each time, you win onlyabout 26% of nights, and your average balance is $61. The distribution ofoutcomes is also more skewed: more probability of losing everything,less of reaching, let alone exceeding, $200, as shown in the image atthe very beginning of this post.

Similarly, if we make a fixed size small bet, say $10 each time, weget a 30% chance of winning, and a $62 payout. Again, the results areworse financially than just betting your whole $100 in one shot,although they might provide more "entertainment value" since you getto keep playing longer.

Now it's your turn. Think up some new strategies you would like tocompare, code them up and see what you can discover! What happens,for instance, if you limit yourself to 20 bets rather than continuingto play indefinitely until you reach zero or $200? (Hint: modify the'oneNight' function to count the number of bets 'n', then add '& n<= 20' in the condition of the 'while' loop.) (Warning: nostrategy, no matter how clever, will prevent you from losing money atthis game, so don't try it with real money!)

If you liked this article, you may also like Supply, Demand and Market Microstructure for a more elaborate, "agent based" simulation of economic activity, or check out the Contents page for a complete list of past topics.

Please post questions, comments and other suggestions using the box below, or email me directly at the address given by the clues at the end of the Welcome post. Remember that you can sign up for email alerts about new posts by entering your address in the widget on the sidebar. If you prefer, you can follow @ingThruMath on Twitter, where I will tweet about each new post to this blog. The Contents page has a complete list of previous articles in historical order. Now that there are starting to be a lot of articles, you may also want to use the 'Topic', 'Search' or 'Archive' widgets in the side-bar to find other articles of related interest.

I hope you enjoyed this discussion. You can click the "M"button below to email this post to a friend, or the "t" button toTweet it, or the "f" button to share it on Facebook, and so on. Seeyou next time!

Complex Numbers

To contact us Click HERE
In Imaginary Numbers I presented one way of thinking about complex numbers - numbers like the square root of negative one, which do not "exist" in the "real" world, but which are nevertheless quite useful in many scientific applications.

That article motivated imaginary numbers as the solution to word problems like "find a number whose squareis -1", just as negative numbers solve word problems like "find anumber which when added to 5 gives 2". Today I'd like to show you a different way of thinking about them.

Instead of dealing with individual numbers, we will workwith pairs. I will write (a, b) to mean the pairformed by a two ordinary ("real") numbers aand b. The simplest pair is (0, 0), and we canwrite down many others, such as (-3.14, 5.67).

The order of the numbers will matter: we willtreat (a, b) and (b, a) as two different things. Ifyou like, you can think of the pair as an object with two slots (Left and Right) or two colors(Yellow and Green). So for example the pair (0,1) has a Yellow zero and aGreen one, which is not the same as the pair (1,0), in whichthe zero is Green and the one is Yellow.

So far, I have not said why we should care about these pairs. We willget there eventually, but first we need to ways to do calculationswith these pairs.

Let's start by defining a method for "merging" two pairstogether. This operation takes two pairs as inputs and combines themto produce a single pair as an output. It will act in a way veryreminiscent of ordinary addition, so I will use a plus sign (+)as the notation for it. Here is the definition:

(a, b) + (c, d) = (a+c, b+d)

This is a rule for combining the pair (a, b) with thepair (c, d), producing a new pair that we might call (e, f). The "Left" element in the new pair is given by therule e = a+c, which you can remember as "Left adds toLeft". Similarly, the right element f is just the sum of thetwo right inputs, b+d, so "Right adds to Right".

This is a useful way to define "addition" of pairs, but it is not theonly way. If I wanted to, I could have defined "addition" of pairs bythe "alternative" rule
(a, b) + (c, d) =?= (a+c, b+2*d+a)
However, this rule does not turn out to be very useful. For one thing,it is not as symmetric as our "official" rule, and symmetry in math isoften closely connected with being useful in the real world.

Our "official" rule has some nice properties -- in fact, all the sameones that ordinary addition has. For example, itis commutative, meaning the order of addition does not matter:
x + y = y + x
This "order does not matter" property applies to adding ordinarynumbers: for example, 5+2 and 2+5 are both equal to 7. Because our"official" rule is so symmetrical, the "order does not matter"property also applies to adding pairs. Write it out:from our official rule,

(c, d) + (a, b) = (c+a, d+b)

but from the commutative property of ordinary arithmetic, c+a = a+c and d+b = b+d, so in fact, the result is actually the same as (a+c, b+d). So indeed, order does not matter when adding pairs.

I want to emphasize that this "commutative" property of addition onpairs is a consequence of the nice symmetric definition I selected.If we had used the "alternative" (non-symmetric) rule to defineaddition, then addition of pairs would not have the"commutative" property. Try a few examples to see this: for instance,try adding (0,1) and (1,0) using the "alternative"definition. The results will not match.

I also want to emphasize that we are talking about the order of addingtwo different pairs, not about swapping the order withina single pair: as mentioned already above, the pair (0,1) isnot the same thing as the pair (1,0).

At any rate, it turns out that the "official" (symmetric) rule foradding pairs is quite useful, mainly because it satisfies the usualrules for addition, such as being commutative. Naturally, we wonder ifwe can also define a kind of "multiplication" of pairs that would alsosatisfy the usual rules. For instance, it would be nice ifmultiplication were also commutative.

It would also be nice ifmultiplication was a kind of "repeated addition". This iscalled the distributive property: at least for ordinary (real) numbers,
a*(b+c) = a*b + a*c

Can we achieve something like this with pairs?

One possible rule would be to define

(a, b) * (c, d) =?= (a*c, b*d).

This is symmetric, and leads to all the usual properties, but it isalso a bit too bland. With this rule, arithmetic on pairs does notbring us any new insights into the world of numbers, because the leftand right sides are completely decoupled. To use the color analogy, weget ordinary arithmetic on yellow numbers, and completely separately,we get ordinary arithmetic on green numbers. We could have savedourselves the trouble and just stuck with ordinary arithmetic onsingle numbers.

Instead, for our purposes today, we will use a different definition ofmultiplication, one which jumbles up the colors a little:

(a, b) * (c, d) = (a*c - b*d, a*d + b*c).

It is not immediately obvious that this will produce a kind ofmultiplication that is commutative and distributive. We have to lookcarefully at the formula to see that it has the sort of internalsymmetry that makes it commutative. But indeed, it does. Similarly, youhave to do a little algebra to convince yourself that it has thedistributive property, but indeed it does. Instead of boring you withthe algebra, let us revisit the earlier question of "why should wecare?"

Well, this "multiplication" operation turns out to have someremarkable and quite unexpected new properties. Let us look at somesimple examples.

If we multiply any pair (a,b) by the pair (1,0), weget back (a,b). Try it and see. More generally,with d=0 we have

(a, b) * (c, 0) = (a*c, b*c).

In other words, we are just multiplying each slot by c. As aresult, the pair (c,0) acts essentially just like theordinary ("real") number c.

Not only can we replicate ordinary arithmetic in this way, but we canget a brand new effect. Try multiplying (0,1) by itself,i.e. squaring it. We get

(0, 1) * (0, 1) = (-1, 0).

But we just saw that (-1, 0) acts like the ordinary number-1. So, we have found a "square root of minus one": a number whichwhen multiplied by itself gives us -1.

In other words, we have discovered a representation for the"imaginary number" called i, which we "invented" backin ImaginaryNumbers to fill a conceptual gap.

Try playing around with adding and multiplying pairs using theserules. You will find that the pair (a, b) acts just like theexpression a + b*i in ordinary algebra, as long as we assumeone extra rule: that i*i = -1. So now we have two ways tounderstand "complex" numbers (numbers that result from adding real andimaginary pieces). The method we used in ImaginaryNumbers involved "making up" a hypothetical number i withthe property that i*i = -1, and then agreeing to use it inordinary algebra just like any other number. The new method todayinvolves doing arithmetic on pairs, and noticing that somepairs act just like ordinary real numbers while others act just likethese "imaginary" ones.

This is pretty typical of what mathematicians call abstract algebra: you invent a new kind of "number" by specifying operations like addition and multiplication for it, then see what it can do. Sometimes you only have one operation instead of two. Sometimes you can find a way to "invert" one or both operations, analogous to doing subtraction and division on ordinary numbers. Sometimes none of the usual properties hold; for instance, when working with three-dimensional rotations, commutativity breaks down - try rotating a book first around its spine, then around the front cover; then try the same two rotations but in the opposite order. In every case, the pure mathematician is interested in what kinds of patterns arise, whether familiar or new, and how the new objects relate to older one.

Of course, the applied mathematician is more interested in whatthese new "numbers" can do for us. As I mention briefly in ImaginaryNumbers, these new numbers are actually central in QuantumMechanics, which is the branch of physics responsible for all modernelectronics (computers and cell phones). They are also useful in manyengineering situations, including the study of waves, oscillations,sound, music, the stability of bridges, and lots of othersituations. Pretty amazing for just taking pairs of ordinary numbersand using a slightly fancy rule for how to multiply them.

If you enjoyed this article, you might also like Counting and Number Systems, or Logarithms.

You may also want to use the 'Topic', 'Search' or 'Archive'widgets in the side-bar to find other articles of related interest.Or check outthe Contentspage for a complete list of past topics in historical order.

I hope you enjoyed this discussion. You can use the littlebuttons near the comment box below to share it. Click the little Mto email this post to a friend, or the T toTweet it, or the F to share it on Facebook.

Please post questions, comments and other suggestions using the box below, or email me directly at the address given by the clues at the end of the Welcome post. Remember that you can sign up for email alerts about new posts by entering your address in the widget on the sidebar. If you prefer, you can follow @ingThruMath on Twitter, where I will tweet about each new post to this blog. See you next time!

3 Ocak 2013 Perşembe

Joel Miller's Flawed Legislation for Fire District Budget Empowerment

To contact us Click HERE
New York State Assemblyman Joel Miller has introduced legislation to provide for public vote on fire district budgets in the November general election. Under current New York State law, fire district budgets are controlled by the district's board of fire commissioners. Miller's legislation A9762A, called the Fire District Budget Empowerment Act, shifts the approval of fire district budgets from the fire commissioners to the general public. Miller announced his popular vote initiative in an April 22, 2012, Valley Views article in the Poughkeepsie Journal.

Popular Vote on Budget Is Inconsistent With Other Local Governments

As I see it, popular vote on fire district budgets is a risky departure from most governance in this country. There is no public vote on the federal budget, there is no public vote on the New York State budget, there is no public vote on the Dutchess County budget, or on city or village budgets. Instead, the general public votes for representatives (government officials such as legislators, councilmen, etc.) who in turn decide on agency budgets. This is the principle of representative democracy, one of the foundations of this country. In the case of fire districts, the people vote for fire commissioners, who in turn control the budget.

Direct Democracy Is Seldom Used But Often Problematic

Miller's initiative is an example of direct democracy, in which policy decisions are made by popular vote, bypassing or overriding government officials. Direct democracy for economic decisions is used only sparingly in the United States. In California, many major economic decisions beginning with the infamous Proposition 13 have been made by popular vote, with disastrous results.

The founding fathers were very much opposed to direct democracy (also called “pure democracy”), according to Wikipedia. John Witherspoon, a signer of the Declaration of Independence, said, “Pure democracy cannot subsist long nor be carried far into the departments of state – it is very subject to caprice and the madness of popular rage.” The American colonists favored representative democracy — not direct democracy. That's why they said “No taxation without representation.” They didn't say “No taxation without popular vote.”

Why should fire districts be any different from other local governments?

Fire districts are just one more kind of local government taxing authority in New York State, along with Towns, cities, villages, and counties. I know of no reason why fire districts should be governed differently than any of these other taxing authorities. In my view, fire districts should continue to use the same budget approval process as most other local taxing authorities.

Incorrect and Misleading Statements in Valley View Article

Miller's Valley View article contains misleading statements, and at least one statement that is just plain wrong. In the context of the Fairview Fire District's high fire tax rate, Miller writes:
Fairview alone had fire district tax rates nearly 10 times higher than 27 other towns in Dutchess County in 2010.
This statement is absurd, since there are only 20 towns in Dutchess County. Well, perhaps Miller meant “fire districts” instead of “towns”, since there are about 31 fire districts in Dutchess County. I checked with Miller's office, and was assured that yes, that's what he meant. Well, wrong again! My tax rate analysis from 2009 shows (page 14) that Fairview's tax rate was 10 times higher than 13 other fire districts — not 27 other fire districts. Miller's research staffer has conceded that the Valley Views statement — even after changing “towns” to fire districts” — is incorrect.

Miller misleadingly writes, “This legislation will permit public participation in fire district budgets ...,” as if public participation in the fire district budget process doesn't already exist. But New York State law already requires a fire district to publicize its tentative budget and to hold a public hearing on the budget, during which public input is received. In this way again, state law provides for public participation in the fire district budget process just as it does in most other kinds of local government, including counties, cities, villages, and schools.

This Is My Opinion

Most of my previous posts have been nonpartisan, focusing on objective facts. This post (except for the last section) is clearly my own opinion. Therefore, it's marked with an “Opinion” label. As always, I welcome your reasoned comments.