rm(list = ls())
setwd("~/Downloads")
library(foreign)
sex_data <- read.spss("sex_data.sav", use.value.label=TRUE, to.data.frame=TRUE)
Libraries/themes
library(ggplot2)
library(tidyverse)
library(gridExtra)
library(finalfit)
library(kableExtra)
library(xtable)
jrothsch_theme <- theme_bw() +
theme(text = element_text(size = 10, face = "bold", color = "deepskyblue4"),panel.grid = element_blank(),axis.text = element_text(size = 10, color = "gray13"), axis.title = element_text(size = 10, color = "red"), legend.text = element_text(colour="Black", size=10), legend.title = element_text(colour="Black", size=7), plot.subtitle = element_text(size=14, face="italic", color="black"))
Removing obserations without our key variables
sex_data <- sex_data[!is.na(sex_data$status),]
sex_data <- sex_data[!is.na(sex_data$age),]
sex_data <- sex_data[!is.na(sex_data$Years_PrimaryPartner),]
sex_data <- sex_data[!is.na(sex_data$MALE),]
Making variables
sex_data <- sex_data %>%
mutate(married = status == "Married")
sex_data <- sex_data %>%
mutate(married_gender = ifelse(married,
ifelse(MALE == "Male", "Married Male", "Married Female"),
ifelse(MALE == "Male", "Unmarried Male", "Unmarried Female ")))
married_num = length(sex_data$married[sex_data$married == T])
unmarried_num = length(sex_data$married[sex_data$married == T])
sex_data <- sex_data %>% mutate(freq_num = as.numeric(ifelse(sexfreq == "At least once per day", 6,
ifelse(sexfreq == "3-4 times per week", 5,
ifelse(sexfreq == 'At least once a week', 4,
ifelse(sexfreq == 'At least once per month', 3,
ifelse(sexfreq =='At least once per year', 2,
ifelse( sexfreq =="Less than once a year", 1, 0))))))))
female <- sex_data %>%
filter(sex_data$MALE == "Female")
making couples variable/dataset
sex_data <- sex_data %>%
mutate(incouple = !is.na(couple))
couples <- sex_data %>%
filter(incouple == T & partner_sex == "Opposite sex") %>%
group_by(couple) %>%
#removing gay couples not filtered by above condition
filter(couple != 184 & couple !=166 & couple != 66)
###THE PROBLEM IS THAT YOU NEED REST OF VARIABLES TO BE EQUAL
###MARRIAGE IS FINE
##DO THE OTHER VARS ONEAT A TIME
couples_want <- couples %>%
select(want, couple, MALE, married)
couples_widewant <- couples_want %>%
spread(MALE, want) %>%
filter(!is.na(Male) & !is.na(Female))
couples_widewant <- couples_widewant %>%
mutate(dif = Female - Male)
couples_like <- couples %>%
select(totlike, couple, MALE, married)
couples_widelike <- couples_like %>%
spread(MALE, totlike) %>%
filter(!is.na(Male) & !is.na(Female))
couples_widelike <- couples_widelike %>%
mutate(dif = Female - Male)
couples_freq <- couples %>%
select(freq_num, couple, MALE, married)
couples_widefreq <- couples_freq %>%
spread(MALE, freq_num) %>%
filter(!is.na(Male) & !is.na(Female))
couples_widefreq <- couples_widefreq %>%
mutate(dif = Female - Male)
couples_trynew <- couples %>%
select(satis24, couple, MALE, married) %>%
mutate(satis24 = as.numeric(satis24))
couples_widetrynew <- couples_trynew %>%
spread(MALE, satis24) %>%
filter(!is.na(Male) & !is.na(Female))
couples_widetrynew <- couples_widetrynew %>%
mutate(dif = abs(Female - Male))
couples_age <- couples %>%
select(age, couple, MALE, married)
couples_wideage <- couples_age %>%
spread(MALE, age) %>%
filter(!is.na(Male) & !is.na(Female))
couples_widege <- couples_wideage %>%
mutate(dif = Female - Male)
Testing whether couples are different from non-coiples in want/like/freq/age/trying new things
ggplot(sex_data, aes(x = age)) + geom_density(aes(color = incouple))+ jrothsch_theme
ggplot(sex_data, aes(x = want)) + geom_density(aes(color = incouple))+ jrothsch_theme
ggplot(sex_data, aes(x = totlike)) + geom_density(aes(color = incouple))+ jrothsch_theme
ggplot(sex_data, aes(x = as.numeric(sexfreq))) + geom_density(aes(color = incouple), bw= 1)+ jrothsch_theme
ggplot(sex_data, aes(x = as.numeric(satis24))) + geom_density(aes(color = incouple), bw= 1)+ jrothsch_theme
Testing agreement on want/like/freq
ggplot(couples_widewant, aes(x = Male, y = Female)) + geom_jitter() + geom_smooth(se = F) + jrothsch_theme +
labs(title = "Want, Male V Female Couples")
cor(couples_widewant$Female, couples_widewant$Male)
## [1] 0.5435991
ggplot(couples_widelike, aes(x = Male, y = Female)) + geom_jitter() + geom_smooth(se = F) + jrothsch_theme +
labs(title = "Like, Male V Female Couples")
cor(couples_widelike$Female, couples_widelike$Male)
## [1] 0.7166774
ggplot(couples_widefreq, aes(x = Male, y = Female)) + geom_jitter() + geom_smooth(se = F) + jrothsch_theme +
labs(title = "Freq, Male V Female Couples")
cor(couples_widefreq$Female, couples_widefreq$Male)
## [1] 0.8682245
ggplot(couples_widetrynew, aes(x = Male, y = Female)) + geom_jitter() + geom_smooth(se = F) + jrothsch_theme +
labs(title = "Try new, Male V Female Couples")
cor(couples_widetrynew$Female, couples_widetrynew$Male)
## [1] 0.712362
ggplot(couples_widewant, aes(x = dif)) + geom_density(aes(fill = married), alpha = 0.3)+ jrothsch_theme +
labs(title = "Female - Male, Want")
ggplot(couples_widelike, aes(x = dif)) + geom_density(aes(fill = married), alpha = 0.3) + jrothsch_theme +
labs(title = "Female - Male, Like")
ggplot(couples_widefreq, aes(x = dif)) + geom_density(aes(fill = married), alpha = 0.3) + jrothsch_theme +
labs(title = "Female - Male, Freq")
ggplot(couples_widetrynew, aes(x = dif)) + geom_density(aes(fill = married), alpha = 0.3) + jrothsch_theme +
labs(title = "Female - Male, Trying new things")
Making dataset with all keyvars
couples_allwide <- couples_widetrynew
couples_allwide$femaleage = couples_wideage$Female
couples_allwide$maleage = couples_wideage$Male
couples_allwide$femalewant = couples_widewant$Female
couples_allwide$malewant = couples_widewant$Male
couples_allwide$femalelike = couples_widelike$Female
couples_allwide$malelike = couples_widelike$Male
regs
couples_allwide %>%
lm(femalewant ~Female + married + femaleage + dif + Female*dif + Male, data = .) %>%
summary()
##
## Call:
## lm(formula = femalewant ~ Female + married + femaleage + dif +
## Female * dif + Male, data = .)
##
## Residuals:
## Min 1Q Median 3Q Max
## -20.0789 -4.2305 -0.2023 4.0312 20.4620
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 15.66273 1.84103 8.508 5.69e-16 ***
## Female 4.03557 0.68960 5.852 1.14e-08 ***
## marriedTRUE -0.34165 0.88054 -0.388 0.69826
## femaleage -0.09931 0.02675 -3.713 0.00024 ***
## dif 1.99635 1.40328 1.423 0.15576
## Male 0.30025 0.57687 0.520 0.60306
## Female:dif -0.39501 0.45284 -0.872 0.38366
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.836 on 341 degrees of freedom
## Multiple R-squared: 0.4603, Adjusted R-squared: 0.4508
## F-statistic: 48.48 on 6 and 341 DF, p-value: < 2.2e-16
couples_allwide %>%
lm(malewant ~Male + married + maleage + dif + Male*dif + Female, data = .) %>%
summary()
##
## Call:
## lm(formula = malewant ~ Male + married + maleage + dif + Male *
## dif + Female, data = .)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.6513 -5.0702 0.0197 5.2760 16.9190
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 26.47955 1.90328 13.913 < 2e-16 ***
## Male 0.74955 0.65312 1.148 0.25192
## marriedTRUE 0.85281 0.89391 0.954 0.34075
## maleage -0.12815 0.02685 -4.773 2.69e-06 ***
## dif -3.21584 1.57373 -2.043 0.04178 *
## Female 1.92275 0.54069 3.556 0.00043 ***
## Male:dif 0.93909 0.46909 2.002 0.04608 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.957 on 341 degrees of freedom
## Multiple R-squared: 0.3176, Adjusted R-squared: 0.3056
## F-statistic: 26.46 on 6 and 341 DF, p-value: < 2.2e-16
couples_allwide %>%
lm(femalelike ~Female + married + femaleage + dif + Female*dif + Male, data = .) %>%
summary()
##
## Call:
## lm(formula = femalelike ~ Female + married + femaleage + dif +
## Female * dif + Male, data = .)
##
## Residuals:
## Min 1Q Median 3Q Max
## -26.1781 -4.6573 -0.1218 4.2680 24.4454
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 16.83755 1.98346 8.489 6.49e-16 ***
## Female 5.14367 0.74295 6.923 2.20e-11 ***
## marriedTRUE 0.61608 0.94867 0.649 0.5165
## femaleage 0.02800 0.02882 0.972 0.3319
## dif 2.50449 1.51184 1.657 0.0985 .
## Male 0.63323 0.62150 1.019 0.3090
## Female:dif -0.52271 0.48788 -1.071 0.2848
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.365 on 341 degrees of freedom
## Multiple R-squared: 0.4566, Adjusted R-squared: 0.447
## F-statistic: 47.75 on 6 and 341 DF, p-value: < 2.2e-16
couples_allwide %>%
lm(malelike ~Male + married + maleage + dif + Male*dif + Female, data = .) %>%
summary()
##
## Call:
## lm(formula = malelike ~ Male + married + maleage + dif + Male *
## dif + Female, data = .)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.6530 -4.3236 0.4817 4.5650 19.2084
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 18.99847 1.80639 10.517 < 2e-16 ***
## Male 3.91049 0.61987 6.309 8.74e-10 ***
## marriedTRUE 0.69796 0.84840 0.823 0.41127
## maleage 0.05350 0.02548 2.100 0.03649 *
## dif 0.89375 1.49362 0.598 0.54999
## Female 1.34940 0.51316 2.630 0.00894 **
## Male:dif -0.13719 0.44521 -0.308 0.75816
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.603 on 341 degrees of freedom
## Multiple R-squared: 0.448, Adjusted R-squared: 0.4383
## F-statistic: 46.13 on 6 and 341 DF, p-value: < 2.2e-16