Skip to content

Author: Briggs

January 17, 2018 | 8 Comments

Fire and Fury: It’s False, That’s How We Know It’s True

Stream: The False-But-True Fallacy

There’s concern in the City of Others Riches (Washington D.C.) that Michael Wolff’s Fire and Fury book about the Trump White House contains as much truth as an advertisement for herbal male supplements.

Matt Labash at Weekly Standard read the book and told us of the author’s note

where Wolff states that many of the accounts in Fire and Fury are in conflict with one another and many, “in Trumpian fashion, are baldly untrue…and that looseness with the truth, if not with reality itself” is “an elemental thread of this book.” Or put another way: Despite him weighing the evidence and settling “on a version of events I believe to be true,” everything that follows might be a lie.

In spite of this sobering and cautionary warning that the book might better resemble one of Bill Clinton’s “explanations” than the truth, Labash concludes “what comes through loud and clear in Wolff’s telling is that no matter how bad you thought it was in Trump’s White House, it was actually much worse.”

Many are saying things like this. Sure, Wolff might have included stories like the one he heard from a guy, who himself got it “from a woman on the beach in Florida, who heard it in a carpool line”, but since these stories show Trump to be the moronic oaf we know him to be, they must be true. Even if they’re false.

Seeing What Isn’t There

The reception of Wolff’s book is thus a prime example of the False-But-True Fallacy.

The False-But-True Fallacy, which I sometimes call the Meta Fallacy because it is the mother of all fallacious arguments, is difficult to explain. So stick with me.

How it works is like this. A certain proposition is first conjectured to be true, like “President Trump is an idiot or incompetent”. Evidence for this belief is put forward, as in the case of Wolff’s book. This evidence, if accepted, confirms the belief.

But it is later discovered that the evidence is false, or likely false. Indeed, it is learned that the evidence might have been juiced, or even in part manufactured.

Since the evidence upon which people have been relying has been proved or judged faulty, it would seem that the strength of the belief in the proposition must diminish. But it doesn’t. If anything, it increases.

Logically Illogical

How could this happen when the rules of logic say it is impossible?

Because people argue like this. “The evidence would never have been juiced if the proposition wasn’t really true, because nobody would have bothered to make up stories unless there existed other stories like the made-up ones, but about which we never heard.”

Click here to confirm what you believe is true.

January 16, 2018 | 2 Comments

Free Data Science Class: Predictive Case Study 1, Part VIII


We’re continuing with the CGPA example. The data is on line, and of unknown origin, but good enough to use as an example.

We will build a correlational model, keeping ever in mind this model’s limitations. It can say nothing about cause, for instance.

As we discussed in earlier lessons, the model we will build is in reference to the decisions we will make. Our goal in this model is to make decisions regarding future students’ CGPAs given we have guesses or know their HGPA, SAT, and possibly hours spend studying. We judge at least the first two in the causal path of CGPA. Our initial decision cares about getting CGPA to the nearest point (if you can’t recall why this is most crucially important — review!).

It would be best if we extended our earlier measurement-deduced model, so that we have the predictive model from the get go (if you do not remember what this means — review!). But that’s hard, and we’re lazy. So we’ll do what everybody does and use an ad hoc parameterized model, recognizing that all parameterized models are always approximations to the measurement reality.

Because this is an ad hoc parameterized model, we have several choices. Every choice is in response to a premise we have formed. Given “I quite like multinomial logistic regression; and besides, I’ve seen it used before so I’m sure I can get it by an editor”, then the model is in our premises. All probability follows on our assumptions.

Now the multinomial logistic regression forms a parameter for every category—here we have 5, for CGPA = 0-5—and says those parameters are functions of parameterized measurements in a linear way. The math of all this is busy, but not too hard. Here is one source to examine the model in detail.

For instance, the parameter for CGPA = 0 is itself said to be a linear function of parameterized HGPA and SAT.

These parameters do not exist, give no causal information, and are of no practical interest (no matter how interesting they are mathematically). For instance, they do not appear in what we really want, which is this:

    (8) Pr(CGPA = i | guesses of new measures, grading rules, old obs, model), where i = 0,…,5.

We do not care about the parameters, which are only mathematical entities needed to get the model to work. But because we do not know the value of the parameters, the uncertainty in them, as it were, has to be specified. That is, a “prior” for them must be given. If we choose one prior, (8) will given one answer; if we choose a different prior, (8) will (likely) give a different answer. Same thing if we choose a different parameterized model: (8) will give different answers. This does not worry us because we remember all probability is conditional on the assumptions we make. CGPA does not “have” a probability! Indeed, the answers (8) gives using different models are usually much more varied than the answers given using the same model but different priors.

