library(SASxport)
## Warning: package 'SASxport' was built under R version 3.6.3
library(tidyr)
library(dplyr)
## Warning: package 'dplyr' was built under R version 3.6.3
library(mice)
## Warning: package 'mice' was built under R version 3.6.3
library(mi)
## Warning: package 'mi' was built under R version 3.6.2
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.6.3
setwd("C:/Users/User/Desktop/nyulearningmaterial/2020Fall/consult/data")
diet <- read.xport("DR1IFF_J.xpt")
mental<-read.xport("DPQ_J.xpt")
selfreport<- read.xport("DBQ_J.xpt")
demo <- read.xport("DEMO_J.xpt")
health <- read.xport("HSQ_J.xpt")
activity <- read.xport("PAQ_J.xpt")
heidata <- read.csv("RES.csv",header = T)
#length(unique(diet$SEQN))
#aggregate observations
diet_agg <- diet %>% 
  group_by(SEQN) %>% 
  summarise(sum_kcal = sum(DR1IKCAL), sum_sugar = sum(DR1ISUGR), sum_tfat = sum(DR1ITFAT),sum_chl = sum(DR1ICHOL))
## `summarise()` ungrouping output (override with `.groups` argument)
#Merge DPQ_J mental questions
mental <- mental[,1:10]
#take out people who have complete the screener
mental <- na.omit(mental)
#remove refused and don't know 
mental <- mental[rowSums(mental[,2:10]<7)==9,]
#calculate their PHQ depression score
mental$dp_score <- rowSums(mental[,2:10])
mental$dp_score_1 <- rowSums(mental[,c(2:5,7:10)])
#check the # of people for differet depress level
sum(mental$dp_score > 4)
## [1] 1296
sum(mental$dp_score > 9)
## [1] 459
sum(mental$dp_score > 14)
## [1] 167
sum(mental$dp_score > 19)
## [1] 43
#dummy coding the level: minimal(0-4) = 0, mild(5-9) = 1, moderate(10-14) = 2, moderately severe(15-19) = 3, severe(20-27) = 4
mental <- mental %>% mutate(dp_level = case_when(dp_score >=0  & dp_score <= 4 ~ '0',
                                                  dp_score >=5  & dp_score <= 9 ~ '1',
                                                  dp_score >=10  & dp_score <= 14 ~ '2',
                                                  dp_score >=15  & dp_score <= 19 ~ '3',
                                                  dp_score >=20  & dp_score <= 27 ~ '4'))
