Load packages and data set

Useful function - run first

## Correlation Function
Correlation <- function(data, Cor1, Cor2, title) {
  ggplot(data = data, aes(x = {{Cor1}}, y = {{Cor2}})) +
  geom_point()+
  geom_smooth(method = lm, se = FALSE)+
  geom_abline(linetype = 3) +
  ggtitle(title) +
  stat_cor(method = "pearson") +
  theme_light() 
}

Participant characterstics

## Age
SS %>%
  select(Age) %>%
  summarize(meanAge = mean(as.numeric(Age)), sd = sd(as.numeric(Age)), range = range(as.numeric(Age)))
## # A tibble: 2 × 3
##   meanAge    sd range
##     <dbl> <dbl> <dbl>
## 1    31.3  9.83    18
## 2    31.3  9.83    54
## BMI
SS %>%
  select(BMI) %>%
  summarize(meanBMI = mean(as.numeric(BMI)), sd = sd(as.numeric(BMI)), range = range(as.numeric(BMI)))
## # A tibble: 2 × 3
##   meanBMI    sd range
##     <dbl> <dbl> <dbl>
## 1    25.9  4.61  19.5
## 2    25.9  4.61  35.1
## Obesity status
SS %>%
  count(BMI.Catagory)
## # A tibble: 3 × 2
##   BMI.Catagory     n
##   <chr>        <int>
## 1 Healthy          9
## 2 Obese            1
## 3 Overweight      11
## Sex
SS %>%
  count(Sex)
## # A tibble: 3 × 2
##   Sex            n
##   <chr>      <int>
## 1 Female        13
## 2 Male           7
## 3 Non-binary     1
## Race
SS %>%
  count(Race)
## # A tibble: 4 × 2
##   Race                       n
##   <chr>                  <int>
## 1 Asian                      5
## 2 Black/African American     3
## 3 Caucasian                 11
## 4 Caucasian+Asian            2
## Average preferred sucrose concentration, geomean
SS %>%
  select(Pref) %>%
  summarize(PrefGeoM = exp(mean(log(Pref))), sd = sd(Pref))
## # A tibble: 1 × 2
##   PrefGeoM    sd
##      <dbl> <dbl>
## 1     469.  264.
## Average most liked sucrose concentration, geomean
SS %>%
  select(MostLiked) %>%
  summarize(MostLikedGeoM = exp(mean(log(MostLiked))), sd = sd(MostLiked))
## # A tibble: 1 × 2
##   MostLikedGeoM    sd
##           <dbl> <dbl>
## 1          593.  282.
## Average SFBL score
SS %>%
  select(Sweet.Liking) %>%
  summarize(SFBL = mean(Sweet.Liking), sd = sd(Sweet.Liking))
## # A tibble: 1 × 2
##    SFBL    sd
##   <dbl> <dbl>
## 1  70.5  14.4
## Sweet beverage consumption frequency
SS %>%
  count(SSB.frequency.score)
## # A tibble: 5 × 2
##   SSB.frequency.score     n
##                 <dbl> <int>
## 1                   1     1
## 2                   2     4
## 3                   3     2
## 4                   4     5
## 5                   5     9
## Sweet foods consumption frequency
SS %>%
  count(SF.frequency.score)
## # A tibble: 3 × 2
##   SF.frequency.score     n
##                <dbl> <int>
## 1                  1     6
## 2                  2    13
## 3                  3     2

Normality check

## Preference
SS %>%
  ggplot(aes(x = Pref)) +
  geom_histogram(aes(y=..density..), position="identity") +
  geom_density()+
  theme_minimal()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

## Liking
SS %>%
  ggplot(aes(x = MostLiked)) +
  geom_histogram(aes(y=..density..), position="identity") +
  geom_density()+
  theme_minimal()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Sweet Intensity: reliability

This is calculated using data from the Full Test (participants rated 5 total solutions twice within each session). The overall test-retest reliability for the sweet intensity measures is high (r = 0.90). The dose-response curve is similiar to previously published data (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8777740/).

## Reliability: Full Test

Int.wide <- Int %>% 
  select(ID, Day, Sweet, Conc.mM, Sweet.Level) %>%
  group_by(ID, Day, Conc.mM, Sweet.Level) %>%
  summarize(Sweet.Int = mean(Sweet)) %>%
  pivot_wider(names_from = Day, values_from = Sweet.Int) %>%
  rename(Day.1 = "1", Day.2 = "2")
## `summarise()` has grouped output by 'ID', 'Day', 'Conc.mM'. You can override using the `.groups` argument.
Correlation(Int.wide, log10(Day.1), log10(Day.2), "Test retest reliability for sweet intensity measures")
## `geom_smooth()` using formula 'y ~ x'

## Difference between day 1 and day 2: Full Test
Int.aov <- aov(Sweet ~ Day + Sweet.Level, Int)
summary(Int.aov)
##              Df Sum Sq Mean Sq F value Pr(>F)    
## Day           1    535     535   4.058 0.0446 *  
## Sweet.Level   1  95682   95682 725.796 <2e-16 ***
## Residuals   417  54974     132                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Dose-Response
Int.1 <- Int %>%
  filter(Day == 1) %>%
  group_by(Sweet.Level) %>%
  summarize(Sweet.Int = mean(Sweet), sd = sd(Sweet))
Int.1$Day <- 1

Int.2 <- Int %>%
  filter(Day == 2) %>%
  group_by(Sweet.Level) %>%
  summarise(Sweet.Int = mean(Sweet), sd = sd(Sweet), Conc.mM = (Conc.mM + 10))
## `summarise()` has grouped output by 'Sweet.Level'. You can override using the `.groups` argument.
Int.2$Day <- 2

Sweet.Int <- full_join(Int.1, Int.2) 
## Joining, by = c("Sweet.Level", "Sweet.Int", "sd", "Day")
Sweet.Int %>% ggplot(aes(x = Sweet.Level, y = Sweet.Int, color = as.factor(Day))) +
  geom_point() + 
  geom_line()+
  geom_errorbar(aes(ymin = Sweet.Int - sd/sqrt(21), ymax = Sweet.Int + sd/sqrt(21)), width = 0.1) +
  ylim(0, 100) +
  scale_color_jama() +
  theme_light()

## Sweet level 1
L1.Int.aov <- Int %>%
  filter(Sweet.Level == 1) %>%
  aov(Sweet~Day, data = .)

summary(L1.Int.aov)
##             Df Sum Sq Mean Sq F value Pr(>F)
## Day          1      8   8.023    0.33  0.567
## Residuals   82   1996  24.343
## Sweet level 2
L2.Int.aov <- Int %>%
  filter(Sweet.Level == 2) %>%
  aov(Sweet~Day, data = .)

summary(L2.Int.aov)
##             Df Sum Sq Mean Sq F value Pr(>F)
## Day          1     66   65.95   1.722  0.193
## Residuals   82   3141   38.31
## Sweet level 3
L3.Int.aov <- Int %>%
  filter(Sweet.Level == 3) %>%
  aov(Sweet~Day, data = .)

summary(L3.Int.aov)
##             Df Sum Sq Mean Sq F value Pr(>F)  
## Day          1    579   579.2   3.182 0.0782 .
## Residuals   82  14925   182.0                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Sweet level 4
L4.Int.aov <- Int %>%
  filter(Sweet.Level == 4) %>%
  aov(Sweet~Day, data = .)

summary(L4.Int.aov)
##             Df Sum Sq Mean Sq F value Pr(>F)
## Day          1    265   264.9   1.606  0.209
## Residuals   82  13520   164.9
## Sweet level 5
L5.Int.aov <- Int %>%
  filter(Sweet.Level == 5) %>%
  aov(Sweet~Day, data = .)

summary(L5.Int.aov)
##             Df Sum Sq Mean Sq F value Pr(>F)
## Day          1      0    0.18   0.001  0.978
## Residuals   82  18681  227.82
## Reliability: Simplified Test
SS.Int.cor <- SS.Int.Wide %>%
  select(SS.Sucralose.Low.1, SS.Sucrose.Low.1,  SS.Sucralose.High.1, SS.Sucrose.High.1, Single.Sucralose.1, Single.Sucrose.1,   SS.Sucralose.Low.2, SS.Sucrose.Low.2,   SS.Sucralose.High.2,    SS.Sucrose.High.2,  Single.Sucralose.2, Single.Sucrose.2) %>%
  cor(.)

