Author Archives: stern pay-for reviews

It’s no secret that a lot of the reviews on are fake. It’s a particular giveaway when some obscure, generic item has thousands of nearly identical five-star reviews. In a slightly more sophisticated version of the scheme, some companies will pay reviewers to say nice things about their products. In that spirit, I’ve started getting a couple of entreaties a week to review items on eBay for cash.

See for example:

It’s clearly a scam, but what scam is it precisely? Are these lousy headphones for which they figure they’ll get better reviews if they pay people? They don’t seem to be giving the headphones for free, so maybe they’re $10 headphones that they sell for $40 by offering a $15 review payment. And maybe they double down on the fraud by not even paying the $15.

So basically, if you are considering buying some bluetooth earbuds, don’t get these.

Installing WordPress on, the 2018 edition provides a software installation kit that will do this automatically, but they charge $3/month for access, which seems silly for free software. You can install WordPress yourself in a few minutes. These guidelines update a set I originally posted in 2010.

  1. Download wordpress software from
  2. Inside the resulting folder, locate the wp-config-sample.php file and rename it to wp-config.php. Open this file in TextEdit (Mac), Notepad (PC), or another text editor.
  3. Log in to your Pair Networks account to create a new database for your WordPress installation. Go to the Account Control Center, then to “Databases,” “Create a New Database”.
  4. Assign a name to your new database. It is best to choose a name that will be easily identifiable if you plan to have multiple databases. Access level “local” and “monthly” optimization should be fine. Then click on the “Add Database” button. You will be brought to the New Database Details screen. Copy the server name, user name for full access, and the password.
  5. In the wp-config.php file that you have opened in your text editor, set the DB_NAME, DB_USER, DB_PASSWORD to the values for the account with “Full Access,” as WordPress will need to read data, write data, and create tables. Also set the DB_HOST variables (the last of those is the server name over at pair, probably something like All of these must be exact matches to your database setup at You should also take this opportunity to assign unique phrases to the various authentication unique keys and salts in the wp-config file.
  6. Connect to your web server via FTP and upload all of the WordPress files, including the wp-config.php to the desired location on your account. If you upload them to then people will later be able to reach your wordpress content by going to that exact address.
  7. Start the WordPress installation PHP script by pointing your web browser to your domain/installation directory ( in the example above), followed by /wp-admin/install.php. Modern versions of WordPress will also work from Follow the on-screen prompts and the WordPress installation on your account will be complete. If it can’t log in, try going back to the database management screen, “Change A Password,” and give a new password to your main database user account. Enter this new password into your wp-config file, upload the fixed wp-config file back to the server, and try again.

Historical global Big Mac prices

Somewhere in the world a hedge fund manager has bought a Ferrarri with trading profits made possible by the following data:

indices = {"BIGMUS", "BIGMBZ", "BIGMMX"};
data = Map[
msBBGhistory[# <> " Index", "Px_Last", {1997, 1, 1}, "",
"Monthly"] &, indices];
DateListPlot[data, PlotStyle -> {Red, Blue, Purple},
PlotRange -> {1.1, 6.4}, Frame -> {True, True, False, False},
PlotLabel -> "Global Big Mac Prices (USD)",
Epilog -> {(Text[Style["U.S.", FontFamily -> "Calibri", FontSize -> 10, Red], {{2012, 1, 10}, 3.8(*vertical position*)}]), (Text[Style["Brazil", FontFamily -> "Calibri", FontSize -> 10, Blue], {{2011, 11, 1}, 4.9(*vertical position*)}]), (Text[Style["Mexico", FontFamily -> "Calibri", FontSize -> 10, Purple], {{2012, 1, 10}, 2.4(*vertical position*)}])}, ImageSize -> Large]

Historical big mac prices, U.S., Mexico and Brazil

Visualizing relationships between dynamic variables, part iii

Principal component analysis can be a powerful tool for detecting similarity between time series, and whether a series ceases to resemble one group of signals and begins to resemble another. I extract three principal components and create a three-dimensional dot plot. My function msPCABoxNF3[] used to label each dot with an Epilog, but with Mathematica 11.3 it became possible to use Callout[]s instead.

msPCABoxNF3[allChNF3sA, "names" -> "names", ImageSize -> Large]

We can show the evolution of these relationships over time using Manipulate[] (a snapshot of the tool is shown below)

msEvolvingPCABoxNF3[allChNF3sA, 20, "spacing" -> 200, "names" -> "tickers", ImageSize -> Large]

Mathematica can also export videos of these things, as shown below. The following runs a bit quicker than I would like but I’m not going to solve the problem for the sake of this post.

Visualizing relationships between dynamic variables, part ii

Mathematica’s Correlation[] tool is handy. I created a wrapper that adds labels and makes it a bit more convenient with the sort of data I use.

msCorrelationMatrix[allChNF3sA, "noisy" -> False]

I often like to consider correlation together with r^2, p-value and criticality tests. The following function runs these things simultaneously for convenience.

msCorrelationMatrix[allChNF3sA, "noisy" -> False]

These functions can also weigh recent events more highly than events in the distant past, which is typically how I use them, though this is not demonstrated above.

When sharing results with others, I find Weighted Adjacency Graphs to be useful, and I will often create tools that allow the user to scroll through time, watching given securities change what other instruments they most resemble. It can be particularly interesting to see ostensibly market-neutral hedge funds start to track the equity markets as their managers take on more beta. This often happens as assets under management increase and/or the markets have been performing well.

Here are three “snapshots” from such a tool for the securities above. You can see that at first, equity hedge funds are a sort of island that don’t track the performance of anything else in the graph. Then in 2005 we enter a regime in which equity hedge funds track the S&P, which in turn resembles other equity series, but credit and commodities follow their own path. The graph continues to evolve (I show only a few states below), but by the end we are in the current world of nearly all risky assets moving together, and nearly everything cross-correlating.

timePasses = Table[Map[msChangeChar[#, "data" -> EventSeries[Take[#["Path"], UpTo[i]]]] &, allChNF3sA], {i, 100, Length[allChNF3sA[[1]]["Path"]], 10}];
wags = Map[msWeightedAdjacencyGraph[#, .3, "time weights" -> Automatic, PlotLabel -> #[[1]]["LastDate"], ImageSize -> Large] &, timePasses];
Manipulate[wags[[i]], {i, 1, Length[wags], 1}]

Dec 2004

Jan 2008

May 2008

July 2012

It stays like that to the current day.

Tomorrow, principal component analysis.