full_data <- merge(diet_agg,mental,by="SEQN")
full_data <- full_data[!is.na(full_data$dp_level),]
#Merge Diet Behavior (Only perception)
full_data <- merge(full_data,selfreport[,c("SEQN","DBQ700")],by="SEQN") 
#Merge demo
demo <- demo[,c("SEQN","RIDAGEYR","RIDRETH3","DMDEDUC2","DMDMARTL","RIAGENDR","INDFMIN2")]
full_data <- merge(full_data,demo,by="SEQN") 
#Merge health
#full_data <- merge(full_data,health,by="SEQN")
#Merge HEI
full_data <- merge(full_data,heidata[,c("SEQN","HEI2015_TOTAL_SCORE")],by="SEQN") 
#Change variable names
colnames(full_data)[colnames(full_data)=="HEI2015_TOTAL_SCORE"] <-"hei"
colnames(full_data)[colnames(full_data)=="DBQ700"] <-"perception"
colnames(full_data)[colnames(full_data)=="RIDAGEYR"] <-"age"
colnames(full_data)[colnames(full_data)=="RIDRETH3"] <-"race"
colnames(full_data)[colnames(full_data)=="DMDEDUC2"] <-"edu"
colnames(full_data)[colnames(full_data)=="DMDMARTL"] <-"marital" #Cate
colnames(full_data)[colnames(full_data)=="RIAGENDR"] <-"gender"
colnames(full_data)[colnames(full_data)=="INDFMIN2"] <-"income_fam"
#Remove refused and don't knows
full_data<-full_data[!full_data$perception == 9,]
full_data<-full_data[!full_data$income_fam == 77,]
full_data<-full_data[!full_data$income_fam == 99,]
full_data<-full_data[!full_data$marital == 77,]
full_data<-full_data[!full_data$marital == 99,]
full_data<-full_data[!full_data$edu == 7 ,]
full_data<-full_data[!full_data$edu == 9 ,]
full_data <- full_data[grepl("^NA", rownames(full_data))==F,]
#Missing pattern
mdf<-missing_data.frame(full_data)
#Get the summary and number of NAs 
summary(mdf)
##       SEQN           sum_kcal       sum_sugar         sum_tfat     
##  Min.   : 93705   Min.   :   25   Min.   :  0.60   Min.   :  0.00  
##  1st Qu.: 95882   1st Qu.: 1420   1st Qu.: 55.52   1st Qu.: 51.35  
##  Median : 98238   Median : 1951   Median : 90.18   Median : 77.04  
##  Mean   : 98266   Mean   : 2120   Mean   :106.59   Mean   : 85.55  
##  3rd Qu.:100623   3rd Qu.: 2619   3rd Qu.:136.65   3rd Qu.:108.33  
##  Max.   :102956   Max.   :11710   Max.   :931.16   Max.   :536.10  
##     sum_chl           DPQ010           DPQ020           DPQ030      
##  Min.   :   0.0   Min.   :0.0000   Min.   :0.0000   Min.   :0.0000  
##  1st Qu.: 129.0   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000  
##  Median : 237.0   Median :0.0000   Median :0.0000   Median :0.0000  
##  Mean   : 307.6   Mean   :0.3785   Mean   :0.3419   Mean   :0.6399  
##  3rd Qu.: 422.0   3rd Qu.:0.0000   3rd Qu.:0.0000   3rd Qu.:1.0000  
##  Max.   :2403.0   Max.   :3.0000   Max.   :3.0000   Max.   :3.0000  
##      DPQ040           DPQ050           DPQ060           DPQ070     
##  Min.   :0.0000   Min.   :0.0000   Min.   :0.0000   Min.   :0.000  
##  1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.000  
##  Median :0.0000   Median :0.0000   Median :0.0000   Median :0.000  
##  Mean   :0.7481   Mean   :0.3859   Mean   :0.2416   Mean   :0.253  
##  3rd Qu.:1.0000   3rd Qu.:0.0000   3rd Qu.:0.0000   3rd Qu.:0.000  
##  Max.   :3.0000   Max.   :3.0000   Max.   :3.0000   Max.   :3.000  
##      DPQ080           DPQ090           dp_score      dp_score_1    
##  Min.   :0.0000   Min.   :0.00000   Min.   : 0.0   Min.   : 0.000  
##  1st Qu.:0.0000   1st Qu.:0.00000   1st Qu.: 0.0   1st Qu.: 0.000  
##  Median :0.0000   Median :0.00000   Median : 2.0   Median : 1.000  
##  Mean   :0.1577   Mean   :0.05281   Mean   : 3.2   Mean   : 2.814  
##  3rd Qu.:0.0000   3rd Qu.:0.00000   3rd Qu.: 5.0   3rd Qu.: 4.000  
##  Max.   :3.0000   Max.   :3.00000   Max.   :25.0   Max.   :23.000  
##  dp_level   perception         age             race            edu       
##  0:3121   Min.   :1.000   Min.   :20.00   Min.   :1.000   Min.   :1.000  
##  1: 702   1st Qu.:2.000   1st Qu.:36.00   1st Qu.:3.000   1st Qu.:3.000  
##  2: 233   Median :3.000   Median :53.00   Median :3.000   Median :4.000  
##  3:  95   Mean   :3.065   Mean   :51.06   Mean   :3.477   Mean   :3.581  
##  4:  34   3rd Qu.:4.000   3rd Qu.:65.00   3rd Qu.:4.000   3rd Qu.:4.000  
##           Max.   :5.000   Max.   :80.00   Max.   :7.000   Max.   :5.000  
##     marital          gender        income_fam          hei       
##  Min.   :1.000   Min.   :1.000   Min.   : 1.000   Min.   :12.71  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.: 5.000   1st Qu.:39.89  
##  Median :1.000   Median :2.000   Median : 8.000   Median :49.21  
##  Mean   :2.588   Mean   :1.512   Mean   : 8.684   Mean   :50.10  
##  3rd Qu.:5.000   3rd Qu.:2.000   3rd Qu.:14.000   3rd Qu.:59.84  
##  Max.   :6.000   Max.   :2.000   Max.   :15.000   Max.   :92.10
#image(mdf, grayscale=TRUE)
#because there is no NA for plot NA mode
#Density plots
library(ggplot2)
#DP_27 v.s. perception
 ggplot(full_data, aes(x = factor(perception), y = factor(dp_score))) +
      geom_bin2d() + 
      stat_bin2d(geom="text", aes(label=..count..))+
      scale_fill_gradient2("Count",high = "#f97561",mid = "#f2e783", low = "#a2d07e",
      midpoint = 300, space = "Lab",na.value = "grey50",  guide = "colourbar",
      aesthetics = "fill")