SS.Int.cor.sig <- cor.mtest(SS.Int.cor, conf.level = 0.95)

corrplot(SS.Int.cor, p.mat = SS.Int.cor.sig$p, method = 'color', diag = FALSE, type = 'upper',
         sig.level = c(0.001, 0.01, 0.05), pch.cex = 0.9,
         insig = 'label_sig', pch.col = 'grey20', order = 'AOE', tl.col = 'black')

## Simple Sweet: Sucrose retest correlation
Correlation(SS, SS.Sucrose_90mM_1, SS.Sucrose_90mM_2, "Test re-test correlation for Simple Sweet - Sucrose: Low")
## `geom_smooth()` using formula 'y ~ x'

Correlation(SS, SS.Sucrose_1050mM_1, SS.Sucrose_1050mM_2, "Test re-test correlation for Simple Sweet - Sucrose: High")
## `geom_smooth()` using formula 'y ~ x'

## Simple Sweet: Sucralose retest correlation
Correlation(SS, SS.Sucralose_0.13mM_1, SS.Sucralose_0.13mM_2, "Test re-test correlation for Simple Sweet - Sucralose: Low")
## `geom_smooth()` using formula 'y ~ x'

Correlation(SS, SS.Sucralose_1.5mM_1, SS.Sucralose_1.5mM_2, "Test re-test correlation for Simple Sweet - Sucralose: High")
## `geom_smooth()` using formula 'y ~ x'

## Single Solution: Sucrose retest correlation
Correlation(SS, Single.Sucrose_1, Single.Sucrose_2, "Test re-test correlation for Single Solution - Sucrose")
## `geom_smooth()` using formula 'y ~ x'

## Single Solution: Sucralose retest correlation
Correlation(SS, Single.Sucralose_1, Single.Sucralose_2, "Test re-test correlation for Single Solution - Sucralose")
## `geom_smooth()` using formula 'y ~ x'

Sucrose and Sucralose sweetness intensity matching

The sucrose and sucralose concentrations were grabbed from a publication by Bobowski et. al (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5647502/), who previously conducted the preference tracking procedure using sucrose and sweetness intensity matching sucralose. Our data suggest there may be a difference in sweetness intensity between the high concentration of sucrose and sucralose (p = 0.06), althought technically not statistically significant.

## Simple Sweet Sucrose vs Sucralose ANOVA
  SweetMatch <- aov(Sweet ~ as.factor(Sweetener) + as.factor(Sweet.Level), data = SS.Int)
  summary(SweetMatch)
##                         Df Sum Sq Mean Sq F value Pr(>F)    
## as.factor(Sweetener)     1    416     416   3.572 0.0605 .  
## as.factor(Sweet.Level)   1  32692   32692 280.409 <2e-16 ***
## Residuals              165  19237     117                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Post-hoc
  tukey.SweetMatch<-TukeyHSD(SweetMatch)
  tukey.SweetMatch
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = Sweet ~ as.factor(Sweetener) + as.factor(Sweet.Level), data = SS.Int)
## 
## $`as.factor(Sweetener)`
##                      diff        lwr      upr     p adj
## Sucrose-Sucralose 3.14869 -0.1409176 6.438299 0.0605296
## 
## $`as.factor(Sweet.Level)`
##              diff       lwr      upr p adj
## Low-High -27.8994 -31.18901 -24.6098     0
## Sucrose vs sucralose at high sweetness level
SS.Int$SweetenerxLevel <- paste(SS.Int$Sweetener, SS.Int$Sweet.Level)

SucSucraHigh <- SS.Int %>%
  filter(SweetenerxLevel == c("Sucrose High", "Sucralose High"))

SucSucraHighMatch <- aov(Sweet ~ SweetenerxLevel, SucSucraHigh)
summary(SucSucraHighMatch)
##                 Df Sum Sq Mean Sq F value  Pr(>F)   
## SweetenerxLevel  1   2062  2062.3   9.919 0.00309 **
## Residuals       40   8317   207.9                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
SS.High <- SS.Int %>% 
  filter(Sweet.Level == "High") 

SS.High.aov <- aov(Sweet ~ Sweetener, SS.High)
summary(SS.High.aov)
##             Df Sum Sq Mean Sq F value Pr(>F)  
## Sweetener    1   1086  1086.4   5.449  0.022 *
## Residuals   82  16348   199.4                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Simple Sweet Sucrose and Sucralose Sweetness Intensity Graph
SS.Int$Sweet.Level <- factor(SS.Int$Sweet.Level, levels=c("Low", "High"))
SS.Int$Sweetener <- factor(SS.Int$Sweetener, levels = c("Sucrose", "Sucralose"))
  
SS.Int %>%
  group_by(Sweetener, Sweet.Level) %>%
  summarize(meanSweet = mean(Sweet), SD = sd(Sweet)) %>%
  ggplot(aes(x = Sweet.Level, y = meanSweet, fill = Sweetener)) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_errorbar(aes(ymin = meanSweet - SD/sqrt(21), ymax = meanSweet + SD/sqrt(21)), position = position_dodge(width=0.9), width = 0.3) +
  scale_fill_manual(values = c("#E57373", "#4527A0"))+
  ylim(0, 60)+
  theme_light()
## `summarise()` has grouped output by 'Sweetener'. You can override using the `.groups` argument.

Sweet hedonics retest reliability

Below are the test-retest correlations of the sweet hedonic measures. The re-test correlation of the most liked concentration is r = 0.76, which is comparable to the retest correlation of the most preferred concentrations. For both versions of the Simple Sweet test, the higher concentrations (1050 mM sucrose and 1.5mM sucralose) have decent re-test reliability (sucrose: r = 0.73 and sucralose: r = 0.57). However, the retest correlation for the lower concentrations (90 mM sucrose and 0.13 mM sucralose) for both versions of the Simple Sweet test are not statistically significant. For the Single Solution tests, the retest reliability for sucrose is decent (r = 0.65), while the retest reliability for sucralose is not significant.

## Corrplot
SS.cor <- SS %>%
  select(Pref_1, Pref_2, MostLiked_1, MostLiked_2, SS.Sucrose_90mM_1, SS.Sucrose_90mM_2, SS.Sucrose_1050mM_1, SS.Sucrose_1050mM_2, SS.Sucralose_0.13mM_1, SS.Sucralose_0.13mM_2, SS.Sucralose_1.5mM_1, SS.Sucralose_1.5mM_2, Single.Sucrose_1, Single.Sucrose_2, Single.Sucralose_1, Single.Sucralose_2) %>%
  cor(.)

SS.cor.sig <- cor.mtest(SS.cor, conf.level = 0.95)

corrplot(SS.cor, p.mat = SS.cor.sig$p, method = 'color', diag = FALSE, type = 'upper',
         sig.level = c(0.001, 0.01, 0.05), pch.cex = 0.9,
         insig = 'label_sig', pch.col = 'grey20', order = 'AOE', tl.col = 'black')

## Most-liked Concentration
Correlation(SS, log10(MostLiked_1), log10(MostLiked_2), "Test re-test correlation for the most-liked concentration") 
## `geom_smooth()` using formula 'y ~ x'

## Preferred Concentration
Correlation(SS, log10(Pref_1), log10(Pref_2), "Test re-test correlation for the preferred concentration")
## `geom_smooth()` using formula 'y ~ x'

## Simple Sweet - Sucrose
Correlation(SS, SS.Sucrose_90mM_1, SS.Sucrose_90mM_2, "Test re-test correlation for the Simple Sweet - Sucrose test at 90mM")
## `geom_smooth()` using formula 'y ~ x'

Correlation(SS, SS.Sucrose_1050mM_1, SS.Sucrose_1050mM_2, "Test re-test correlation for the Simple Sweet - Sucrose test at 1050mM")
## `geom_smooth()` using formula 'y ~ x'

## Simple Sweet - Sucralose 
Correlation(SS, SS.Sucralose_0.13mM_1, SS.Sucralose_0.13mM_2, "Test re-test correlation for the Simple Sweet - Sucralose test at 0.13mM")
## `geom_smooth()` using formula 'y ~ x'

Correlation(SS, SS.Sucralose_1.5mM_1, SS.Sucralose_1.5mM_2, "Test re-test correlation for the Simple Sweet - Sucralose test at 1.5mM")
## `geom_smooth()` using formula 'y ~ x'

