Cargando paquete requerido: ggpp
Registered S3 methods overwritten by 'ggpp':
method from
heightDetails.titleGrob ggplot2
widthDetails.titleGrob ggplot2
Adjuntando el paquete: 'ggpp'
The following object is masked from 'package:ggplot2':
annotate
Adjuntando el paquete: 'ggpubr'
The following objects are masked from 'package:ggpp':
as_npc, as_npcx, as_npcy
The following object is masked from 'package:egg':
ggarrange
# A tibble: 4 × 11
Segmentacion variable n min max median iqr mean sd se ci
<fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 3.5 Value 4351 -76.8 -40.7 -58.0 8.57 -58.7 5.95 0.09 0.177
2 4 a 5 Value 59306 -80.6 -38.6 -59.8 8.06 -59.9 6.16 0.025 0.05
3 7.5 a 11 Value 30358 -80.2 -34.2 -58.6 8.5 -58.3 6.71 0.039 0.075
4 12 a 13.5 Value 22893 -78.2 -24.4 -47.4 11.5 -48.9 8.86 0.059 0.115
linealizado
#library(explore)#explore(dat_clean)descriptiva_clean=dat_clean2 %>%group_by(Segmentacion) %>%get_summary_stats(type ="common") %>% dplyr::filter(variable=="Value")dclass1=descriptiva_clean%>%select(-variable,-iqr,-mean,-sd,-se,-ci)library(dplyr)library(magrittr) # Para el operador %>%
Adjuntando el paquete: 'magrittr'
The following object is masked from 'package:purrr':
set_names
The following object is masked from 'package:tidyr':
extract
library(seewave)
Adjuntando el paquete: 'seewave'
The following object is masked from 'package:lubridate':
duration
The following object is masked from 'package:readr':
spec
# Calcular la media en dB por grupodescriptiva_clean2 <- dat_clean2 %>%group_by(Segmentacion) %>%mutate(mean_dB =meandB(Value), sd_dB=sddB(Value, level="SPL"),sd_lineal=sd(Value_linear),count_Detect_school =sum(!is.na(Detect_school))) # Calcular la media en dB usando seewave::meandB()summary_table <- descriptiva_clean2 %>%group_by(Segmentacion) %>%summarise(mean_dB =mean(mean_dB),mean_sd_dB =mean(sd_dB),mean_sd_lineal =mean(sd_lineal),count_Detect_school =mean(count_Detect_school)) # Calcular el promedio de mean_dB por grupo# Mostrar la tabla resumend2=summary_table %>%select(mean_dB, mean_sd_dB,count_Detect_school)Tabla_D=cbind(dclass1,d2)%>%rename(Mínimo="min",Máximo="max",Mediana="median",Media="mean_dB", sd="mean_sd_dB")%>%mutate_if(is.numeric, ~round(., 2))Tabla_D
Segmentacion n Mínimo Máximo Mediana Media sd count_Detect_school
1 3.5 4351 -76.76 -40.66 -57.96 -55.28 5.72 4351
2 4 a 5 59306 -80.62 -38.60 -59.84 -55.55 6.94 59306
3 7.5 a 11 30358 -80.20 -34.15 -58.65 -52.36 8.84 30358
4 12 a 13.5 22893 -78.24 -24.35 -47.37 -42.24 8.36 22893
# A tibble: 16 × 12
Banda Segmentacion variable n min max median iqr mean sd se
<fct> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 35-45 3.5 Value 192 -72.6 -57.6 -65.9 4.12 -65.8 2.84 0.205
2 45-90 3.5 Value 735 -76.8 -52.0 -66.9 4.88 -66.7 4.01 0.148
3 90-170 3.5 Value 1472 -73.8 -40.7 -59.5 6.1 -58.6 5.05 0.132
4 170-2… 3.5 Value 1952 -69.9 -43.8 -54.9 4.00 -55.1 3.24 0.073
5 35-45 4 a 5 Value 2639 -71.0 -39.3 -53.6 8.42 -54.0 5.86 0.114
6 45-90 4 a 5 Value 10101 -76.8 -38.6 -57.9 8.07 -57.9 6.01 0.06
7 90-170 4 a 5 Value 19625 -79.8 -38.6 -59.6 8.35 -59.6 6.20 0.044
8 170-2… 4 a 5 Value 26941 -80.6 -45.5 -61.0 7.33 -61.3 5.62 0.034
9 35-45 7.5 a 11 Value 1381 -65.1 -34.4 -49.6 8.51 -49.7 5.76 0.155
10 45-90 7.5 a 11 Value 5372 -76.1 -34.2 -56.2 7.49 -55.8 6.14 0.084
11 90-170 7.5 a 11 Value 9211 -77.4 -34.3 -58.0 7.78 -57.8 6.16 0.064
12 170-2… 7.5 a 11 Value 14394 -80.2 -37.0 -60.6 7.93 -60.3 6.31 0.053
13 35-45 12 a 13.5 Value 1039 -65.4 -26.5 -41.9 10.2 -42.9 7.35 0.228
14 45-90 12 a 13.5 Value 3995 -69.1 -24.5 -45.8 9.91 -47.3 8.13 0.129
15 90-170 12 a 13.5 Value 7245 -73.7 -24.4 -46.6 11.6 -48.1 8.80 0.103
16 170-2… 12 a 13.5 Value 10614 -78.2 -29.4 -49.0 12.1 -50.5 8.89 0.086
# ℹ 1 more variable: ci <dbl>
descriptiva_clean3=dat_clean2 %>%group_by(group,Banda) %>%get_summary_stats(type ="common") %>% dplyr::filter(variable=="Value")d3=descriptiva_clean3%>%select(-variable,-iqr,-mean,-sd,-se,-ci)%>% dplyr::rename(Talla="group",Mínimo="min",Máximo="max",Mediana="median")%>%mutate_if(is.numeric, ~round(., 2))library(dplyr)library(magrittr) # Para el operador %>%library(seewave)# Calcular la media en dB por grupodescriptiva_clean4 <- dat_clean %>%group_by(group, Banda) %>%mutate(mean_dB =meandB(Value), sd_dB=sddB(Value, level="SPL"),sd_lineal=sd(Value_linear)) # Calcular la media en dB usando summary_table4 <- descriptiva_clean4 %>%group_by(group, Banda) %>%summarise(mean_dB =mean(mean_dB),mean_sd_dB =mean(sd_dB),mean_sd_lineal =mean(sd_lineal)) # Calcular el promedio de mean_dB por grupo
`summarise()` has grouped output by 'group'. You can override using the
`.groups` argument.
# Mostrar la tabla resumend4=summary_table4 %>%select(mean_dB, mean_sd_dB)
w=ggplot(dat, aes(y = Value, x=as.numeric(Frequency),color=Segmentacion) )+#geom_line(alpha=0.1, aes(color=group),lwd=1, show.legend = T)+geom_smooth(size=2.25,method ="lm", show.legend = T,se = T)+scale_y_continuous(limits =c(-65,-45))+scale_color_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+scale_fill_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+#stat_regline_equation()+theme_presentation(base_size =14) +xlab("Frecuencia (kHz)") +ylab("Sv (dB)")+scale_x_continuous(breaks =c(38,70,90,120,170,200,260))+geom_vline(xintercept =c(38,45,90,170,260),linetype =c("dashed"),color="gray")+geom_hline(yintercept =c(-70,-60,-50,-40),linetype =c("dashed"),color="gray")+#scale_color_viridis_d(option = "C")+theme(legend.title=element_blank())+theme(panel.grid.major.y =element_line(color ="gray", linetype ="dashed"))+theme(panel.grid.major.x =element_line(color ="gray", linetype ="dashed"))k=ggplot(dat, aes(y = Value, x=as.numeric(Frequency),color=Segmentacion) )+#geom_line(alpha=0.1, aes(color=group),lwd=1, show.legend = T)+geom_smooth(size=2.25,method ="gam", show.legend = F,se=T)+scale_color_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+scale_fill_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+#stat_regline_equation()+theme_presentation(base_size =14) +xlab("Frecuencia (kHz)") +ylab("Sv (dB)")+scale_y_continuous(limits =c(-65,-45))+scale_x_continuous(breaks =c(38,70,90,120,170,200,260))+geom_vline(xintercept =c(38,45,90,170,260),linetype =c("dashed"),color="gray")+geom_hline(yintercept =c(-70,-60,-50,-40),linetype =c("dashed"),color="gray")+#scale_color_viridis_d(option = "C")+theme(legend.title=element_blank())+theme(panel.grid.major.y =element_line(color ="gray", linetype ="dashed"))+theme(panel.grid.major.x =element_line(color ="gray", linetype ="dashed"))library(cowplot)# Crear las gráficas w y k (código que proporcionaste)# Obtener la leyenda de una de las gráficas (por ejemplo, w)legend_w <-get_legend(w)# Combinar las dos gráficas y agregar la leyendacombined_plot <-plot_grid( k +theme(legend.position ="none"), # Ocultar la leyenda de la gráfica w w +theme(legend.position ="none"), # Ocultar la leyenda de la gráfica k legend_w,ncol =3, rel_heights =c(1, 1, 1),rel_widths =c(1,1,0.35), # Ajustar las alturas relativaslabels =c("(a)", "(b)", ""), # Etiquetas de enumeraciónalign ="h"# Alinear horizontalmente las partes)# Ajustar el tamaño de la leyendacombined_plot <- combined_plot +theme(legend.text =element_text(size =19), # Tamaño del texto de la leyendalegend.title =element_text(size =19) # Tamaño del título de la leyenda)# Imprimir la figura combinadaprint(combined_plot)
library(coin)
Cargando paquete requerido: survival
oneway_test(Value ~ group, data = dat)
Asymptotic K-Sample Fisher-Pitman Permutation Test
data: Value by
group (3.5, 4, 5, 7.5, 10.5, 11, 12, 12.5, 13.5)
chi-squared = 41872, df = 8, p-value < 2.2e-16
`summarise()` has grouped output by 'Segmentacion'. You can override using the
`.groups` argument.
ggplot(dat_mean) +aes(x =as.numeric(Frequency), y =10*log10(track_value), color = Segmentacion) +geom_line()
bloqueos <-data.frame(xmin =c(40,85, 155,250),xmax =c(55,100, 171,270))ggplot(dat_mean) +geom_line(size=2,aes(x =as.numeric(Frequency), y =10*log10(track_value), color = Segmentacion) ) +geom_rect(data = bloqueos, aes(xmin = xmin, xmax = xmax, ymin =-Inf, ymax =Inf), fill ="gray", alpha =0.75) +# Ajusta color y transparencia según necesiteslabs(x ="Frecuencia", y ="10*log10(Value)") +scale_color_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+scale_fill_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))
names(dat_mean)
[1] "Segmentacion" "Frequency" "track_value"
1 ¿Cómo cuantificar las diferencias entre espectros?
Cuando observamos la figura anterior, que muestra los espectros promedio en los puntos medios temporales de dos categorías fricativas, parece que una manera fácil de distinguir entre las dos sería concentrarse en las diferencias en las amplitudes en el rango de 2000 a 3000 Hz. Podríamos, por ejemplo, tomar la media en ese rango de frecuencia en todos los tokens de los dos tipos para comprobar si es consistente el caso de que el alveolar contiene mucha menos energía en ese rango de frecuencia que su contraparte postalveolar:
sS2to3thousandHz = dat %>%filter(Frequency >=100& Frequency <=150) %>%group_by(Segmentacion,Detect_school) %>%summarise(amplitudes_2000_3000Hz =mean(10^(Value/10)))ggplot(sS2to3thousandHz)+aes(x = Segmentacion, y =10*log10(amplitudes_2000_3000Hz),fill = Segmentacion)+geom_boxplot()+scale_color_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+scale_fill_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))
##
sS2to3thousandHz = dat %>%filter(Frequency >=171& Frequency <=250) %>%group_by(Segmentacion,Detect_school) %>%summarise(amplitudes_2000_3000Hz =mean(10^(Value/10)))ggplot(sS2to3thousandHz)+aes(x = Segmentacion, y =10*log10(amplitudes_2000_3000Hz),fill = Segmentacion)+geom_boxplot()+scale_color_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+scale_fill_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))
Una transformada discreta de coseno (DCT) expresa una secuencia finita de n puntos de datos en términos de una suma de funciones de coseno que oscilan a diferentes frecuencias.
Las amplitudes de las funciones del coseno, k0, k1, k2, … kn-1, se denominan coeficientes DCT.
k0: la amplitud de un coseno con una frecuencia de 0
k1: la amplitud de un coseno con una frecuencia de 0,5
k2: la amplitud de un coseno con una frecuencia de 1
…
kn-1: la amplitud de un coseno con una frecuencia de 0,5*(n-1)
Si suma todos estos coeficientes DCT, reconstruirá exactamente la misma señal que se ingresó para el análisis DCT.
Los coeficientes DCT más altos corresponden a los detalles de la “secuencia finita de n puntos de datos”, mientras que los coeficientes más bajos representan las características más generales. Al menos las tres más bajas, k0, k1 y k2, corresponden (pero no son iguales) a las siguientes tres características descriptivas estadísticas: k0 está relacionada linealmente con la media de la secuencia, k1 con la pendiente de la secuencia y k2 con su curvatura. Véase, por ejemplo:
dat_mean2= dat_mean %>%group_by(Segmentacion)%>%mutate(reconstructed = emuR::dct(track_value,fit=T))ggplot(dat_mean2) +geom_line(size=2,aes(x =as.numeric(Frequency), y =10*log10(reconstructed ), color = Segmentacion) ) +geom_rect(data = bloqueos, aes(xmin = xmin, xmax = xmax, ymin =-Inf, ymax =Inf), fill ="gray", alpha =0.75) +# Ajusta color y transparencia según necesiteslabs(x ="Frecuencia", y ="10*log10(Value)") +scale_color_manual(name="Longitud (cm)",values =c("royalblue1","orange","green3","darkorchid4"))+scale_fill_manual(name="Longitud (cm)",values =c("royalblue1","orange","green3","darkorchid4"))
sS_dftlong.mean = dat_mean %>%group_by(Segmentacion,) %>%mutate(#you can't use m=0 in order to calculate k0 onlysmoothed_k0tok1 = emuR::dct(track_value,m=1,fit=T),smoothed_k0tok2 = emuR::dct(track_value,m=2,fit=T),smoothed_k0tok3 = emuR::dct(track_value,m=3,fit=T),smoothed_k0tok4 = emuR::dct(track_value,m=4,fit=T),smoothed_k0tok5 = emuR::dct(track_value,m=5,fit=T),smoothed_k0tok6 = emuR::dct(track_value,m=6,fit=T))
ggplot(sS_dftlong.mean) +geom_line(size=2,aes(x =as.numeric(Frequency), y =10*log10(smoothed_k0tok1), color = Segmentacion) ) +geom_rect(data = bloqueos, aes(xmin = xmin, xmax = xmax, ymin =-Inf, ymax =Inf), fill ="gray", alpha =0.75) +# Ajusta color y transparencia según necesiteslabs(x ="Frecuencia", y ="10*log10(Value)") +scale_color_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+scale_fill_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+ggtitle("Smoothed with 2 DCT-coefficients (m=1)")
#############ggplot(sS_dftlong.mean) +geom_line(size=2,aes(x =as.numeric(Frequency), y =10*log10(smoothed_k0tok2), color = Segmentacion) ) +geom_rect(data = bloqueos, aes(xmin = xmin, xmax = xmax, ymin =-Inf, ymax =Inf), fill ="gray", alpha =0.75) +# Ajusta color y transparencia según necesiteslabs(x ="Frecuencia", y ="10*log10(Value)") +scale_color_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+scale_fill_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+ggtitle("Smoothed with 3 DCT-coefficients (m=2)")
Warning in FUN(X[[i]], ...): Se han producido NaNs
Warning: Removed 41 rows containing missing values or values outside the scale range
(`geom_line()`).
#############ggplot(sS_dftlong.mean) +geom_line(size=2,aes(x =as.numeric(Frequency), y =10*log10(smoothed_k0tok3), color = Segmentacion) ) +geom_rect(data = bloqueos, aes(xmin = xmin, xmax = xmax, ymin =-Inf, ymax =Inf), fill ="gray", alpha =0.75) +# Ajusta color y transparencia según necesiteslabs(x ="Frecuencia", y ="10*log10(Value)") +scale_color_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+scale_fill_manual(name="Longitud (cm)",values =c("#5f5f5f","#0000ff","#00bf00","#ff00bf"))+ggtitle("Smoothed with 4 DCT-coefficients (m=3)")
#############ggplot(sS_dftlong.mean) +geom_line(size=2,aes(x =as.numeric(Frequency), y =10*log10(smoothed_k0tok4), color = Segmentacion) ) +geom_rect(data = bloqueos, aes(xmin = xmin, xmax = xmax, ymin =-Inf, ymax =Inf), fill ="gray", alpha =0.75) +# Ajusta color y transparencia según necesiteslabs(x ="Frecuencia", y ="10*log10(Value)") +scale_color_manual(name="Longitud (cm)",values =c("royalblue1","orange","green3","darkorchid4"))+scale_fill_manual(name="Longitud (cm)",values =c("royalblue1","orange","green3","darkorchid4"))
Warning in FUN(X[[i]], ...): Se han producido NaNs
#############ggplot(sS_dftlong.mean) +geom_line(size=2,aes(x =as.numeric(Frequency), y =10*log10(smoothed_k0tok5), color = Segmentacion) ) +geom_rect(data = bloqueos, aes(xmin = xmin, xmax = xmax, ymin =-Inf, ymax =Inf), fill ="gray", alpha =0.75) +# Ajusta color y transparencia según necesiteslabs(x ="Frecuencia", y ="10*log10(Value)") +scale_color_manual(name="Longitud (cm)",values =c("royalblue1","orange","green3","darkorchid4"))+scale_fill_manual(name="Longitud (cm)",values =c("royalblue1","orange","green3","darkorchid4"))
#############ggplot(sS_dftlong.mean) +geom_line(size=2,aes(x =as.numeric(Frequency), y =10*log10(smoothed_k0tok6), color = Segmentacion) ) +geom_rect(data = bloqueos, aes(xmin = xmin, xmax = xmax, ymin =-Inf, ymax =Inf), fill ="gray", alpha =0.75) +# Ajusta color y transparencia según necesiteslabs(x ="Frecuencia", y ="10*log10(Value)") +scale_color_manual(name="Longitud (cm)",values =c("royalblue1","orange","green3","darkorchid4"))+scale_fill_manual(name="Longitud (cm)",values =c("royalblue1","orange","green3","darkorchid4"))
Recuerde que la última figura muestra solo dos funciones de coseno (invertidas) de una cierta amplitud con frecuencia 0.5. Obviamente, esta no es la mejor representación de los espectros de /s/ y /ʃ/. Tenemos que encontrar un compromiso entre demasiada y muy poca información. En este caso específico, (= 5 coeficientes DCT) parece ser el mejor compromiso.m = 4
Podemos, por supuesto, aplicar la función -también a los datos no promediados:dct
ggsave(filename ="Segmentacion.png",plot = segmentacion, height =6, # Specifies the height of the plot in incheswidth =12, # Specifies the width of the plot in inchesdpi =1000, # Specifies the resolution in dots per inchpath ="F:/Tesis abordo/Tesis abordo/Figuras/Objetivo02/",device ="png")
library(ggplot2)# Graficar figura de barrasggplot(tabla, aes(x = Segmentacion, y = k0db, fill = Segmentacion)) +geom_bar(stat ="identity", position ="dodge", width =0.7) +labs(x ="Segmentacion", y ="k0 en dB") +theme_minimal()
ggplot(tabla, aes(x = Segmentacion, y = k1db, fill = Segmentacion)) +geom_bar(stat ="identity", position ="dodge", width =0.7) +labs(x ="Segmentacion", y ="k0 en dB") +theme_minimal()