President Trump's approval rating at the highest it's been in many months. Why?

If I’m reading Nate Silver’s graph right, President Trump’s approval rating (currently 42.8%) is the highest it’s been since the middle of March 2017 (about 8 weeks after he took office). Anyone have an explanation or thoughts on why it’s up now?

It’s obvious, isn’t it? Trump has been traveling around the country stumping for GOP candidates before the midterm, and it’s getting his supporters fired up.

Many on the right see “Kavanaugh” as an unquestioned win for their side. The rest of what Trump does slides right by them–all they know is ‘he got our guy on the Court.’

I’d be amazed if the uptick is due to anything other than Kavanaugh. (Some of the polls may have questions that could tease out the reasons, though of course proof isn’t possible.)

Dementia rates, specifically Alzheimer’s disease, are on the rise. Cite.

There seems to be a dearth of Mueller-related news lately. Some will interpret no news as good news, I interpret it as Mueller honoring honoring the 60-day rule.

It may be that when someone’s approval is abnormally high or low, that it naturally tends to regress back to the mean. And when someone like Trump has broad unpopularity, it makes something like 42% viewed as remarkably high, whereas if Obama, Bush, Clinton or Reagan had had 50% approval ratings, those might not even be seen as particularly good.

LOL at this thread

Maybe it’s relatively high because his supporters hate the stock market and are pleased with it’s current performance.

Do you?

It’s Republicans.

Here’s a Python script to grab all the trump job approval polls from elections.huffingtonpost.com and store that data in a pickled dataframe.


import pandas as pd
import pickle

url = 'http://elections.huffingtonpost.com/pollster/api/v2/questions/00c%20-Pres-45-Trump%20-%20Job%20Approval%20-%20National/poll-responses-clean.tsv'
df = pd.read_csv(filepath_or_buffer = url, 
                 sep = '	', 
                 parse_dates = ['start_date', 'end_date'])

# Print first five rows
print(df.head())
# Print column names and data types
print(df.dtypes)

pickle.dump( df, open( "trump_job_approval_df.p", "wb" ) )

Here’s a script that computes a seven day rolling average of approval for democrat, independent, and republican subgroups and summarizes that data in a couple ways.


import pandas as pd
import pickle
import datetime

df_raw = pickle.load( open( "trump_job_approval_df.p", "rb" ) )

df_dem = df_raw[df_raw['sample_subpopulation'].apply(lambda x: 'Democrat' in x)]
df_rep = df_raw[df_raw['sample_subpopulation'].apply(lambda x: 'Republican' in x)]
df_ind = df_raw[df_raw['sample_subpopulation'].apply(lambda x: 'independent' in x)]
## Drop columns we don't need
df_dem = df_dem.loc[:,['Approve', 'start_date', 'end_date']]
df_rep = df_rep.loc[:,['Approve', 'start_date', 'end_date']]
df_ind = df_ind.loc[:,['Approve', 'start_date', 'end_date']]
## Add average date column
df_dem['avg_date'] = df_dem['start_date'] + (df_dem['end_date'] - df_dem['start_date']) / 2
df_rep['avg_date'] = df_rep['start_date'] + (df_rep['end_date'] - df_rep['start_date']) / 2
df_ind['avg_date'] = df_ind['start_date'] + (df_ind['end_date'] - df_ind['start_date']) / 2

## Restrict to only columns of interest
df_dem = df_dem.loc[:,['Approve', 'avg_date']]
df_rep = df_rep.loc[:,['Approve', 'avg_date']]
df_ind = df_ind.loc[:,['Approve', 'avg_date']]

# Helper function. Compute average of 'Net' column for rows within delta days (+-) of thedate
def rollingavg(thedate, thedf):
    days = 7
    delta = datetime.timedelta(days=days)
    temp = thedf[(thedf['avg_date'] >= thedate - delta) & (thedf['avg_date'] <= thedate + delta)]
    return temp['Approve'].mean()
  
# Create final dataframe
min_date = df_raw['start_date'].min()
max_date = df_raw['end_date'].max()
df_final = pd.DataFrame(pd.date_range(min_date, max_date), columns = ['Date'])
df_final['Democrat'] = df_final['Date'].apply(lambda x: rollingavg(x, df_dem))
df_final['Republican'] = df_final['Date'].apply(lambda x: rollingavg(x, df_rep))
df_final['Independent'] = df_final['Date'].apply(lambda x: rollingavg(x, df_ind))
# Show plot of difference between Rasmussen and non-Rasmussen over time.
df_final.plot()
print(df_final.describe())

Average
Democrat - 10.862389
Independent - 36.707268
Republican - 82.821941

Current
Democrat - 9.333333
Independent - 36.500000
Republican - 86.333333

He’s doing slightly below average among self identified democrats and independents, but he’s well above average among self identified republicans.

Note: Code tags are not compatible with certain (default) skins.

Rasmussen is polling at 46%; all the others tracked by 538 are at 41%.

That is definitely not it. Nate adjusts polls for house effect. Rasmussen’s 46 gets adjusted down to 41 in this case.

Here’s another cut from my dataframe from earlier.


Date        Democrat   Republican   Independent  Overall
2017-10-18  9.130435   80.304348    35.227273    39.089744
2018-10-18  8.818182   85.727273    36.454545    45.12

This is a 14 day average a year apart. Down a skosh with dems, up a point with indies, up 5.5 points with republicans.

His work is done. He’s successfully cleared the swamp and made America great again.

The man deserves a rest after all the hard work he’s done. He should retire and spend the remainder of his days, surrounded by all three of his families, basking in the thanks of a grateful nation and counting his untold billions of dollars with his massive hands. Amen.

You know, Huffpo tried to slam Trump for saying: “If Republicans lose in the midterms, it’s not my fault.”

The thing is though, he’s right (Just puked a little). It would be ridiculous to pin this on Trump when he has such a high approval rating.

Remember: Rasumussen skews Republican, which is why the adjustment is needed.

IOW: I’m agreeing that it’s Republicans.

You are a saucy fellow who really ought to post more frequently on these boards.

I don’t understand what you mean here. There was a Gallup poll from October 15-21 that had him at 44%. Before that, an Oct 18-19 Morning Consult poll had him at 45%, and prior to that, an Oct 17-19 SurveyMonkey poll had him at 47%.

My first guess, like Sherrerd, would have been the Kavanaugh confirmation. Lamoral’s theory that it is due to stumping for candidates ahead of the midterm is an interesting one. I suppose either one of those could claim some support from Lance Turbo’s analysis that the rise is primarily among Republicans.

I can’t tell if you’re kidding here. 42.8% is not a high approval rating, is it? I mean, it is relative to 38% or wherever he bottomed out at, but no one would have said Obama, Bush, Clinton, Bush, Reagan, Carter, Nixon, LBJ, Kennedy, etc., had a high approval rating when it was at 42.8%.

It looks like noise to me, since it was in the low 40s several times recently and not that recently. Could be Kavanaugh. Could be his ranting on the campaign trail.

We know the real reason, though. It’s because Republicans produce jobs whereas Democrats produce mobs.

Coming next week: Why do you think Trump’s approval rating is dropping? Last week, it was at 42.8% and now it’s at 42.78%. Is it the stock market? The bombs?

High approval rating among Republicans. His ratings are less than great with everyone else. If( IF )it turns out there is a ‘blue wave’ and Democrats make a statistically larger than expected gain in the House, let alone the Senate, I think Trump’s unpopularity outside of his base is going to play a fair part. For helping to mobilize opposition if nothing else.