#DP_level_27 v.s. perception
 ggplot(full_data, aes(x = factor(perception), y = factor(dp_level))) +
      geom_bin2d() + 
      stat_bin2d(geom="text", aes(label=..count..))+
      scale_fill_gradient2("Count",high = "#f97561",mid = "#f2e783", low = "#a2d07e",
      midpoint = 750, space = "Lab",na.value = "grey50",  guide = "colourbar",
      aesthetics = "fill")

#DP_24 v.s. perception
 ggplot(full_data, aes(x = factor(perception), y = factor(dp_score))) +
      geom_bin2d() + 
      stat_bin2d(geom="text", aes(label=..count..))+
      scale_fill_gradient2("Count",high = "#f97561",mid = "#f2e783", low = "#a2d07e",
      midpoint = 300, space = "Lab",na.value = "grey50",  guide = "colourbar",
      aesthetics = "fill")

model.full1 <- lm(hei~perception, data = full_data) #Health diet ~ perception
model.full2 <- lm(hei~dp_score, data = full_data) #Health diet ~ dp_score_27
model.full2.24 <- lm(hei~dp_score_1, data = full_data) #Health diet ~ dp_score_24

model.full3 <- lm(hei~dp_score+perception+age+factor(race)+factor(edu)+factor(marital)+factor(gender)+income_fam, data = full_data) #Health diet ~ full(dp_score_27)
model.full3.1 <- lm(hei~factor(dp_level)+perception+age+factor(race)+factor(edu)+factor(marital)+factor(gender)+income_fam, data = full_data) #Health diet ~ full(dp_score_27_level)

model.full4 <- lm(hei~factor(dp_level)+perception+age+factor(race)+factor(edu)+factor(marital)+factor(gender)+income_fam+factor(dp_level)*perception, data = full_data) #Health diet ~ full+ interaction(dp_score_27_level)
model.full4.1 <- lm(hei~dp_score+perception+age+factor(race)+factor(edu)+factor(marital)+factor(gender)+income_fam+dp_score*perception, data = full_data) #Health diet ~ full+ interaction(dp_score_27)
model.full3.24 <- lm(hei~dp_score_1+perception+age+factor(race)+factor(edu)+factor(marital)+factor(gender)+income_fam, data = full_data)#Health diet ~ full(dp_score_24)
model.full4.24 <- lm(hei~dp_score_1+perception+age+factor(race)+factor(edu)+factor(marital)+factor(gender)+income_fam+dp_score_1*perception, data = full_data)#Health diet ~ full+ interaction(dp_score_24)
full_data$newdp_level <- ifelse(full_data$dp_score_1*27/24 > 11.25,1,0)
model.full3.24.a <- lm(hei~dp_score_1+perception+age+factor(race)+factor(edu)+factor(marital)+factor(gender)+income_fam+newdp_level, data = full_data)#Health diet ~ full(dp_score_24)
model.full4.24.a <- lm(hei~dp_score_1+perception+age+factor(race)+factor(edu)+factor(marital)+factor(gender)+income_fam+dp_score_1*perception+newdp_level, data = full_data)#Health diet ~ full+ interaction(dp_score_24) + new level
model.full4.24.b <- lm(hei~dp_score_1+perception+age+factor(race)+factor(edu)+factor(marital)+factor(gender)+income_fam+dp_score_1*perception+newdp_level*perception, data = full_data)#Health diet ~ full+ interaction(dp_newscore_24&depscore)
model.full4.24.c <- lm(hei~dp_score_1+perception+age+factor(race)+factor(edu)+factor(marital)+factor(gender)+income_fam+newdp_level*factor(perception), data = full_data) #Health diet ~ full+ interaction(dp_newscore_24)
#summary(model.full1)
#summary(model.full2)
#summary(model.full3)
#summary(model.full3.1)
#summary(model.full4)
#summary(model.full3.24)
library(jtools)
## Warning: package 'jtools' was built under R version 3.6.3
library(huxtable)
## Warning: package 'huxtable' was built under R version 3.6.3
## 
## Attaching package: 'huxtable'
## The following object is masked from 'package:ggplot2':
## 
##     theme_grey
## The following object is masked from 'package:dplyr':
## 
##     add_rownames
## The following objects are masked from 'package:SASxport':
## 
##     label, label<-
export_summs(model.full1,model.full2,model.full2.24,scale = F,digits=2,model.names = c("~perception","~dp_score","~dp_score1"))
~perception~dp_score~dp_score1
(Intercept)59.97 ***51.43 ***51.35 ***
(0.67)   (0.27)   (0.27)   
perception-3.22 ***              
(0.21)                 
dp_score       -0.42 ***       
       (0.05)          
