I have a dataset where many but not all of my data seems to have a bivariate distribution.
I can perform a mixture model for each group in the dataset, but I'd like to know how to test if a univariate model is better fit.
dfA <- filter(df, group == "A") %>% select(samp)
mmA <- normalmixEM(dfA$samp)
Here's a histogram of the first group where the data looks more bimodal:
as.data.frame(cbind(group, samp)) %>%
ggplot() +
geom_histogram(aes(x = as.numeric(samp)),
bins = 10,
stat = "bin") +
facet_wrap(~group)
Here's a subset of my data:
structure(list(group = c("A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C"), samp = c("260", "205", "244",
"241", "218", "217", "261", "208", "238", "194", "227", "237",
"229", "273", "210", "176", "286", "231", "196", "269", "238",
"288", "196", "215", "192", "300", "233", "180", "200", "227",
"192", "187", "245", "255", "180", "215", "229", "192", "219",
"214", "215", "226", "285", "201", "199", "280", "232", "223",
"183", "202", "217", "192", "267", "219", "187", "277", "230",
"172", "221", "218", "196", "184", "210", "176", "295", "218",
"193", "177", "214", "295", "187", "219", "188", "187", "219",
"180", "175", "210", "299", "193", "212", "262", "196", "224",
"215", "175", "224", "260", "285", "222", "203", "191", "213",
"189", "209", "223", "188", "206", "208", "203", "290", "219",
"249", "172", "236", "291", "287", "212", "294", "255", "230",
"278", "190", "224", "287", "195", "224", "196", "189", "216",
"253", "210", "220", "190", "180", "217", "193", "264", "222",
"253", "176", "224", "270", "218", "213", "180", "263", "224",
"182", "290", "222", "276", "176", "215", "190", "185", "223",
"200", "179", "205", "210", "210", "229", "257", "209", "215",
"183", "271", "217", "273", "296", "220", "206", "194", "227",
"187", "272", "223", "212", "202", "223", "179", "168", "220",
"179", "287", "243", "208", "265", "234", "255", "207", "234",
"201", "180", "208", "190", "230", "224", "285", "278", "219",
"260", "183", "212", "292", "188", "206", "294", "184", "223",
"189", "177", "222", "259", "260", "225", "254", "267", "220",
"295", "290", "214", "275", "188", "220", "201", "194", "213",
"194", "290", "197", "208", "238", "239", "208", "199", "229",
"199", "178", "224", "231", "286", "227", "169", "182", "231",
"186", "191", "210", "260", "223", "216", "176", "195", "218",
"172", "287", "197", "201", "190", "202", "260", "193", "204",
"267", "192", "206", "171", "182", "200", "275", "184", "226",
"285", "294", "216", "283", "193", "230", "226", "197", "208",
"245", "183", "225", "167", "185", "216", "257", "272", "219",
"286", "275", "217", "274", "185", "231", "295", "252", "231",
"186", "271", "220", "201", "264", "222", "302", "273", "207"
)), class = "data.frame", row.names = c(NA, -300L))