What prior should we use? Well, we’re lazy again. We’ll use whatever the software suggests, remembering other choices are possible.

Why not use the MNP R Package for “Fitting the Multinomial Probit Model”? But, wait. Probit is not the same as Logit. That’s true, so let’s update our ad hoc premise to say we really had in mind a multinomial probit model. If you do not have MNP installed, use this command, and follow the subsequent instructions about choosing a mirror.

install.packages('MNP', dependencies = TRUE)

There are other choices beside MNP, but unfortunately the software for multinomial regressions is not nearly as developed and as bullet proof as for ordinary regressions. MNP gives the predictive probabilities we want. But we’ll see that it can break. Beside that, our purpose is to understand the predictive philosophy and method, not to tout for a particular ad hoc model. What happens below goes for any model that can be put in the form of (8). This includes all machine learning, AI, etc.

The first thing is to ensure you have downloaded the data file cgpa.csv, and also the helper file briggs.class.R, which contains code we’ll use in this class. Warning: this file is updated frequently! For all the lawyers, I make no guarantee about this code. It might even destroy your computer, cause your wife to leave you, and encourage your children to become lawyers. Use at your own risk. Ensure Windows did not change name of cgpa.csv to cgpa.csv.txt.

Save the files in a directory you create for the class. We’ll store that directory in the variable path. Remember, # comments out the rest of what follows on a line.

path = 'C:/Users/yourname/yourplace/' # for Windows
#path = '/home/yourname/yourplace/' # for Apple, Linux
# find the path to your file by looking at its properties
# everything in this class is in the same directory

source(paste(path,'briggs.class.R',sep='')) # runs the class code
x = read.csv(paste(path,'cgpa.csv',sep='')) 
 x$cgpa.o = x$cgpa # keeps an original copy of CGPA
 x$cgpa = as.factor(roundTo(x$cgpa,1)) # rounds to nearest 1

You should see this:

>  summary(x)
 cgpa        hgpa            sat           recomm          cgpa.o     
 0: 4   Min.   :0.330   Min.   : 400   Min.   : 2.00   Min.   :0.050  
 1:17   1st Qu.:1.640   1st Qu.: 852   1st Qu.: 4.00   1st Qu.:1.562  
 2:59   Median :1.930   Median :1036   Median : 5.00   Median :1.985  
 3:16   Mean   :2.049   Mean   :1015   Mean   : 5.19   Mean   :1.980  
 4: 4   3rd Qu.:2.535   3rd Qu.:1168   3rd Qu.: 6.00   3rd Qu.:2.410  
        Max.   :4.250   Max.   :1500   Max.   :10.00   Max.   :4.010  
> table(x$cgpa)

 0  1  2  3  4 
 4 17 59 16  4 

The measurement recomm we’ll deal with later. Next, the model.

require(MNP) # loads the package

fit <- mnp(cgpa ~ sat + hgpa, data=x, burnin = 2000, n.draws=2000)
#fit <- mnp(cgpa ~ sat + hgpa, data=x, burnin = 2000, n.draws=10000)

The model call is obvious enough, even if burnin = 2000, n.draws=2000 is opaque.

Depending on your system, the model fit might break. You might get an odd error message ("TruncNorm: lower bound is greater than upper bound") about inverting a matrix which you can investigate if you are inclined (the problem is in a handful of values in sat, and how the model starts up). This algorithm uses MCMC methods, and therefore cycles through a loop of size n.draws. All we need to know about this (for now) is that because this is a numerical approximation, larger numbers give less sloppy answers. Try n.draws=10000, or even five times that, if your system allows you to get away with it. The more you put, the longer it takes.

We can look at the output of the model like this (this is only a partial output):

> summary(fit)

mnp(formula = cgpa ~ sat + hgpa, data = x, n.draws = 50000, burnin = 2000)

                    mean       2.5%  97.5%