dp_score_1              -0.44 ***
              (0.06)   
N4185       4185       4185       
R20.05    0.02    0.01    
*** p < 0.001; ** p < 0.01; * p < 0.05.
export_summs(model.full3,model.full3.1,model.full4,model.full4.1,model.full3.24,model.full4.24,scale = F,digits=2,model.names = c("cont.dp","categ.dp","categ.dp.inter","cont.dp.inter","cont.dp24","cont.dp24.inter"))
cont.dpcateg.dpcateg.dp.intercont.dp.intercont.dp24cont.dp24.inter
(Intercept)53.79 ***53.57 ***54.43 ***54.84 ***53.82 ***54.70 ***
(1.54)   (1.54)   (1.60)   (1.63)   (1.54)   (1.63)   
dp_score-0.19 ***              -0.50 **               
(0.05)                 (0.16)                 
perception-2.19 ***-2.24 ***-2.49 ***-2.50 ***-2.21 ***-2.47 ***
(0.21)   (0.21)   (0.25)   (0.26)   (0.21)   (0.26)   
age0.11 ***0.11 ***0.11 ***0.11 ***0.11 ***0.11 ***
(0.01)   (0.01)   (0.01)   (0.01)   (0.01)   (0.01)   
factor(race)2-0.08    -0.13    -0.19    -0.13    -0.09    -0.12    
(0.90)   (0.90)   (0.90)   (0.90)   (0.90)   (0.90)   
factor(race)3-4.43 ***-4.50 ***-4.54 ***-4.46 ***-4.43 ***-4.46 ***
(0.70)   (0.70)   (0.70)   (0.70)   (0.70)   (0.70)   
factor(race)4-3.29 ***-3.30 ***-3.35 ***-3.33 ***-3.29 ***-3.32 ***
(0.75)   (0.75)   (0.75)   (0.75)   (0.75)   (0.75)   
factor(race)62.47 ** 2.44 ** 2.31 ** 2.36 ** 2.47 ** 2.38 ** 
(0.86)   (0.86)   (0.87)   (0.87)   (0.86)   (0.87)   
factor(race)7-3.87 ***-3.96 ***-4.02 ***-3.92 ***-3.88 ***-3.92 ***
(1.08)   (1.08)   (1.08)   (1.08)   (1.08)   (1.08)   
factor(edu)2-3.21 ** -3.22 ** -3.26 ** -3.25 ** -3.23 ** -3.26 ** 
(1.02)   (1.02)   (1.02)   (1.02)   (1.02)   (1.02)   
factor(edu)3-2.23 *  -2.21 *  -2.23 *  -2.25 *  -2.24 *  -2.25 *  
(0.94)   (0.94)   (0.94)   (0.94)   (0.94)   (0.94)   
factor(edu)4-0.94    -0.94    -0.96    -0.95    -0.95    -0.95    
(0.93)   (0.93)   (0.93)   (0.93)   (0.93)   (0.93)   
factor(edu)52.36 *  2.38 *  2.34 *  2.32 *  2.37 *  2.34 *  
(0.99)   (0.99)   (0.99)   (0.99)   (0.99)   (0.99)   
factor(marital)20.92    0.86    0.83    0.89    0.90    0.87    
(0.86)   (0.86)   (0.86)   (0.86)   (0.86)   (0.86)   
factor(marital)30.61    0.60    0.61    0.61    0.61    0.60    
(0.69)   (0.69)   (0.69)   (0.69)   (0.69)   (0.69)   
factor(marital)40.80    0.75    0.70    0.75    0.78    0.72    
(1.13)   (1.13)   (1.13)   (1.13)   (1.13)   (1.13)   
factor(marital)5-1.67 ** -1.69 ** -1.69 ** -1.66 *  -1.67 ** -1.67 ** 
(0.65)   (0.65)   (0.65)   (0.65)   (0.65)   (0.65)   
factor(marital)6-1.43    -1.48    -1.47    -1.43    -1.44    -1.44    
(0.77)   (0.77)   (0.77)   (0.77)   (0.77)   (0.77)   
factor(gender)21.86 ***1.79 ***1.81 ***1.88 ***1.84 ***1.86 ***
(0.42)   (0.41)   (0.41)   (0.42)   (0.42)   (0.42)   
income_fam0.02    0.03    0.03    0.02    0.02    0.02    
(0.05)   (0.05)   (0.05)   (0.05)   (0.05)   (0.05)   
factor(dp_level)1       -0.04    -1.77                         
       (0.56)   (1.86)                        