## Single Solution - Sucrose
Correlation(SS, Single.Sucrose_1, Single.Sucrose_2, "Test re-test correlation for the Simple Sweet - Sucrose test at 1050mM")
## `geom_smooth()` using formula 'y ~ x'

## Single Solution - Sucralose
Correlation(SS, Single.Sucralose_1, Single.Sucralose_2, "Test re-test correlation for the Simple Sweet - Sucralose test at 1.5mM")
## `geom_smooth()` using formula 'y ~ x'

Differences between the Preference and Liking Test

## Anova
Pref.Like.df <- SS %>%
  select(ID, Pref, MostLiked) %>%
  pivot_longer(cols = c(Pref, MostLiked), names_to = "Measure", values_to = "Conc") %>%
  mutate(LogConc = log(Conc)) 

Pref.Like.aov <- aov(log10(Conc)~Measure, data = Pref.Like.df)

summary(Pref.Like.aov)
##             Df Sum Sq Mean Sq F value Pr(>F)
## Measure      1 0.1089 0.10890   1.664  0.205
## Residuals   40 2.6184 0.06546
## MostLiked estimates
MostLiked <- 10^2.772951

Pref.Like.df %>%
  filter(Measure == "MostLiked") %>%
  summarize(CI.Conc = 1.96*(sd(Conc)/sqrt(21)))
## # A tibble: 1 × 1
##   CI.Conc
##     <dbl>
## 1    121.
## Pref mean estimate
Pref <- 10^(2.772951-0.101838)

Pref.Like.df %>%
  filter(Measure == "Pref") %>%
  summarize(CI.Conc = 1.96*(sd(Conc)/sqrt(21)))
## # A tibble: 1 × 1
##   CI.Conc
##     <dbl>
## 1    113.
Measure <- c("MostLiked", "Pref")
MeanEstimate <- c(592.86, 468.93)
CI <- c(120.52, 112.93)

Est.df <- data.frame(Measure, MeanEstimate, CI)

## Plot
Est.df %>%
  ggplot(aes(x = Measure, y = MeanEstimate, fill = Measure)) +
  geom_bar(stat = "identity", position = "dodge") +
  geom_errorbar(aes(ymin = (MeanEstimate - CI), ymax = (MeanEstimate + CI), width = 0.3))+
  ylim(0, 1050) +
  theme_light() +
  scale_fill_jco()

Correlations between sweet hedonic measures

The correlation between the most liked and the preferred sucrose concentrations is high (r = 0.78), similiar to the data from our previous study. I also assessed the correlations between the two versions of the Simple Sweet test by correlating the slopes of the liking scores from each person. The two Simple Sweet versions are decently correlation (r = 0.51). I then correlated slopes of the Simple Sweet test with the preferred sucrose concentrations and found that the sucrose version (r = 0.64) is significantly correlated with the preferred sucralose concentration, while the sucralose version is not. Similiarly, Simple Sweet - Sucrose (r = 0.56) is significantly correlated with the most liked concentration, while Simple Sweet - Sucralose is not. The same trend is observed in the Single Solution tests. The liking score for the Single Solution Sucrose tests are significantly associated with both the preferred (r = 0.52) and the most liked (r = 0.64) concentrations, while the liking scores from the Single Solution Sucralose tests are not significantly associate with prefered and the most liked concentrations.

## Most-liked vs Preferred
Correlation(SS, log10(MostLiked), log10(Pref), "The relationship between the most liked and preferred sucrose concentration") +
  xlim(1.9, 3.1) +
  ylim(1.9, 3.1)
## `geom_smooth()` using formula 'y ~ x'

## Simple Sweet Sucralose vs Sucrose Slope
Correlation(SS, SS.Sucralose.Slope, SS.Sucrose.Slope, "The relationship between the slopes of the Simple Sweet - Sucrose and Sucralose tests")
## `geom_smooth()` using formula 'y ~ x'

## Single Sucralose vs Single Sucrose
Correlation(SS, Single.Sucralose, Single.Sucrose, "The relationship between the single solution Sucrose and Sucralose tests")
## `geom_smooth()` using formula 'y ~ x'

## Preference vs simplified procedures
  ## Simple Sweet - Sucrose
    Correlation(SS, log10(Pref), SS.Sucrose.Slope, "The relationship between the preferred sucrose concentration and Simple Sweet - Sucrose test")
## `geom_smooth()` using formula 'y ~ x'

  ## Simple Sweet - Sucralose
    Correlation(SS, log10(Pref), SS.Sucralose.Slope, "The relationship between the preferred sucrose concentration and Simple Sweet - Sucralose test")
## `geom_smooth()` using formula 'y ~ x'

  ## Single Solution - Sucrose
    Correlation(SS, log10(Pref), Single.Sucrose, "The relationship between the preferred sucrose concentration and Single Solution - Sucrose")
## `geom_smooth()` using formula 'y ~ x'

  ## Single Solution - Sucralose
    Correlation(SS, log10(Pref), Single.Sucralose, "The relationship between the preferred sucrose concentration and Single Solution - Sucralose")
## `geom_smooth()` using formula 'y ~ x'

  ## High concentration from Simple Sweet - Sucrose
    Correlation(SS, log10(Pref), SS.Sucrose_1050mM, "The relationship between the preferred sucrose concentration and the high concentraiton from the Simple Sweet - Sucrose test")
## `geom_smooth()` using formula 'y ~ x'

  ## High concentration from Simple Sweet - Sucralose
    Correlation(SS, log10(Pref), SS.Sucralose_1.5mM, "The relationship between the preferred sucrose concentration and the high concentraiton from the Simple Sweet - Sucralose test")    
## `geom_smooth()` using formula 'y ~ x'

## Most-liked vs simplified procedures
  ## Simple Sweet - Sucrose
    Correlation(SS, log10(MostLiked), SS.Sucrose.Slope, "The relationship between the most liked concentration and Simple Sweet - Sucrose test")
## `geom_smooth()` using formula 'y ~ x'

  ## Simple Sweet - Sucralose
    Correlation(SS, log10(MostLiked), SS.Sucralose.Slope, "The relationship between the most liked concentration and Simple Sweet - Sucralose test")
## `geom_smooth()` using formula 'y ~ x'

  ## Single Solution - Sucrose
    Correlation(SS, log10(MostLiked), Single.Sucrose, "The relationship between the most liked sucrose concentration and Single Solution - Sucrose")
## `geom_smooth()` using formula 'y ~ x'

  ## Single Solution - Sucralose
    Correlation(SS, log10(MostLiked), Single.Sucralose, "The relationship between the most liked sucralose concentration and Single Solution - Sucralose")
## `geom_smooth()` using formula 'y ~ x'

Correlations between sweet foods liking and sweet hedonic measures

Here comes the interesting part - correlating the Sweet Foods Liking (SFBL) score from a validated survey by Val Duffy with the sweet hedonic measures. The most liked concentration is significantly correlated with the SFL score (r = 0.43), while the preferred sucrose concentration is not. Simple Sweet - Sucrose and Sucralose are both significantly correlated with the SFL score (r = 0.50 and r = 0.60, respectively). The Single Solution tests are also significantly correlated with the SFL scores (sucrose: r = 0.66, sucralose: r = 0.56)

## Sweet Foods Liking Questionnaire vs Psychophysical sweet tooth measures
  ## Most liked concentration
    Correlation(SS, Sweet.Liking, log10(MostLiked), "The relationship between sweet foods liking and most liked sucrose concentration")
## `geom_smooth()` using formula 'y ~ x'

  ## Preferred concentration
    Correlation(SS, Sweet.Liking, log10(Pref), "The relationship between sweet foods liking and preferred sucrose concentration")
## `geom_smooth()` using formula 'y ~ x'

  ## Simple Sweet - Sucrose
    Correlation(SS, Sweet.Liking, SS.Sucrose.Slope, "The relationship between sweet foods liking and Simple Sweet - Sucrose")
## `geom_smooth()` using formula 'y ~ x'

  ## Simple Sweet - Sucralose
    Correlation(SS, Sweet.Liking, SS.Sucralose.Slope, "The relationship between sweet foods liking and Simple Sweet - Sucralose")
## `geom_smooth()` using formula 'y ~ x'

  ## Single Solution - Sucrose
    Correlation(SS, Single.Sucrose, Sweet.Liking,  "The relationship between sweet foods liking and Single Solution - Sucrose") +
      xlim(0, 100) +
      ylim(0, 100)
