library(tidyverse)
library(ggpubr)
library(rstatix)
# armo el df
concentracion_azucar <-c(rep(0,6),rep(50, 6),rep(75, 6),rep(100, 6))

valores <- c(0, 50, 75, 100)

concentracion_azucar <- valores %>%
  map(~rep(.x, 6)) %>%
  unlist()

tipo_harina <- rep(c("general", "para_tortas"), 12)
resultados <- c(0.9, 0.91, 0.87, 0.9, 0.9, 0.8, 0.86, 0.88, 0.89, 0.82, 0.91, 0.83, 0.93, 0.86, 0.88, 0.85, 0.87, 0.8, 0.79, 0.86, 0.82, 0.85, 0.8, 0.85)

base_tortas<-data.frame(concentracion_azucar, tipo_harina, resultados)%>%
  mutate(concentracion_azucar = as.factor(concentracion_azucar),tipo_harina = as.factor(tipo_harina))

# testeo de normalidad de las variables
test_normalidad<-base_tortas%>%
  group_by(concentracion_azucar, tipo_harina)%>%
  shapiro_test(resultados)

# Gráfico Q-Q plot para visualizar la normalidad
plot_normalidad<-ggqqplot(base_tortas, "resultados", facet.by = c("tipo_harina", "concentracion_azucar"))
plot_normalidad

# testeo de homocedasticidad de varianzas
test_homocedasticidad<-base_tortas%>%
  levene_test(resultados~tipo_harina*concentracion_azucar)
# ANOVA de dos factores sin interacción 
modelo_sin_interaccion <- aov(resultados ~ tipo_harina + concentracion_azucar, data=base_tortas)
summary(modelo_sin_interaccion)
##                      Df   Sum Sq  Mean Sq F value Pr(>F)
## tipo_harina           1 0.001838 0.001837   1.335  0.262
## concentracion_azucar  3 0.008713 0.002904   2.110  0.133
## Residuals            19 0.026146 0.001376
# ANOVA de dos factores con interacción
modelo_con_interaccion <- aov(resultados ~ tipo_harina * concentracion_azucar, data=base_tortas)
summary(modelo_con_interaccion)
##                                  Df   Sum Sq  Mean Sq F value Pr(>F)  
## tipo_harina                       1 0.001838 0.001838   1.838 0.1941  
## concentracion_azucar              3 0.008713 0.002904   2.904 0.0670 .
## tipo_harina:concentracion_azucar  3 0.010146 0.003382   3.382 0.0442 *
## Residuals                        16 0.016000 0.001000                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Existen diferencias estadísticamente significativas debidas al tipo de harina utilizada?

Dado que el p-valor de 0.262 (sin interacción) y 0.1941 (con interacción) son ambos mayores que 0.05, no hay suficiente evidencia estadística para rechazar la hipótesis nula, por lo tanto no existen diferencias estadísticamente significativas en la densidad (resultados) de las tortas debido al tipo de harina (tipo_harina) utilizada.

Existen diferencias estadísticamente significativas debidas al nivel de endulzamiento utilizado?

El p-valor para el nivel de endulzamiento (concentracion_azucar) es de 0.133 (sin interacción) y 0.0670 (con interacción). Aunque el p-valor con interacción es cercano a 0.05, no es lo suficientemente bajo como para ser considerado estadísticamente significativo al nivel α = 0.05, por lo tanto no existen diferencias estadísticamente significativas en la densidad de las tortas debido al nivel de endulzamiento utilizado.

Existe interacción estadísticamente significativa entre los factores considerados?

El p-valor para la interacción entre el tipo de harina y el endulzamiento es de 0.0442. Dado que este valor es menor que 0.05, la interacción entre estos dos factores es estadísticamente significativa al nivel α = 0.05, por lo tanto podemos decir que existe una interacción estadísticamente significativa entre el tipo de harina y el nivel de endulzamiento. Es decir, el efecto del tipo de harina sobre la densidad de las tortas no es constante a través de los diferentes niveles de endulzamiento y viceversa

Gráficos de medias e interpretar.