factor(dp_level)2       -2.94 ** -7.82 *                       
       (0.90)   (3.30)                        
factor(dp_level)3       -2.09    -8.39                         
       (1.38)   (5.00)                        
factor(dp_level)4       -4.46    -14.95                         
       (2.28)   (8.09)                        
factor(dp_level)1:perception              0.54                         
              (0.54)                        
factor(dp_level)2:perception              1.44                         
              (0.93)                        
factor(dp_level)3:perception              1.77                         
              (1.32)                        
factor(dp_level)4:perception              2.82                         
              (2.05)                        
dp_score:perception                     0.09 *                
                     (0.05)                 
dp_score_1                            -0.20 ***-0.50 ** 
                            (0.06)   (0.18)   
dp_score_1:perception                                   0.09    
                                   (0.05)   
N4185       4185       4185       4185       4185       4185       
R20.14    0.14    0.15    0.14    0.14    0.14    
*** p < 0.001; ** p < 0.01; * p < 0.05.
export_summs(model.full3,model.full3.1,model.full4,model.full4.1,model.full3.24,model.full4.24,scale = F,digits=2,model.names = c("cont.dp","categ.dp","categ.dp.inter","cont.dp.inter","cont.dp24","cont.dp24.inter"))
cont.dpcateg.dpcateg.dp.intercont.dp.intercont.dp24cont.dp24.inter
(Intercept)53.79 ***53.57 ***54.43 ***54.84 ***53.82 ***54.70 ***
(1.54)   (1.54)   (1.60)   (1.63)   (1.54)   (1.63)   
dp_score-0.19 ***              -0.50 **               
(0.05)                 (0.16)                 
perception-2.19 ***-2.24 ***-2.49 ***-2.50 ***-2.21 ***-2.47 ***
(0.21)   (0.21)   (0.25)   (0.26)   (0.21)   (0.26)   
age0.11 ***0.11 ***0.11 ***0.11 ***0.11 ***0.11 ***
(0.01)   (0.01)   (0.01)   (0.01)   (0.01)   (0.01)   
factor(race)2-0.08    -0.13    -0.19    -0.13    -0.09    -0.12    
(0.90)   (0.90)   (0.90)   (0.90)   (0.90)   (0.90)   
factor(race)3-4.43 ***-4.50 ***-4.54 ***-4.46 ***-4.43 ***-4.46 ***
(0.70)   (0.70)   (0.70)   (0.70)   (0.70)   (0.70)   
factor(race)4-3.29 ***-3.30 ***-3.35 ***-3.33 ***-3.29 ***-3.32 ***
(0.75)   (0.75)   (0.75)   (0.75)   (0.75)   (0.75)   
factor(race)62.47 ** 2.44 ** 2.31 ** 2.36 ** 2.47 ** 2.38 ** 
(0.86)   (0.86)   (0.87)   (0.87)   (0.86)   (0.87)   
factor(race)7-3.87 ***-3.96 ***-4.02 ***-3.92 ***-3.88 ***-3.92 ***
(1.08)   (1.08)   (1.08)   (1.08)   (1.08)   (1.08)   
factor(edu)2-3.21 ** -3.22 ** -3.26 ** -3.25 ** -3.23 ** -3.26 ** 
(1.02)   (1.02)   (1.02)   (1.02)   (1.02)   (1.02)   
factor(edu)3-2.23 *  -2.21 *  -2.23 *  -2.25 *  -2.24 *  -2.25 *  
(0.94)   (0.94)   (0.94)   (0.94)   (0.94)   (0.94)   
factor(edu)4-0.94    -0.94    -0.96    -0.95    -0.95    -0.95    
(0.93)   (0.93)   (0.93)   (0.93)   (0.93)   (0.93)   
factor(edu)52.36 *  2.38 *  2.34 *  2.32 *  2.37 *  2.34 *  
(0.99)   (0.99)   (0.99)   (0.99)   (0.99)   (0.99)   
factor(marital)20.92    0.86    0.83    0.89    0.90    0.87    
(0.86)   (0.86)   (0.86)   (0.86)   (0.86)   (0.86)   
factor(marital)30.61    0.60    0.61    0.61    0.61    0.60    
(0.69)   (0.69)   (0.69)   (0.69)   (0.69)   (0.69)   
factor(marital)40.80    0.75    0.70    0.75    0.78    0.72    
(1.13)   (1.13)   (1.13)   (1.13)   (1.13)   (1.13)   
factor(marital)5-1.67 ** -1.69 ** -1.69 ** -1.66 *  -1.67 ** -1.67 ** 
(0.65)   (0.65)   (0.65)   (0.65)   (0.65)   (0.65)   
factor(marital)6-1.43    -1.48    -1.47    -1.43    -1.44    -1.44    
(0.77)   (0.77)   (0.77)   (0.77)   (0.77)   (0.77)   
factor(gender)21.86 ***1.79 ***1.81 ***1.88 ***1.84 ***1.86 ***
(0.42)   (0.41)   (0.41)   (0.42)   (0.42)   (0.42)   
income_fam0.02    0.03    0.03    0.02    0.02    0.02    
(0.05)   (0.05)   (0.05)   (0.05)   (0.05)   (0.05)   
factor(dp_level)1       -0.04    -1.77                         
       (0.56)   (1.86)                        