## `geom_smooth()` using formula 'y ~ x'

  ## Single Solution - Sucralose
    Correlation(SS, Sweet.Liking, Single.Sucralose, "The relationship between sweet foods liking and Single Solution - Sucralose")
## `geom_smooth()` using formula 'y ~ x'

  ## High Concentration Simple Sweet - Sucrose
    Correlation(SS, SS.Sucrose_1050mM, Sweet.Liking, "The relationship between sweet foods liking and the high concentraiton in the Simple Sweet - Sucrose test") +
      xlim(0, 100) +
      ylim(0, 100)
## `geom_smooth()` using formula 'y ~ x'

  ## High Concentration Simple Sweet - Sucralose
    Correlation(SS, Sweet.Liking, SS.Sucralose_1.5mM, "The relationship between sweet foods liking and the high concentraiton in the Simple Sweet - Sucralose test")
## `geom_smooth()` using formula 'y ~ x'

Differences across the strength of correlation between SFBL and sweet hedonic measures

The strength of correlation between the SFBL score and Single Solution - Sucrose test is significantly better than the correlation between SFBL score and preferred concentration. The strength of correlation between the SFL score and high concentration from the Simple Sweet - Sucrose test is also significantly better than the correlation between SFBL score and preferred concentration.

n <- 21

## Correlation coefficients between SFL scores and sweet hedonic measures
Pref <- 0.42
MostLiked <- 0.57
SSsucrose <- 0.5
SSsucralose <- 0.6
SingleSucrose <- 0.66
SingleSucralose <- 0.56
SSsucrose.High <- 0.66
SSsucralose.High <- 0.54

## SFL/Pref vs SFL/most liked
  cocor.dep.groups.overlap(Pref, MostLiked, 0.78, n) ## Not significant
## 
##   Results of a comparison of two overlapping correlations based on dependent groups
## 
## Comparison between r.jk = 0.42 and r.jh = 0.57
## Difference: r.jk - r.jh = -0.15
## Related correlation: r.kh = 0.78
## Group size: n = 21
## Null hypothesis: r.jk is equal to r.jh
## Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
## Alpha: 0.05
## 
## pearson1898: Pearson and Filon's z (1898)
##   z = -1.1969, p-value = 0.2314
##   Null hypothesis retained
## 
## hotelling1940: Hotelling's t (1940)
##   t = -1.1690, df = 18, p-value = 0.2577
##   Null hypothesis retained
## 
## williams1959: Williams' t (1959)
##   t = -1.1664, df = 18, p-value = 0.2587
##   Null hypothesis retained
## 
## olkin1967: Olkin's z (1967)
##   z = -1.1969, p-value = 0.2314
##   Null hypothesis retained
## 
## dunn1969: Dunn and Clark's z (1969)
##   z = -1.1395, p-value = 0.2545
##   Null hypothesis retained
## 
## hendrickson1970: Hendrickson, Stanley, and Hills' (1970) modification of Williams' t (1959)
##   t = -1.1690, df = 18, p-value = 0.2577
##   Null hypothesis retained
## 
## steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
##   z = -1.1309, p-value = 0.2581
##   Null hypothesis retained
## 
## meng1992: Meng, Rosenthal, and Rubin's z (1992)
##   z = -1.1273, p-value = 0.2596
##   Null hypothesis retained
##   95% confidence interval for r.jk - r.jh: -0.5473 0.1476
##   Null hypothesis retained (Interval includes 0)
## 
## hittner2003: Hittner, May, and Silver's (2003) modification of Dunn and Clark's z (1969) using a backtransformed average Fisher's (1921) Z procedure
##   z = -1.1286, p-value = 0.2591
##   Null hypothesis retained
## 
## zou2007: Zou's (2007) confidence interval
##   95% confidence interval for r.jk - r.jh: -0.4605 0.1178
##   Null hypothesis retained (Interval includes 0)
## SFL/SS.Sucrose vs SFL/SS.Sucralose
  cocor.dep.groups.overlap(SSsucrose, SSsucralose, 0.67, n) ## Not significant
## 
##   Results of a comparison of two overlapping correlations based on dependent groups
## 
## Comparison between r.jk = 0.5 and r.jh = 0.6
## Difference: r.jk - r.jh = -0.1
## Related correlation: r.kh = 0.67
## Group size: n = 21
## Null hypothesis: r.jk is equal to r.jh
## Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
## Alpha: 0.05
## 
## pearson1898: Pearson and Filon's z (1898)
##   z = -0.6974, p-value = 0.4856
##   Null hypothesis retained
## 
## hotelling1940: Hotelling's t (1940)
##   t = -0.6619, df = 18, p-value = 0.5164
##   Null hypothesis retained
## 
## williams1959: Williams' t (1959)
##   t = -0.6572, df = 18, p-value = 0.5194
##   Null hypothesis retained
## 
## olkin1967: Olkin's z (1967)
##   z = -0.6974, p-value = 0.4856
##   Null hypothesis retained
## 
## dunn1969: Dunn and Clark's z (1969)
##   z = -0.6526, p-value = 0.5140
##   Null hypothesis retained
## 
## hendrickson1970: Hendrickson, Stanley, and Hills' (1970) modification of Williams' t (1959)
##   t = -0.6619, df = 18, p-value = 0.5164
##   Null hypothesis retained
## 
## steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
##   z = -0.6511, p-value = 0.5150
##   Null hypothesis retained
## 
## meng1992: Meng, Rosenthal, and Rubin's z (1992)
##   z = -0.6502, p-value = 0.5155
##   Null hypothesis retained
##   95% confidence interval for r.jk - r.jh: -0.5774 0.2897
##   Null hypothesis retained (Interval includes 0)
## 
## hittner2003: Hittner, May, and Silver's (2003) modification of Dunn and Clark's z (1969) using a backtransformed average Fisher's (1921) Z procedure
##   z = -0.6503, p-value = 0.5155
##   Null hypothesis retained
## 
## zou2007: Zou's (2007) confidence interval
##   95% confidence interval for r.jk - r.jh: -0.4415 0.2133
##   Null hypothesis retained (Interval includes 0)
## SFL/Single.Sucrose vs SFL/Single.Sucralose
  cocor.dep.groups.overlap(SingleSucrose, SingleSucrose, 0.51, n) ## Not significant
## 
##   Results of a comparison of two overlapping correlations based on dependent groups
## 
## Comparison between r.jk = 0.66 and r.jh = 0.66
## Difference: r.jk - r.jh = 0
## Related correlation: r.kh = 0.51
## Group size: n = 21
## Null hypothesis: r.jk is equal to r.jh
## Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
## Alpha: 0.05
## 
## pearson1898: Pearson and Filon's z (1898)
##   z = 0.0000, p-value = 1.0000
##   Null hypothesis retained
## 
## hotelling1940: Hotelling's t (1940)
##   t = 0.0000, df = 18, p-value = 1.0000
##   Null hypothesis retained
## 
## williams1959: Williams' t (1959)
##   t = 0.0000, df = 18, p-value = 1.0000
##   Null hypothesis retained
## 
## olkin1967: Olkin's z (1967)
##   z = 0.0000, p-value = 1.0000
##   Null hypothesis retained
## 
## dunn1969: Dunn and Clark's z (1969)
##   z = 0.0000, p-value = 1.0000
##   Null hypothesis retained
## 
## hendrickson1970: Hendrickson, Stanley, and Hills' (1970) modification of Williams' t (1959)
##   t = 0.0000, df = 18, p-value = 1.0000
##   Null hypothesis retained
## 
## steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
##   z = 0.0000, p-value = 1.0000
##   Null hypothesis retained
## 
## meng1992: Meng, Rosenthal, and Rubin's z (1992)
##   z = 0.0000, p-value = 1.0000
##   Null hypothesis retained
##   95% confidence interval for r.jk - r.jh: -0.5482 0.5482
##   Null hypothesis retained (Interval includes 0)
## 
## hittner2003: Hittner, May, and Silver's (2003) modification of Dunn and Clark's z (1969) using a backtransformed average Fisher's (1921) Z procedure
##   z = 0.0000, p-value = 1.0000
##   Null hypothesis retained
## 
## zou2007: Zou's (2007) confidence interval
##   95% confidence interval for r.jk - r.jh: -0.3373 0.3373
##   Null hypothesis retained (Interval includes 0)
## SFL/Pref vs SFL/other hedonic measures
  ## SFL/Pref vs SFL/SS.Sucrose
  cocor.dep.groups.overlap(Pref, SSsucrose, 0.64, n) ## Not significant