# Gráfico de medias 
cdata <- plyr::ddply(base_tortas, 
               c("tipo_harina", "concentracion_azucar"), 
               summarise,
               N    = length(resultados),
               mean = mean(resultados),
               sd   = sd(resultados),
               se   = sd / sqrt(N))

plot_medias<-ggplot(cdata, 
                    aes(x=concentracion_azucar, 
                        y=mean))+ 
  geom_errorbar(aes(ymin=mean-se, 
                    ymax=mean+se),
                color = "grey", 
                width=.1) +
  geom_line(aes(group = tipo_harina,  color=tipo_harina)) +
  geom_point()+
  # facet_wrap(~tipo_harina)+
  theme_minimal()+
  labs(title = "Interacción entre Tipo de Harina y Concentración de Azúcar")
plot_medias

Conclusión

A mayor concentración de azúcar, la densidad de las preparaciones con harina de torta y harina general se amplía. Sin embargo, cuando la concentración de azúcar supera los 75, las preparaciones con harina general disminuyen considerablemente su densidad (0.09 puntos) alcanzando un indicador de 0.80. En el mismo punto de inflexión, las de harina para tortas, aumentan (0.02 puntos), aunque de forma menos pronunciada, alcanzando 0.86 de densidad. Podríamos pensar que ese nivel de concentración de azúcar es el que mayor interacción tiene con el tipo de harina.