(Intercept):1 -1.189e+00  2.143e+00 -7.918e+00  0.810
(Intercept):2 -1.003e+00  1.709e+00 -5.911e+00  0.664
(Intercept):3 -8.270e+00  3.903e+00 -1.630e+01 -1.038
(Intercept):4 -2.297e+00  3.369e+00 -1.203e+01 -0.003
sat:1          9.548e-04  1.597e-03 -3.958e-04  0.006
sat:2          1.065e-03  1.488e-03 -7.126e-06  0.005
sat:3          4.223e-03  2.655e-03  2.239e-05  0.010
sat:4          1.469e-03  2.202e-03  1.704e-06  0.008
hgpa:1         9.052e-02  3.722e-01 -5.079e-01  0.953
hgpa:2         1.768e-01  3.518e-01 -2.332e-01  1.188
hgpa:3         1.213e+00  6.610e-01  1.064e-01  2.609
hgpa:4         3.403e-01  5.242e-01 -7.266e-04  1.893

The Coefficients are the parameters spoken of above. The mean etc. are the estimates of these unobservable, not-very-interesting entities. Just keep in mind that because a coefficient is large, does not mean its effect on the probability of CGPA = i is itself large.

We do care about the predictions. We want (8), so let's get it. Stare at (8). On the right hand side we need to guess values of SAT and HGPA for a future student. Let's do that for two students, one with a low SAT and HGPA, and another with high values. You shouldn't have to specify values of CGPA, since these are what we are predicting, but that's a limitation of this software.

y = data.frame(cgpa = c("4","4"), sat=c(400,1500), hgpa = c(1,4))
a=predict(fit, newdata = y, type='prob')$p

The syntax is decided by the creators of the MNP package. Anyway, here's what I got. You will NOT see the exact same numbers, since the answers are helter-skelter numerical approximations, but you'll be close.

> a
            0          1         2      3            4
[1,] 0.519000 0.24008333 0.2286875 0.0115 0.0007291667
[2,] 0.000125 0.04489583 0.1222917 0.6900 0.1426875000

There are two students, so two rows of predictions for each of the five categories. This says, for student (sat=400, hgpa=1), he'll most like see a CGPA = 0. And for (sat=1500, hgpa=4), the most likely is a CGPA = 3. You can easily play with other scenarios. But, and this should be obvious, if (8) was our goal, we are done!

Next time we'll build on the scenarios, explore this model in more depth, and compare our model with classical ones.

Homework Play with other scenarios. Advanced students can track down the objectionable values of sat that cause grief in the model fit (I wrote a script to do this, and known which ones they are). Or they can change the premises, by changing the starting values of the parameters. We didn't do that above, because most users will never do so, relying on the software to work "automatically".

The biggest homework is to think about the coefficients with respect to the prediction probabilities. Answer below!

January 15, 2018 | 3 Comments

Professors Say Lack of Ideological Diversity is a Feature, not a Bug

Stream: Professors Say Lack of Ideological Diversity is a Feature, not a Bug

You know who the real champions of open debate on our beleaguered college campuses are? Social justice warriors.

Obvious, right?

It was obvious to tenured professor of classics and ancient history Matthew Sears at the University of New Brunswick.

He wrote “Why ‘social justice warriors’ are the true defenders of free speech and open debate” for the Washington Post. And they printed it. So it must be true.

Sears is one a growing rank of academics who see the enforced progressive monoculture at American universities not as a bug but as a feature.

He wrote “the social justice approach — which emphasizes the dynamics of power and oppression — that many fear has taken over the humanities and social sciences at its best is actually an improvement over the ‘disinterested pursuit of truth’.”

Reality is Judgmental

It sure is an improvement! Why use disinterested truth when we can speak our Oprah-blessed self truths by using the dynamics of power and oppression? Just like those SJWs at Evergreen State College did when they stalked through campus with bats daring people to disagree them.

And remember: Disinterested truth can be awfully harsh. You’re a man who wants to be a woman? That’s your truth. But the disinterested truth insists you’re still a man. Ouch.

Sears says “In fact, rather than constituting an attack on knowledge, the social justice lens reflects new ideas generated by academic disciplines and experts within them, and generally encourages expanding our knowledge and opening up subjects to new perspectives, much like Socrates advocated.”

Know What You Don’t Know

It’s not clear what Socrates Sears meant. Maybe the chef at The Pita Pit located in downtown Saint John. (Or perhaps Karl Popper’s cat?)

He can’t have meant Socrates the philosopher. Socrates the philosopher was all for the disinterested pursuit of truth. While in jail awaiting execution, Socrates congratulated his friend Crito on being well placed to consider a certain argument because Crito was “disinterested and not liable to be deceived by the circumstances in which [he was] placed.”