## 
##   Results of a comparison of two overlapping correlations based on dependent groups
## 
## Comparison between r.jk = 0.42 and r.jh = 0.5
## Difference: r.jk - r.jh = -0.08
## Related correlation: r.kh = 0.64
## Group size: n = 21
## Null hypothesis: r.jk is equal to r.jh
## Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
## Alpha: 0.05
## 
## pearson1898: Pearson and Filon's z (1898)
##   z = -0.4984, p-value = 0.6182
##   Null hypothesis retained
## 
## hotelling1940: Hotelling's t (1940)
##   t = -0.4672, df = 18, p-value = 0.6460
##   Null hypothesis retained
## 
## williams1959: Williams' t (1959)
##   t = -0.4648, df = 18, p-value = 0.6476
##   Null hypothesis retained
## 
## olkin1967: Olkin's z (1967)
##   z = -0.4984, p-value = 0.6182
##   Null hypothesis retained
## 
## dunn1969: Dunn and Clark's z (1969)
##   z = -0.4630, p-value = 0.6434
##   Null hypothesis retained
## 
## hendrickson1970: Hendrickson, Stanley, and Hills' (1970) modification of Williams' t (1959)
##   t = -0.4672, df = 18, p-value = 0.6460
##   Null hypothesis retained
## 
## steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
##   z = -0.4624, p-value = 0.6438
##   Null hypothesis retained
## 
## meng1992: Meng, Rosenthal, and Rubin's z (1992)
##   z = -0.4621, p-value = 0.6440
##   Null hypothesis retained
##   95% confidence interval for r.jk - r.jh: -0.5326 0.3294
##   Null hypothesis retained (Interval includes 0)
## 
## hittner2003: Hittner, May, and Silver's (2003) modification of Dunn and Clark's z (1969) using a backtransformed average Fisher's (1921) Z procedure
##   z = -0.4622, p-value = 0.6439
##   Null hypothesis retained
## 
## zou2007: Zou's (2007) confidence interval
##   95% confidence interval for r.jk - r.jh: -0.4385 0.2668
##   Null hypothesis retained (Interval includes 0)
  ## SFL/Pref vs SFL/SS.Sucralose
  cocor.dep.groups.overlap(Pref, SSsucralose, 0.33, n) ## Not significant
## 
##   Results of a comparison of two overlapping correlations based on dependent groups
## 
## Comparison between r.jk = 0.42 and r.jh = 0.6
## Difference: r.jk - r.jh = -0.18
## Related correlation: r.kh = 0.33
## Group size: n = 21
## Null hypothesis: r.jk is equal to r.jh
## Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
## Alpha: 0.05
## 
## pearson1898: Pearson and Filon's z (1898)
##   z = -0.8837, p-value = 0.3769
##   Null hypothesis retained
## 
## hotelling1940: Hotelling's t (1940)
##   t = -0.8628, df = 18, p-value = 0.3996
##   Null hypothesis retained
## 
## williams1959: Williams' t (1959)
##   t = -0.8350, df = 18, p-value = 0.4147
##   Null hypothesis retained
## 
## olkin1967: Olkin's z (1967)
##   z = -0.8837, p-value = 0.3769
##   Null hypothesis retained
## 
## dunn1969: Dunn and Clark's z (1969)
##   z = -0.8261, p-value = 0.4087
##   Null hypothesis retained
## 
## hendrickson1970: Hendrickson, Stanley, and Hills' (1970) modification of Williams' t (1959)
##   t = -0.8627, df = 18, p-value = 0.3996
##   Null hypothesis retained
## 
## steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
##   z = -0.8239, p-value = 0.4100
##   Null hypothesis retained
## 
## meng1992: Meng, Rosenthal, and Rubin's z (1992)
##   z = -0.8217, p-value = 0.4113
##   Null hypothesis retained
##   95% confidence interval for r.jk - r.jh: -0.8310 0.3400
##   Null hypothesis retained (Interval includes 0)
## 
## hittner2003: Hittner, May, and Silver's (2003) modification of Dunn and Clark's z (1969) using a backtransformed average Fisher's (1921) Z procedure
##   z = -0.8223, p-value = 0.4109
##   Null hypothesis retained
## 
## zou2007: Zou's (2007) confidence interval
##   95% confidence interval for r.jk - r.jh: -0.6245 0.2484
##   Null hypothesis retained (Interval includes 0)
  ## SFL/Pref vs SFL/Single.Sucrose
  cocor.dep.groups.overlap(Pref, SingleSucrose, 0.52, n) ## Not significant
## 
##   Results of a comparison of two overlapping correlations based on dependent groups
## 
## Comparison between r.jk = 0.42 and r.jh = 0.66
## Difference: r.jk - r.jh = -0.24
## Related correlation: r.kh = 0.52
## Group size: n = 21
## Null hypothesis: r.jk is equal to r.jh
## Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
## Alpha: 0.05
## 
## pearson1898: Pearson and Filon's z (1898)
##   z = -1.3901, p-value = 0.1645
##   Null hypothesis retained
## 
## hotelling1940: Hotelling's t (1940)
##   t = -1.3933, df = 18, p-value = 0.1805
##   Null hypothesis retained
## 
## williams1959: Williams' t (1959)
##   t = -1.3691, df = 18, p-value = 0.1878
##   Null hypothesis retained
## 
## olkin1967: Olkin's z (1967)
##   z = -1.3901, p-value = 0.1645
##   Null hypothesis retained
## 
## dunn1969: Dunn and Clark's z (1969)
##   z = -1.3355, p-value = 0.1817
##   Null hypothesis retained
## 
## hendrickson1970: Hendrickson, Stanley, and Hills' (1970) modification of Williams' t (1959)
##   t = -1.3933, df = 18, p-value = 0.1805
##   Null hypothesis retained
## 
## steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
##   z = -1.3249, p-value = 0.1852
##   Null hypothesis retained
## 
## meng1992: Meng, Rosenthal, and Rubin's z (1992)
##   z = -1.3166, p-value = 0.1880
##   Null hypothesis retained
##   95% confidence interval for r.jk - r.jh: -0.8589 0.1687
##   Null hypothesis retained (Interval includes 0)
## 
## hittner2003: Hittner, May, and Silver's (2003) modification of Dunn and Clark's z (1969) using a backtransformed average Fisher's (1921) Z procedure
##   z = -1.3178, p-value = 0.1876
##   Null hypothesis retained
## 
## zou2007: Zou's (2007) confidence interval
##   95% confidence interval for r.jk - r.jh: -0.6385 0.1133
##   Null hypothesis retained (Interval includes 0)
  ## SFL/Pref vs SFL/Single.Sucralose
  cocor.dep.groups.overlap(Pref, SingleSucralose, 0.18, n) ## Not significant
## 
##   Results of a comparison of two overlapping correlations based on dependent groups
## 
## Comparison between r.jk = 0.42 and r.jh = 0.56
## Difference: r.jk - r.jh = -0.14
## Related correlation: r.kh = 0.18
## Group size: n = 21
## Null hypothesis: r.jk is equal to r.jh
## Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
## Alpha: 0.05
## 
## pearson1898: Pearson and Filon's z (1898)
##   z = -0.6179, p-value = 0.5367
##   Null hypothesis retained
## 
## hotelling1940: Hotelling's t (1940)
##   t = -0.6084, df = 18, p-value = 0.5505
##   Null hypothesis retained
## 
## williams1959: Williams' t (1959)
##   t = -0.5786, df = 18, p-value = 0.5701
##   Null hypothesis retained
## 
## olkin1967: Olkin's z (1967)
##   z = -0.6179, p-value = 0.5367
##   Null hypothesis retained
## 
## dunn1969: Dunn and Clark's z (1969)
##   z = -0.5738, p-value = 0.5661
##   Null hypothesis retained
## 
## hendrickson1970: Hendrickson, Stanley, and Hills' (1970) modification of Williams' t (1959)
##   t = -0.6084, df = 18, p-value = 0.5505
##   Null hypothesis retained
## 
## steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
##   z = -0.5731, p-value = 0.5666
##   Null hypothesis retained
## 
## meng1992: Meng, Rosenthal, and Rubin's z (1992)
##   z = -0.5724, p-value = 0.5671
##   Null hypothesis retained
##   95% confidence interval for r.jk - r.jh: -0.8191 0.4488
##   Null hypothesis retained (Interval includes 0)
## 
## hittner2003: Hittner, May, and Silver's (2003) modification of Dunn and Clark's z (1969) using a backtransformed average Fisher's (1921) Z procedure
##   z = -0.5726, p-value = 0.5669
##   Null hypothesis retained
## 
## zou2007: Zou's (2007) confidence interval
##   95% confidence interval for r.jk - r.jh: -0.6222 0.3380
##   Null hypothesis retained (Interval includes 0)
  ## SFL/Pref vs SFL/High concentration from SS.Sucrose
  cocor.dep.groups.overlap(Pref, SSsucrose.High, 0.45, n) ## Not significant
