Increasing sexlessness

The General Social Survery has questions about sexual frequency. I investigate the increase in number of people who do not have any sex, and the relationship with the decline in marriage rates.

Jonatan Pallesen
03-27-2019

This analysis is based on data from the General Social Survey. They ask questions about a large number of things, such as the amount of sex people have had in the past year. I use this data to look into the increasing number of young men who are not having sex. Note that the sample size is quite small (100-200 per year), as indicated by the large uncertainty in the graphs, so all these analyses should be viewed as exploratory.


read data


library(pacman)

p_load(tidyverse, broom, magrittr, glue, purrr, ggpubr, purrrlyr, srvyr, feather)

source('../../src/extra.R', echo = F, encoding="utf-8")



gss <- read_feather("data/gss.feather") %>% 
  filter(year != 2012) %>% 
  mutate(
    sex = ifelse(sex == 1, "Men", "Women"),
    twenties = between(age, 18, 30),
    thirties = between(age, 30, 40),
    nosex = sexfreq == 0,
    nosex2 = partners == 0,
    marriage_status = as.factor(ifelse(marital == 1, "married", "not married")),
    marriage_numeric = ifelse(marriage_status == "married", 1, 0),
    unmarried = marriage_status != "married",
    racecat = case_when(
      race == 1 ~ "white",
      race == 2 ~ "black",
      race == 3 & racecen1 == 16 ~ "hispanic"
      )
  )


The plot below shows the increasing proportion of men in their 20s who report that they have had no sex in the past year.

plot


df <- gss %>%
  filter(twenties, sex == "Men") %>%
  select(year, wtssall, nosex) %>% 
  drop_na()  %>% 
  as_survey_design(., weight=wtssall)



prop <- df %>% 
  group_by(year) %>% 
  summarise(prop = survey_mean(nosex, vartype = "ci"))



prop %>% gss_plot_one(1989, linesize=0.6) + 
  labs(y = "percentage", title = "No sex in past year") + 
  theme(text = element_text(size = 12))


If we plot marriage rates next to sexlessness for men in their 20s we see that they both have been increasing.

plot


df <- gss %>%
  filter(twenties, sex == "Men", year >= 1989) %>%
  select(year, wtssall, unmarried) %>% 
  drop_na()  %>% 
  as_survey_design(., weight=wtssall)



prop2 <- df %>% 
  group_by(year) %>% 
  summarise(prop = survey_mean(unmarried, vartype = "ci"))



ggarrange(
  prop %>% gss_plot_one(linesize=0.8) + 
    labs(y = "percentage", title = "No sex in past year"),
  prop2 %>% gss_plot_one(linesize = 0.8) + 
    labs(y = "percentage", title = "Unmarried")
  )


Married men in their 20s are rarely not having sex. This together with the plot above makes a plausible case that the decline in marriage rates is an important factor in the increase in sexlessness.

plot


df <- gss %>% 
  filter(sex == "Men", 
         twenties,
         year != 1990) %>% 
  select(year, sex, wtssall, nosex, marriage_status) %>% 
  drop_na() %>% 
  as_survey_design(., weight=wtssall)

  

prop <- df %>% 
  group_by(year, marriage_status) %>% 
  summarise(prop = survey_mean(nosex, vartype = "ci"))



prop %>% gss_plot_facet("marriage_status") +
  labs(y = "percentage", title = "No sex in past year")


Sexlessness among 30-40 year old men may also be slightly increasing. However, it is at much lower levels than that for 20-30 year old men, ~10% vs ~25%.

plot


df <- gss %>%
  filter(thirties, sex == "Men") %>%
  select(year, wtssall, nosex) %>% 
  drop_na()  %>% 
  as_survey_design(., weight=wtssall)



prop <- df %>% 
  group_by(year) %>% 
  summarise(prop = survey_mean(nosex, vartype = "ci"))





prop %>% gss_plot_one(1989, linesize=0.6) + 
  labs(y = "percentage", title = "No sex in past year") +
  theme(text = element_text(size = 12))


The proportion of unmarried men in their 30s who are not having sex looks similar to the number for men in their 20s. But a much larger proportion of men in their 30s are married, and the majority of married people are having sex. Thus the amount of sexlessness among men in their 30s is a lot lower than that of men in their 20s.

plot


df <- gss %>% 
  filter(sex == "Men", 
         thirties,
         year != 1990) %>% 
  select(year, sex, wtssall, nosex2, marriage_status) %>% 
  drop_na() %>% 
  as_survey_design(., weight=wtssall)

  

prop <- df %>% 
  group_by(year, marriage_status) %>% 
  summarise(prop = survey_mean(nosex2, vartype = "ci"))



prop %>% gss_plot_facet("marriage_status") +
  labs(y = "percentage", title = "No sex in past year")


This graph indicates that roughly from the 90s to the 2000s sexlessness did not increase, while marriage rates decreased. Then since 2014, both marriage rates and sexlessness increased further.

plot


df <- gss %>%
  filter(sex == "Men", twenties) %>% 
  select(year, sex, wtssall, nosex, unmarried) %>% 
  drop_na()  %>% 
  as_survey_design(., weight=wtssall)



pv1 <- df %>% 
  group_by(year) %>% 
  summarise(prop = survey_mean(nosex, vartype = "ci"))



pv3 <- df %>% 
  group_by(year) %>% 
  summarise(prop = survey_mean(unmarried, vartype = "ci"))



pv3 %<>% mutate(unmarried = prop) 

pv1 %<>% mutate(nosex = prop)



m <- inner_join(pv1, pv3, by="year")





m %>% ggplot(aes(x = unmarried, y = nosex, label=year, color=year)) + 
  geom_point() + 
  geom_text(hjust=0, vjust=0) +
  geom_path(size=1) + 
  scale_colour_gradient(low = "turquoise3", high = "blue") +
  xlim(0.65, 0.9) + ylim(0, 0.35) +
  labs(y = "no sex in the past year", x = "unmarried", 
       title= "Marraige rates and sexlessness")