LS0tDQp0aXRsZTogIlRvcnRhcyB5IGNvbmNlbnRyYWNpw7NuIGRlIGF6w7pjYXIiDQphdXRob3I6ICJMdWlzZWxsaSBMdWNhcyINCmRhdGU6ICIyMDIzLTEwLTE4Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0aGVtZTogImNvc21vIg0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRSAjYXJtYSBtZW51IGZsb3RhbnRlDQogICAgbnVtYmVyLXNlY3Rpb25zOiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KZWRpdG9yX29wdGlvbnM6IA0KICBtYXJrZG93bjogDQogICAgd3JhcDogNzINCi0tLQ0KYGBge3IsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQod2FybmluZyA9IEYsIG1lc3NhZ2UgPSBGKQ0KYGBgDQoNCg0KDQoNCg0KYGBge3J9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoZ2dwdWJyKQ0KbGlicmFyeShyc3RhdGl4KQ0KYGBgDQoNCg0KDQpgYGB7cn0NCg0KIyBhcm1vIGVsIGRmDQpjb25jZW50cmFjaW9uX2F6dWNhciA8LWMocmVwKDAsNikscmVwKDUwLCA2KSxyZXAoNzUsIDYpLHJlcCgxMDAsIDYpKQ0KDQp2YWxvcmVzIDwtIGMoMCwgNTAsIDc1LCAxMDApDQoNCmNvbmNlbnRyYWNpb25fYXp1Y2FyIDwtIHZhbG9yZXMgJT4lDQogIG1hcCh+cmVwKC54LCA2KSkgJT4lDQogIHVubGlzdCgpDQoNCnRpcG9faGFyaW5hIDwtIHJlcChjKCJnZW5lcmFsIiwgInBhcmFfdG9ydGFzIiksIDEyKQ0KcmVzdWx0YWRvcyA8LSBjKDAuOSwgMC45MSwgMC44NywgMC45LCAwLjksIDAuOCwgMC44NiwgMC44OCwgMC44OSwgMC44MiwgMC45MSwgMC44MywgMC45MywgMC44NiwgMC44OCwgMC44NSwgMC44NywgMC44LCAwLjc5LCAwLjg2LCAwLjgyLCAwLjg1LCAwLjgsIDAuODUpDQoNCmJhc2VfdG9ydGFzPC1kYXRhLmZyYW1lKGNvbmNlbnRyYWNpb25fYXp1Y2FyLCB0aXBvX2hhcmluYSwgcmVzdWx0YWRvcyklPiUNCiAgbXV0YXRlKGNvbmNlbnRyYWNpb25fYXp1Y2FyID0gYXMuZmFjdG9yKGNvbmNlbnRyYWNpb25fYXp1Y2FyKSx0aXBvX2hhcmluYSA9IGFzLmZhY3Rvcih0aXBvX2hhcmluYSkpDQoNCiMgdGVzdGVvIGRlIG5vcm1hbGlkYWQgZGUgbGFzIHZhcmlhYmxlcw0KdGVzdF9ub3JtYWxpZGFkPC1iYXNlX3RvcnRhcyU+JQ0KICBncm91cF9ieShjb25jZW50cmFjaW9uX2F6dWNhciwgdGlwb19oYXJpbmEpJT4lDQogIHNoYXBpcm9fdGVzdChyZXN1bHRhZG9zKQ0KDQojIEdyw6FmaWNvIFEtUSBwbG90IHBhcmEgdmlzdWFsaXphciBsYSBub3JtYWxpZGFkDQpwbG90X25vcm1hbGlkYWQ8LWdncXFwbG90KGJhc2VfdG9ydGFzLCAicmVzdWx0YWRvcyIsIGZhY2V0LmJ5ID0gYygidGlwb19oYXJpbmEiLCAiY29uY2VudHJhY2lvbl9henVjYXIiKSkNCnBsb3Rfbm9ybWFsaWRhZA0KDQoNCiMgdGVzdGVvIGRlIGhvbW9jZWRhc3RpY2lkYWQgZGUgdmFyaWFuemFzDQp0ZXN0X2hvbW9jZWRhc3RpY2lkYWQ8LWJhc2VfdG9ydGFzJT4lDQogIGxldmVuZV90ZXN0KHJlc3VsdGFkb3N+dGlwb19oYXJpbmEqY29uY2VudHJhY2lvbl9henVjYXIpDQoNCmBgYA0KDQpgYGB7cn0NCiMgQU5PVkEgZGUgZG9zIGZhY3RvcmVzIHNpbiBpbnRlcmFjY2nDs24gDQptb2RlbG9fc2luX2ludGVyYWNjaW9uIDwtIGFvdihyZXN1bHRhZG9zIH4gdGlwb19oYXJpbmEgKyBjb25jZW50cmFjaW9uX2F6dWNhciwgZGF0YT1iYXNlX3RvcnRhcykNCnN1bW1hcnkobW9kZWxvX3Npbl9pbnRlcmFjY2lvbikNCg0KIyBBTk9WQSBkZSBkb3MgZmFjdG9yZXMgY29uIGludGVyYWNjacOzbg0KbW9kZWxvX2Nvbl9pbnRlcmFjY2lvbiA8LSBhb3YocmVzdWx0YWRvcyB+IHRpcG9faGFyaW5hICogY29uY2VudHJhY2lvbl9henVjYXIsIGRhdGE9YmFzZV90b3J0YXMpDQpzdW1tYXJ5KG1vZGVsb19jb25faW50ZXJhY2Npb24pDQpgYGANCkV4aXN0ZW4gZGlmZXJlbmNpYXMgZXN0YWTDrXN0aWNhbWVudGUgc2lnbmlmaWNhdGl2YXMgZGViaWRhcyBhbCB0aXBvIGRlIGhhcmluYSB1dGlsaXphZGE/DQoNCkRhZG8gcXVlIGVsIHAtdmFsb3IgZGUgKiowLjI2MioqIChzaW4gaW50ZXJhY2Npw7NuKSB5ICoqMC4xOTQxKiogKGNvbg0KaW50ZXJhY2Npw7NuKSBzb24gYW1ib3MgbWF5b3JlcyBxdWUgMC4wNSwgbm8gaGF5IHN1ZmljaWVudGUgZXZpZGVuY2lhDQplc3RhZMOtc3RpY2EgcGFyYSByZWNoYXphciBsYSBoaXDDs3Rlc2lzIG51bGEsIHBvciBsbyB0YW50byBubyBleGlzdGVuDQpkaWZlcmVuY2lhcyBlc3RhZMOtc3RpY2FtZW50ZSBzaWduaWZpY2F0aXZhcyBlbiBsYSBkZW5zaWRhZCAocmVzdWx0YWRvcykNCmRlIGxhcyB0b3J0YXMgZGViaWRvIGFsIHRpcG8gZGUgaGFyaW5hICh0aXBvX2hhcmluYSkgdXRpbGl6YWRhLg0KDQoNCkV4aXN0ZW4gZGlmZXJlbmNpYXMgZXN0YWTDrXN0aWNhbWVudGUgc2lnbmlmaWNhdGl2YXMgZGViaWRhcyBhbCBuaXZlbCBkZSBlbmR1bHphbWllbnRvIHV0aWxpemFkbz8NCg0KRWwgcC12YWxvciBwYXJhIGVsIG5pdmVsIGRlIGVuZHVsemFtaWVudG8gKGNvbmNlbnRyYWNpb25fYXp1Y2FyKSBlcyBkZQ0KKiowLjEzMyoqIChzaW4gaW50ZXJhY2Npw7NuKSB5ICoqMC4wNjcwKiogKGNvbiBpbnRlcmFjY2nDs24pLiBBdW5xdWUgZWwNCnAtdmFsb3IgY29uIGludGVyYWNjacOzbiBlcyBjZXJjYW5vIGEgMC4wNSwgbm8gZXMgbG8gc3VmaWNpZW50ZW1lbnRlIGJham8NCmNvbW8gcGFyYSBzZXIgY29uc2lkZXJhZG8gZXN0YWTDrXN0aWNhbWVudGUgc2lnbmlmaWNhdGl2byBhbCBuaXZlbCDOsSA9DQowLjA1LCBwb3IgbG8gdGFudG8gbm8gZXhpc3RlbiBkaWZlcmVuY2lhcyBlc3RhZMOtc3RpY2FtZW50ZQ0Kc2lnbmlmaWNhdGl2YXMgZW4gbGEgZGVuc2lkYWQgZGUgbGFzIHRvcnRhcyBkZWJpZG8gYWwgbml2ZWwgZGUNCmVuZHVsemFtaWVudG8gdXRpbGl6YWRvLg0KDQogRXhpc3RlIGludGVyYWNjacOzbiBlc3RhZMOtc3RpY2FtZW50ZSBzaWduaWZpY2F0aXZhIGVudHJlIGxvcyBmYWN0b3JlcyBjb25zaWRlcmFkb3M/DQoNCkVsIHAtdmFsb3IgcGFyYSBsYSBpbnRlcmFjY2nDs24gZW50cmUgZWwgdGlwbyBkZSBoYXJpbmEgeSBlbA0KZW5kdWx6YW1pZW50byBlcyBkZSAqKjAuMDQ0MioqLiBEYWRvIHF1ZSBlc3RlIHZhbG9yIGVzIG1lbm9yIHF1ZSAwLjA1LA0KbGEgaW50ZXJhY2Npw7NuIGVudHJlIGVzdG9zIGRvcyBmYWN0b3JlcyBlcyBlc3RhZMOtc3RpY2FtZW50ZQ0Kc2lnbmlmaWNhdGl2YSBhbCBuaXZlbCDOsSA9IDAuMDUsIHBvciBsbyB0YW50byBwb2RlbW9zIGRlY2lyIHF1ZSBleGlzdGUNCnVuYSBpbnRlcmFjY2nDs24gZXN0YWTDrXN0aWNhbWVudGUgc2lnbmlmaWNhdGl2YSBlbnRyZSBlbCB0aXBvIGRlIGhhcmluYSB5DQplbCBuaXZlbCBkZSBlbmR1bHphbWllbnRvLiBFcyBkZWNpciwgZWwgZWZlY3RvIGRlbCB0aXBvIGRlIGhhcmluYSBzb2JyZQ0KbGEgZGVuc2lkYWQgZGUgbGFzIHRvcnRhcyBubyBlcyBjb25zdGFudGUgYSB0cmF2w6lzIGRlIGxvcyBkaWZlcmVudGVzDQpuaXZlbGVzIGRlIGVuZHVsemFtaWVudG8geSB2aWNldmVyc2ENCg0KR3LDoWZpY29zIGRlIG1lZGlhcyBlIGludGVycHJldGFyLg0KDQpgYGB7cn0NCiMgR3LDoWZpY28gZGUgbWVkaWFzIA0KY2RhdGEgPC0gcGx5cjo6ZGRwbHkoYmFzZV90b3J0YXMsIA0KICAgICAgICAgICAgICAgYygidGlwb19oYXJpbmEiLCAiY29uY2VudHJhY2lvbl9henVjYXIiKSwgDQogICAgICAgICAgICAgICBzdW1tYXJpc2UsDQogICAgICAgICAgICAgICBOICAgID0gbGVuZ3RoKHJlc3VsdGFkb3MpLA0KICAgICAgICAgICAgICAgbWVhbiA9IG1lYW4ocmVzdWx0YWRvcyksDQogICAgICAgICAgICAgICBzZCAgID0gc2QocmVzdWx0YWRvcyksDQogICAgICAgICAgICAgICBzZSAgID0gc2QgLyBzcXJ0KE4pKQ0KDQpwbG90X21lZGlhczwtZ2dwbG90KGNkYXRhLCANCiAgICAgICAgICAgICAgICAgICAgYWVzKHg9Y29uY2VudHJhY2lvbl9henVjYXIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgeT1tZWFuKSkrIA0KICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluPW1lYW4tc2UsIA0KICAgICAgICAgICAgICAgICAgICB5bWF4PW1lYW4rc2UpLA0KICAgICAgICAgICAgICAgIGNvbG9yID0gImdyZXkiLCANCiAgICAgICAgICAgICAgICB3aWR0aD0uMSkgKw0KICBnZW9tX2xpbmUoYWVzKGdyb3VwID0gdGlwb19oYXJpbmEsICBjb2xvcj10aXBvX2hhcmluYSkpICsNCiAgZ2VvbV9wb2ludCgpKw0KICAjIGZhY2V0X3dyYXAofnRpcG9faGFyaW5hKSsNCiAgdGhlbWVfbWluaW1hbCgpKw0KICBsYWJzKHRpdGxlID0gIkludGVyYWNjacOzbiBlbnRyZSBUaXBvIGRlIEhhcmluYSB5IENvbmNlbnRyYWNpw7NuIGRlIEF6w7pjYXIiKQ0KcGxvdF9tZWRpYXMNCmBgYA0KQ29uY2x1c2nDs24NCg0KQSBtYXlvciBjb25jZW50cmFjacOzbiBkZSBhesO6Y2FyLCBsYSBkZW5zaWRhZCBkZSBsYXMgcHJlcGFyYWNpb25lcyBjb24NCmhhcmluYSBkZSB0b3J0YSB5IGhhcmluYSBnZW5lcmFsIHNlIGFtcGzDrWEuIFNpbiBlbWJhcmdvLCBjdWFuZG8gbGENCmNvbmNlbnRyYWNpw7NuIGRlIGF6w7pjYXIgc3VwZXJhIGxvcyAqKjc1KiosIGxhcyBwcmVwYXJhY2lvbmVzIGNvbiBoYXJpbmENCmdlbmVyYWwgZGlzbWludXllbiBjb25zaWRlcmFibGVtZW50ZSBzdSBkZW5zaWRhZCAqKigwLjA5IHB1bnRvcykqKg0KYWxjYW56YW5kbyB1biBpbmRpY2Fkb3IgZGUgKiowLjgwKiouIEVuIGVsIG1pc21vIHB1bnRvIGRlIGluZmxleGnDs24sIGxhcw0KZGUgaGFyaW5hIHBhcmEgdG9ydGFzLCBhdW1lbnRhbiAqKigwLjAyIHB1bnRvcykqKiwgYXVucXVlIGRlIGZvcm1hIG1lbm9zDQpwcm9udW5jaWFkYSwgYWxjYW56YW5kbyAqKjAuODYqKiBkZSBkZW5zaWRhZC4gUG9kcsOtYW1vcyBwZW5zYXIgcXVlIGVzZQ0Kbml2ZWwgZGUgY29uY2VudHJhY2nDs24gZGUgYXrDumNhciBlcyBlbCBxdWUgbWF5b3IgaW50ZXJhY2Npw7NuIHRpZW5lIGNvbg0KZWwgdGlwbyBkZSBoYXJpbmEu