## 
##   Results of a comparison of two overlapping correlations based on dependent groups
## 
## Comparison between r.jk = 0.42 and r.jh = 0.66
## Difference: r.jk - r.jh = -0.24
## Related correlation: r.kh = 0.45
## Group size: n = 21
## Null hypothesis: r.jk is equal to r.jh
## Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
## Alpha: 0.05
## 
## pearson1898: Pearson and Filon's z (1898)
##   z = -1.3154, p-value = 0.1884
##   Null hypothesis retained
## 
## hotelling1940: Hotelling's t (1940)
##   t = -1.3146, df = 18, p-value = 0.2052
##   Null hypothesis retained
## 
## williams1959: Williams' t (1959)
##   t = -1.2828, df = 18, p-value = 0.2158
##   Null hypothesis retained
## 
## olkin1967: Olkin's z (1967)
##   z = -1.3154, p-value = 0.1884
##   Null hypothesis retained
## 
## dunn1969: Dunn and Clark's z (1969)
##   z = -1.2558, p-value = 0.2092
##   Null hypothesis retained
## 
## hendrickson1970: Hendrickson, Stanley, and Hills' (1970) modification of Williams' t (1959)
##   t = -1.3145, df = 18, p-value = 0.2052
##   Null hypothesis retained
## 
## steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
##   z = -1.2478, p-value = 0.2121
##   Null hypothesis retained
## 
## meng1992: Meng, Rosenthal, and Rubin's z (1992)
##   z = -1.2407, p-value = 0.2147
##   Null hypothesis retained
##   95% confidence interval for r.jk - r.jh: -0.8903 0.2001
##   Null hypothesis retained (Interval includes 0)
## 
## hittner2003: Hittner, May, and Silver's (2003) modification of Dunn and Clark's z (1969) using a backtransformed average Fisher's (1921) Z procedure
##   z = -1.2417, p-value = 0.2143
##   Null hypothesis retained
## 
## zou2007: Zou's (2007) confidence interval
##   95% confidence interval for r.jk - r.jh: -0.6545 0.1355
##   Null hypothesis retained (Interval includes 0)
  ## SFL/Pref vs SFL/High concentration from SS.Sucralose
  cocor.dep.groups.overlap(Pref, SSsucralose.High, 0.071, n) ## Not significant
## 
##   Results of a comparison of two overlapping correlations based on dependent groups
## 
## Comparison between r.jk = 0.42 and r.jh = 0.54
## Difference: r.jk - r.jh = -0.12
## Related correlation: r.kh = 0.071
## Group size: n = 21
## Null hypothesis: r.jk is equal to r.jh
## Alternative hypothesis: r.jk is not equal to r.jh (two-sided)
## Alpha: 0.05
## 
## pearson1898: Pearson and Filon's z (1898)
##   z = -0.4970, p-value = 0.6192
##   Null hypothesis retained
## 
## hotelling1940: Hotelling's t (1940)
##   t = -0.4982, df = 18, p-value = 0.6244
##   Null hypothesis retained
## 
## williams1959: Williams' t (1959)
##   t = -0.4649, df = 18, p-value = 0.6476
##   Null hypothesis retained
## 
## olkin1967: Olkin's z (1967)
##   z = -0.4970, p-value = 0.6192
##   Null hypothesis retained
## 
## dunn1969: Dunn and Clark's z (1969)
##   z = -0.4608, p-value = 0.6449
##   Null hypothesis retained
## 
## hendrickson1970: Hendrickson, Stanley, and Hills' (1970) modification of Williams' t (1959)
##   t = -0.4982, df = 18, p-value = 0.6244
##   Null hypothesis retained
## 
## steiger1980: Steiger's (1980) modification of Dunn and Clark's z (1969) using average correlations
##   z = -0.4604, p-value = 0.6452
##   Null hypothesis retained
## 
## meng1992: Meng, Rosenthal, and Rubin's z (1992)
##   z = -0.4601, p-value = 0.6454
##   Null hypothesis retained
##   95% confidence interval for r.jk - r.jh: -0.8229 0.5100
##   Null hypothesis retained (Interval includes 0)
## 
## hittner2003: Hittner, May, and Silver's (2003) modification of Dunn and Clark's z (1969) using a backtransformed average Fisher's (1921) Z procedure
##   z = -0.4602, p-value = 0.6453
##   Null hypothesis retained
## 
## zou2007: Zou's (2007) confidence interval
##   95% confidence interval for r.jk - r.jh: -0.6281 0.3886
##   Null hypothesis retained (Interval includes 0)

Correlations between demographics sweet tooth measures

I looked into whether there are significant relationships between demographics data such as age and BMI with any of the sweet hedonic measures and SFL score. I did not find any meaningful relationships, so I decided to not include any of these variables as a covariate for the prediction models.

## Age
SS$Age <- as.numeric(SS$Age)

  ## Preference
    Correlation(SS, Age, log10(Pref), "The relationship between age and the preferred sucrose concentraiton")
## `geom_smooth()` using formula 'y ~ x'

  ## Most Liked
    Correlation(SS, Age, log10(MostLiked), "The relationship between age and the most liked sucrose concentraiton")
## `geom_smooth()` using formula 'y ~ x'

  ## Simple Sweet
    ## Sucrose
      Correlation(SS, Age, SS.Sucrose.Slope, "The relationship between age and Simple Sweet - Sucrose test")
## `geom_smooth()` using formula 'y ~ x'

    ## Sucralose
      Correlation(SS, Age, SS.Sucralose.Slope, "The relationship between age and Simple Sweet - Sucralose test")
## `geom_smooth()` using formula 'y ~ x'

  ## Single 
    ## Sucrose
      Correlation(SS, Age, Single.Sucrose, "The relationship between age and Single Solution - Sucrose test")
## `geom_smooth()` using formula 'y ~ x'

    ## Sucralose
      Correlation(SS, Age, Single.Sucralose, "The relationship between age and Single Solution - Sucralose test")
## `geom_smooth()` using formula 'y ~ x'

  ## Sweet Liking Survey
      Correlation(SS, Age, Sweet.Liking, "The relationship between age and sweet food liking")
## `geom_smooth()` using formula 'y ~ x'

## BMI
  ## Preference
    Correlation(SS, BMI, log10(Pref), "The relationship between BMI and the preferred sucrose concentraiton")
## `geom_smooth()` using formula 'y ~ x'

  ## Most Liked
    Correlation(SS, BMI, log10(MostLiked), "The relationship between BMI and the most liked sucrose concentraiton")
## `geom_smooth()` using formula 'y ~ x'

  ## Simple Sweet
    ## Sucrose
      Correlation(SS, BMI, SS.Sucrose.Slope, "The relationship between BMI and Simple Sweet - Sucrose test")
## `geom_smooth()` using formula 'y ~ x'

    ## Sucralose
      Correlation(SS, BMI, SS.Sucralose.Slope, "The relationship between BMI and Simple Sweet - Sucralose test")
## `geom_smooth()` using formula 'y ~ x'

  ## Single 
    ## Sucrose
      Correlation(SS, BMI, Single.Sucrose, "The relationship between BMI and Single Solution - Sucrose test")
## `geom_smooth()` using formula 'y ~ x'

    ## Sucralose
      Correlation(SS, BMI, Single.Sucralose, "The relationship between BMI and Single Solution - Sucralose test")
## `geom_smooth()` using formula 'y ~ x'

  ## Sweet Liking Survey
      Correlation(SS, BMI, Sweet.Liking, "The relationship between BMI and sweet food liking")
## `geom_smooth()` using formula 'y ~ x'

Prediciting the preferred concentration using other sweet hedonic measures