factor(dp_level)2       -2.94 ** -7.82 *                       
       (0.90)   (3.30)                        
factor(dp_level)3       -2.09    -8.39                         
       (1.38)   (5.00)                        
factor(dp_level)4       -4.46    -14.95                         
       (2.28)   (8.09)                        
factor(dp_level)1:perception              0.54                         
              (0.54)                        
factor(dp_level)2:perception              1.44                         
              (0.93)                        
factor(dp_level)3:perception              1.77                         
              (1.32)                        
factor(dp_level)4:perception              2.82                         
              (2.05)                        
dp_score:perception                     0.09 *                
                     (0.05)                 
dp_score_1                            -0.20 ***-0.50 ** 
                            (0.06)   (0.18)   
dp_score_1:perception                                   0.09    
                                   (0.05)   
N4185       4185       4185       4185       4185       4185       
R20.14    0.14    0.15    0.14    0.14    0.14    
*** p < 0.001; ** p < 0.01; * p < 0.05.
export_summs(model.full3.24.a,model.full4.24.a,model.full4.24.b ,scale = F,digits=2,model.names =  c("cont.dp24(subdp)","cont.dp24.inter(subdp)","cont.dp24.inter(sub2)"))
cont.dp24(subdp)cont.dp24.inter(subdp)cont.dp24.inter(sub2)
(Intercept)53.80 ***54.71 ***54.43 ***
(1.55)   (1.63)   (1.65)   
dp_score_1-0.17 *  -0.48 *  -0.30    
(0.08)   (0.19)   (0.26)   
perception-2.21 ***-2.49 ***-2.40 ***
(0.21)   (0.26)   (0.28)   
age0.11 ***0.11 ***0.11 ***
(0.01)   (0.01)   (0.01)   
factor(race)2-0.09    -0.13    -0.12    
(0.90)   (0.90)   (0.90)   
factor(race)3-4.44 ***-4.47 ***-4.47 ***
(0.70)   (0.70)   (0.70)   
factor(race)4-3.29 ***-3.32 ***-3.31 ***
(0.75)   (0.75)   (0.75)   
factor(race)62.48 ** 2.38 ** 2.38 ** 
(0.86)   (0.87)   (0.87)   
factor(race)7-3.88 ***-3.93 ***-3.95 ***
(1.08)   (1.08)   (1.08)   
factor(edu)2-3.24 ** -3.28 ** -3.28 ** 
(1.02)   (1.02)   (1.02)   
factor(edu)3-2.24 *  -2.27 *  -2.26 *  
(0.94)   (0.94)   (0.94)   
factor(edu)4-0.96    -0.97    -0.96    
(0.93)   (0.93)   (0.93)   
factor(edu)52.36 *  2.33 *  2.35 *  
(0.99)   (0.99)   (0.99)   
factor(marital)20.89    0.85    0.85    
(0.86)   (0.86)   (0.86)   
factor(marital)30.60    0.60    0.59    
(0.69)   (0.69)   (0.69)   
factor(marital)40.79    0.73    0.71    
(1.13)   (1.13)   (1.13)   
factor(marital)5-1.67 ** -1.67 ** -1.67 ** 
(0.65)   (0.65)   (0.65)   
factor(marital)6-1.44    -1.44    -1.43    
(0.77)   (0.77)   (0.77)   
factor(gender)21.83 ***1.84 ***1.85 ***
(0.42)   (0.42)   (0.42)   
income_fam0.02    0.02    0.02    
(0.05)   (0.05)   (0.05)   
newdp_level-0.53    -0.89    -5.15    
(1.32)   (1.34)   (4.70)   
dp_score_1:perception       0.09    0.04    
       (0.05)   (0.08)   