At that same time Socrates said that he would follow the path of reason “even if the power of the multitude could inflict many more imprisonments, confiscations, deaths, frightening us like children with hobgoblin terrors.”

We are therefore right to doubt that Socrates would have supported the path of Social Justice. Like that followed by SJWs at Middlebury College, who you might remember used the dynamics of power and oppression to shut down a speech by Charles Murray. SJWs hounded Murray of campus and tried to yank the head off of a professor accompanying Murray. Giving your debating opponent a concussion is not what is classically meant by the Socratic method.


If you are not on a campus that has blocked this (it’s happened before!), click here to read the rest.

January 14, 2018 | 2 Comments

Summary Against Modern Thought: Evil Is Not An Essence

Previous post.

Evil is a lack, not an attribute. We as shorthand like to say it is an attribute, but that is all this is: shorthand, a metaphor. Here we need be precise. Next week some purported counter-examples to this assertion are given, along with their rebuttals.

That Evil Is Not An Essence

1 From these considerations it becomes evident that no essence is evil in itself.

2 In fact, evil is simply a privation of something which a subject is entitled by its origin to possess and which it ought to have, as we have said. Such is the meaning of the word “evil” among all men. Now, privation is not an essence; it is, rather, a negation in a substance. Therefore, evil is not an essence in things.

3 Again, each thing has actual being in accord with its essence. To the extent that it possesses being, it has something good; for, if good is that which all desire, then being itself must be called a good, because all desire to be. As a consequence, then, each thing is good because it possesses actual being. Now, good and evil are contraries. So, nothing is evil by virtue of the fact that it has essence. Therefore, no essence is evil.

Notes It is hard to believe this in the case of mosquitoes, but there you are. (Joke.)

4 Besides, everything is either an agent or a thing that is made. Now, evil cannot be an agent, because whatever acts does so inasmuch as it is actually existent and perfect. Similarly, it cannot be a thing that is made, for the termination of every process of generation is a form, and a good thing. Therefore, nothing is evil by virtue of its essence.

5 Moreover, nothing tends toward its contrary, for each thing inclines to what is like and suitable to itself. Now, every being intends a good, when it is acting, as has been proved. Therefore, no being, as being, is evil.

6 Furthermore, every essence belongs to some definite thing in nature. Indeed, if it falls in the genus of substance, it is the very nature of the thing. However, if it is in the genus of accident, it must be caused by the principles of some substance, and thus it will be natural to this substance, though perhaps it may not be natural to another substance. For example, heat is natural to fire, though it may not be natural to water. Now, what is evil in itself can not be natural to anything. For it is of the very definition of evil that it be a privation of that which is to be in a subject by virtue of its natural origin, and which should be in it. So, evil cannot be natural to any subject, since it is a privation of what is natural. Consequently, whatever is present naturally in something is a good for it, and it is evil if the thing lacks it. Therefore, no essence is evil in itself.

7 Again, whatever possesses an essence is either a form itself, or has a form. In fact, every being is placed in a genus or species through a form. Now, a form, as such, has the essential character of goodness, because a form is a principle of action; so, too, does the end to which every agent looks; and so also does the action whereby each thing having a form is perfected. Hence, everything that has an essence is, by virtue of that fact, a good thing. Therefore, evil has no essence.

8 Besides, being is divided by act and potency. Now, act, as such, is good, for something is perfect to the extent that it is in act. Potency, too, is a good thing, for potency tends toward act, as appears in every instance of change. Moreover, potency is also proportionate to act and not contrary to it. It belongs in the same genus with act; privation does not belong to it, except accidentally. So, everything that exists, whatever the mode of its existence, is a good thing to the extent that it is a being. Therefore, evil does not possess any essence.

9 Moreover, we have proved in Book Two of this work [15] that every act of being, whatever its type may be, comes from God. And we have shown in Book One [28, 41] that God is perfect goodness. Now, since evil could not be the product of a good thing, it is impossible for any being, as a being, to be evil.

10 This is why Genesis (1:31) states: “God saw all the things that He had made, and they were very good”; and Ecclesiastes (3:11): “He hath made all things good in their time”; and also I Timothy (4:4): “Every creature of God is good.”

11 And Dionysius, in chapter four of On the Divine Names says that “evil is not an existing thing,” that is, in itself; “nor is it something among things that have existence,” but it is a sort of accident, something like whiteness or blackness.

12 Through this consideration, the error of the Manicheans is refuted, for they claimed that some things are evil in their very natures.