Similar to previous findings, the most liked concentrations significantly predicts the preferred concentrations (r2 = 0.64). The using multiple linear regression on the two liking score from the Simple Sweet - Sucrose can also predict the preferred concentrations (r2 = 0.25), although it did not capture as much variance as I’ve hoped for. Using the slopes of Simple Sweet - Sucrose test scores yield a slightly better model (r2 = 0.26). Simple Sweet - Sucralose did not significantly predict the preferred concentrations. The Single Solution tests also did not predict the preferred concentrations.

## Preference as the DV
Pref.M1 <- lm(log10(Pref) ~ log10(MostLiked), data = SS)
summary(Pref.M1)
## 
## Call:
## lm(formula = log10(Pref) ~ log10(MostLiked), data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.32030 -0.10045  0.03117  0.10576  0.24220 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        0.7163     0.3636    1.97   0.0636 .  
## log10(MostLiked)   0.7049     0.1306    5.40 3.28e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1566 on 19 degrees of freedom
## Multiple R-squared:  0.6054, Adjusted R-squared:  0.5847 
## F-statistic: 29.15 on 1 and 19 DF,  p-value: 3.283e-05
Pref.M2 <- lm(log10(Pref) ~ SS.Sucrose_90mM + SS.Sucrose_1050mM, data = SS)
summary(Pref.M2)
## 
## Call:
## lm(formula = log10(Pref) ~ SS.Sucrose_90mM + SS.Sucrose_1050mM, 
##     data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.36641 -0.12286  0.04699  0.10740  0.27229 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        2.589051   0.168981  15.322 9.03e-12 ***
## SS.Sucrose_90mM   -0.007816   0.003044  -2.568   0.0194 *  
## SS.Sucrose_1050mM  0.006141   0.002153   2.852   0.0106 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1961 on 18 degrees of freedom
## Multiple R-squared:  0.4134, Adjusted R-squared:  0.3482 
## F-statistic: 6.342 on 2 and 18 DF,  p-value: 0.008228
Pref.M3 <- lm(log10(Pref) ~ SS.Sucrose.Slope, data = SS)
summary(Pref.M3)
## 
## Call:
## lm(formula = log10(Pref) ~ SS.Sucrose.Slope, data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.35890 -0.10789  0.05004  0.09994  0.28433 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.512322   0.060854  41.284  < 2e-16 ***
## SS.Sucrose.Slope 0.026597   0.007387   3.601  0.00191 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1922 on 19 degrees of freedom
## Multiple R-squared:  0.4056, Adjusted R-squared:  0.3743 
## F-statistic: 12.96 on 1 and 19 DF,  p-value: 0.001906
Pref.M4 <- lm(log10(Pref) ~ SS.Sucralose_0.13mM + SS.Sucralose_1.5mM, data = SS)
summary(Pref.M4)
## 
## Call:
## lm(formula = log10(Pref) ~ SS.Sucralose_0.13mM + SS.Sucralose_1.5mM, 
##     data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.31564 -0.20649  0.01996  0.16519  0.36172 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          2.864029   0.180517  15.866 5.02e-12 ***
## SS.Sucralose_0.13mM -0.007210   0.003501  -2.059   0.0542 .  
## SS.Sucralose_1.5mM   0.001680   0.002506   0.670   0.5111    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2298 on 18 degrees of freedom
## Multiple R-squared:  0.1947, Adjusted R-squared:  0.1052 
## F-statistic: 2.176 on 2 and 18 DF,  p-value: 0.1424
Pref.M5 <- lm(log10(Pref) ~ SS.Sucralose.Slope, data = SS)
summary(Pref.M5)
## 
## Call:
## lm(formula = log10(Pref) ~ SS.Sucralose.Slope, data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.35183 -0.20091  0.04446  0.17215  0.40101 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        2.625102   0.059742   43.94   <2e-16 ***
## SS.Sucralose.Slope 0.013549   0.008971    1.51    0.147    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2355 on 19 degrees of freedom
## Multiple R-squared:  0.1072, Adjusted R-squared:  0.06021 
## F-statistic: 2.281 on 1 and 19 DF,  p-value: 0.1474
Pref.M6 <- lm(log10(Pref) ~ Single.Sucrose, data = SS)
summary(Pref.M6)
## 
## Call:
## lm(formula = log10(Pref) ~ Single.Sucrose, data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.40734 -0.13608  0.00365  0.15964  0.35250 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    2.278113   0.155306  14.669 8.15e-12 ***
## Single.Sucrose 0.006398   0.002412   2.652   0.0157 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2129 on 19 degrees of freedom
## Multiple R-squared:  0.2702, Adjusted R-squared:  0.2317 
## F-statistic: 7.033 on 1 and 19 DF,  p-value: 0.01573
Pref.M7 <- lm(log10(Pref) ~ Single.Sucralose, data = SS)
summary(Pref.M7)
## 
## Call:
## lm(formula = log10(Pref) ~ Single.Sucralose, data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.49164 -0.15840  0.05537  0.19430  0.42724 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.543785   0.165527  15.368 3.59e-12 ***
## Single.Sucralose 0.002447   0.003010   0.813    0.426    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.245 on 19 degrees of freedom
## Multiple R-squared:  0.0336, Adjusted R-squared:  -0.01726 
## F-statistic: 0.6607 on 1 and 19 DF,  p-value: 0.4264

Predicting Sweet Food Liking using sweet hedonic measures