perception:newdp_level              1.24    
              (1.32)   
N4185       4185       4185       
R20.14    0.14    0.14    
*** p < 0.001; ** p < 0.01; * p < 0.05.
summary(model.full4.24.c)
## 
## Call:
## lm(formula = hei ~ dp_score_1 + perception + age + factor(race) + 
##     factor(edu) + factor(marital) + factor(gender) + income_fam + 
##     newdp_level * factor(perception), data = full_data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -38.293  -9.245  -0.521   8.937  49.053 
## 
## Coefficients: (1 not defined because of singularities)
##                                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                     53.52536    1.67111  32.030  < 2e-16 ***
## dp_score_1                      -0.16693    0.08160  -2.046 0.040859 *  
## perception                      -2.08437    0.28878  -7.218 6.24e-13 ***
## age                              0.10981    0.01435   7.650 2.48e-14 ***
## factor(race)2                   -0.11179    0.89994  -0.124 0.901145    
## factor(race)3                   -4.45836    0.70452  -6.328 2.74e-10 ***
## factor(race)4                   -3.27295    0.75028  -4.362 1.32e-05 ***
## factor(race)6                    2.40173    0.86595   2.774 0.005570 ** 
## factor(race)7                   -3.93278    1.07909  -3.645 0.000271 ***
## factor(edu)2                    -3.34582    1.02626  -3.260 0.001122 ** 
## factor(edu)3                    -2.32612    0.94036  -2.474 0.013414 *  
## factor(edu)4                    -1.06661    0.93220  -1.144 0.252612    
## factor(edu)5                     2.25401    0.99749   2.260 0.023892 *  
## factor(marital)2                 0.80929    0.86322   0.938 0.348543    
## factor(marital)3                 0.59329    0.69133   0.858 0.390844    
## factor(marital)4                 0.73914    1.13375   0.652 0.514474    
## factor(marital)5                -1.73068    0.64626  -2.678 0.007435 ** 
## factor(marital)6                -1.43965    0.77278  -1.863 0.062539 .  
## factor(gender)2                  1.82689    0.41586   4.393 1.15e-05 ***
## income_fam                       0.01681    0.05345   0.314 0.753227    
## newdp_level                     -8.32333    5.15390  -1.615 0.106396    
## factor(perception)2              1.20004    0.77074   1.557 0.119547    
## factor(perception)3             -0.32855    0.65606  -0.501 0.616543    
## factor(perception)4              0.03943    0.76727   0.051 0.959016    
## factor(perception)5                   NA         NA      NA       NA    
## newdp_level:factor(perception)2  4.17786    5.71027   0.732 0.464430    
## newdp_level:factor(perception)3  8.44295    5.30035   1.593 0.111257    
## newdp_level:factor(perception)4  7.62537    5.25733   1.450 0.147015    
## newdp_level:factor(perception)5  9.93511    5.47246   1.815 0.069523 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.1 on 4157 degrees of freedom
## Multiple R-squared:  0.1454, Adjusted R-squared:  0.1399 
## F-statistic:  26.2 on 27 and 4157 DF,  p-value: < 2.2e-16
ggplot(full_data, aes(x=dp_score_1, y=hei, color=factor(perception))) +
  geom_point(aes(alpha = 100))+
  geom_smooth(method=lm, se=FALSE, fullrange=F)
## `geom_smooth()` using formula 'y ~ x'