Before talking about the results from this section, I want to point out that Julie Mennella found significant correlations between the preferred sucrose concentrations and the sugar content of the participants’ favorite cereal (r = 0.13) and beverage (r = 0.11), hence showing criterion validity for the Monell Forced-Choice Paired Comparison Preference Tracking procedure (https://pubmed.ncbi.nlm.nih.gov/21227904/). My results are showing that the preferred sucrose concentration is not associated with SFL score with n = 21. However, the most liked sucrose concentration can predict the SFL score (r2 = 0.14). The Simple Sweet - Sucrose and Sucralose tests both predicted the SFL score (r2 = 0.38 and r = 0.31, respectively). The Single Solution Sucrose and Sucralose tests also predicted the SFL score (r2 = 0.41 and r2 = 0.28, respectively).

## Sweet Food Liking as the DV
SFL.M1 <- lm(Sweet.Liking ~ log10(Pref), data = SS)
summary(SFL.M1)
## 
## Call:
## lm(formula = Sweet.Liking ~ log10(Pref), data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -20.6066 -11.8293   0.3452   9.9239  25.8305 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)    4.253     33.241   0.128     0.90  
## log10(Pref)   24.795     12.396   2.000     0.06 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.47 on 19 degrees of freedom
## Multiple R-squared:  0.1739, Adjusted R-squared:  0.1305 
## F-statistic: 4.001 on 1 and 19 DF,  p-value: 0.05997
SFL.M2 <- lm(Sweet.Liking ~ log10(MostLiked), data = SS)
summary(SFL.M2)
## 
## Call:
## lm(formula = Sweet.Liking ~ log10(MostLiked), data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -18.0164 -10.7664  -0.3759   7.2203  22.3870 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)   
## (Intercept)        -14.61      28.28  -0.516  0.61154   
## log10(MostLiked)    30.69      10.16   3.022  0.00702 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12.18 on 19 degrees of freedom
## Multiple R-squared:  0.3246, Adjusted R-squared:  0.289 
## F-statistic:  9.13 on 1 and 19 DF,  p-value: 0.007017
SFL.M3 <- lm(Sweet.Liking ~ SS.Sucrose_90mM + SS.Sucrose_1050mM, data = SS)
summary(SFL.M3)
## 
## Call:
## lm(formula = Sweet.Liking ~ SS.Sucrose_90mM + SS.Sucrose_1050mM, 
##     data = SS)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -18.470  -5.892  -2.071   8.331  21.604 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        40.5170     9.8097   4.130 0.000628 ***
## SS.Sucrose_90mM     0.0319     0.1767   0.181 0.858742    
## SS.Sucrose_1050mM   0.4602     0.1250   3.682 0.001706 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11.39 on 18 degrees of freedom
## Multiple R-squared:  0.4406, Adjusted R-squared:  0.3785 
## F-statistic:  7.09 on 2 and 18 DF,  p-value: 0.005361
SFL.M4 <- lm(Sweet.Liking ~ SS.Sucrose.Slope, data = SS)
summary(SFL.M4)
## 
## Call:
## lm(formula = Sweet.Liking ~ SS.Sucrose.Slope, data = SS)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -16.031  -8.603  -4.863   7.829  25.108 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        63.057      4.061  15.526    3e-12 ***
## SS.Sucrose.Slope    1.244      0.493   2.523   0.0207 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12.82 on 19 degrees of freedom
## Multiple R-squared:  0.2509, Adjusted R-squared:  0.2115 
## F-statistic: 6.365 on 1 and 19 DF,  p-value: 0.02072
SFL.M5 <- lm(Sweet.Liking ~ SS.Sucralose_0.13mM + SS.Sucralose_1.5mM, data = SS)
summary(SFL.M5)
## 
## Call:
## lm(formula = Sweet.Liking ~ SS.Sucralose_0.13mM + SS.Sucralose_1.5mM, 
##     data = SS)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -17.710 -12.141   0.789   9.092  21.134 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          60.0564     9.4568   6.351 5.54e-06 ***
## SS.Sucralose_0.13mM  -0.2837     0.1834  -1.547  0.13938    
## SS.Sucralose_1.5mM    0.4087     0.1313   3.113  0.00601 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12.04 on 18 degrees of freedom
## Multiple R-squared:  0.3747, Adjusted R-squared:  0.3052 
## F-statistic: 5.392 on 2 and 18 DF,  p-value: 0.01462
SFL.M6 <- lm(Sweet.Liking ~ SS.Sucralose.Slope, data = SS)
summary(SFL.M6)
## 
## Call:
## lm(formula = Sweet.Liking ~ SS.Sucralose.Slope, data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -19.1103  -8.6636  -0.0989   9.4803  19.4480 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         65.4558     3.0023  21.802  6.6e-15 ***
## SS.Sucralose.Slope   1.4803     0.4508   3.284  0.00391 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11.84 on 19 degrees of freedom
## Multiple R-squared:  0.362,  Adjusted R-squared:  0.3284 
## F-statistic: 10.78 on 1 and 19 DF,  p-value: 0.003908
SFL.M7 <- lm(Sweet.Liking ~ Single.Sucrose, data = SS)
summary(SFL.M7)
## 
## Call:
## lm(formula = Sweet.Liking ~ Single.Sucrose, data = SS)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -15.526  -8.199  -1.836  12.005  19.858 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     40.8040     8.1170   5.027 7.48e-05 ***
## Single.Sucrose   0.4831     0.1261   3.832  0.00112 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11.13 on 19 degrees of freedom
## Multiple R-squared:  0.4359, Adjusted R-squared:  0.4062 
## F-statistic: 14.68 on 1 and 19 DF,  p-value: 0.001125
SFL.M8 <- lm(Sweet.Liking ~ Single.Sucralose, data = SS)
summary(SFL.M8)
## 
## Call:
## lm(formula = Sweet.Liking ~ Single.Sucralose, data = SS)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -20.996  -8.127  -3.207   7.655  25.866 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       47.2169     8.2702   5.709 1.67e-05 ***
## Single.Sucralose   0.4471     0.1504   2.973  0.00782 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12.24 on 19 degrees of freedom
## Multiple R-squared:  0.3174, Adjusted R-squared:  0.2815 
## F-statistic: 8.836 on 1 and 19 DF,  p-value: 0.007822
SFL.M9 <- lm(Sweet.Liking ~ SS.Sucrose_1050mM, data = SS)
summary(SFL.M9)
## 
## Call:
## lm(formula = Sweet.Liking ~ SS.Sucrose_1050mM, data = SS)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -17.748  -6.252  -2.306   8.098  22.291 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        41.5183     7.8830   5.267  4.4e-05 ***
## SS.Sucrose_1050mM   0.4639     0.1201   3.861  0.00105 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11.09 on 19 degrees of freedom
## Multiple R-squared:  0.4396, Adjusted R-squared:  0.4101 
## F-statistic: 14.91 on 1 and 19 DF,  p-value: 0.001053
SFL.M10 <- lm(Sweet.Liking ~ SS.Sucralose_1.5mM, data = SS)
summary(SFL.M10)
## 
## Call:
## lm(formula = Sweet.Liking ~ SS.Sucralose_1.5mM, data = SS)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -21.0175 -10.3138  -0.5181   9.9695  25.0538 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         50.7561     7.5610   6.713 2.04e-06 ***
## SS.Sucralose_1.5mM   0.3751     0.1341   2.796   0.0115 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12.47 on 19 degrees of freedom
## Multiple R-squared:  0.2916, Adjusted R-squared:  0.2543 
## F-statistic:  7.82 on 1 and 19 DF,  p-value: 0.01151
## Plot
Variance$Model <- factor(Variance$Model, levels = c("Preference", "Liking", "Simple Sweet - Sucrose", "Simple Sweet - Sucralose", "Single Solution - Sucrose", "Single Solution - Sucralose", "Simple Sweet - Sucrose (at 1050 mM)", "Simple Sweet - Sucralose (at 1.50 mM)"))
  
Variance %>%
  ggplot(aes(x= Model, y = Variance, fill = Model)) +
  geom_bar(stat = "identity", position = "dodge") +
  scale_fill_nejm()+  
  theme_light() +
  ylim(0, 0.5) +
  theme(axis.text.x = element_text(angle = 90)) 

Principal Component/Exploratory Factor Analysis

I am not quite sure if I figured out how replicate the factor analyses Matt did yet, but I did manage to do a PCA and an exploratory factor analysis.

PCA.df <- SS %>%
  select(MostLiked, Pref, Single.Sucrose, Single.Sucralose, SS.Sucrose_1050mM, SS.Sucralose_1.5mM, Sweet.Liking)

SS.PCA <- prcomp(PCA.df, center = TRUE, scale = TRUE)
summary(SS.PCA)
## Importance of components:
##                           PC1    PC2     PC3     PC4     PC5     PC6    PC7
## Standard deviation     1.9538 1.3058 0.76735 0.61474 0.50793 0.43790 0.2468
## Proportion of Variance 0.5454 0.2436 0.08412 0.05399 0.03686 0.02739 0.0087
## Cumulative Proportion  0.5454 0.7890 0.87306 0.92705 0.96391 0.99130 1.0000
plot(SS.PCA)

fviz_pca_var(SS.PCA) 

Ex.Fact <- factanal(scale(PCA.df), factors = 2, rotation = "varimax", scores = "regression")
Ex.Fact
## 
## Call:
## factanal(x = scale(PCA.df), factors = 2, scores = "regression",     rotation = "varimax")
## 
## Uniquenesses:
##          MostLiked               Pref     Single.Sucrose   Single.Sucralose 
##              0.027              0.317              0.100              0.676 
##  SS.Sucrose_1050mM SS.Sucralose_1.5mM       Sweet.Liking 
##              0.115              0.379              0.469 
## 
## Loadings:
##                    Factor1 Factor2
## MostLiked           0.169   0.972 
## Pref                        0.821 
## Single.Sucrose      0.854   0.412 
## Single.Sucralose    0.566         
## SS.Sucrose_1050mM   0.912   0.229 
## SS.Sucralose_1.5mM  0.779  -0.114 
## Sweet.Liking        0.654   0.322 
## 
##                Factor1 Factor2
## SS loadings      2.955   1.961
## Proportion Var   0.422   0.280
## Cumulative Var   0.422   0.702
## 
## Test of the hypothesis that 2 factors are sufficient.
## The chi square statistic is 8.93 on 8 degrees of freedom.
## The p-value is 0.349
Ex.Fact$scores
##           Factor1     Factor2
##  [1,] -0.84025934 -1.04711469
##  [2,] -0.01509093  1.27845897
##  [3,]  0.51062967  0.56068881
##  [4,]  0.15221038 -0.02329048
##  [5,]  0.99344867 -0.04775404
##  [6,] -0.08204270  1.31190270
##  [7,] -1.58958208  0.28228347
##  [8,]  1.13923416 -0.85458849
##  [9,] -1.23510172 -0.16896428
## [10,]  1.61586270 -0.21384313
## [11,] -0.26919797  1.40494204
## [12,] -0.76850932  1.48766947
## [13,]  0.24245858  0.55674574
## [14,]  0.40999948 -0.55978144
## [15,]  0.56658600  0.60102360
## [16,] -0.53164207 -1.66059181
## [17,] -1.88240420 -1.76650923
## [18,]  0.25964032 -0.63472226
## [19,]  1.43345281 -1.37579701
## [20,]  0.85188947  0.53857607
## [21,] -0.96158191  0.33066599