# Define UI for application
ui <- fluidPage(
  
  
  tags$head(
    tags$link(rel="stylesheet",
              href="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/katex.min.css",
              integrity="sha384-dbVIfZGuN1Yq7/1Ocstc1lUEm+AT+/rCkibIcC/OmWo5f0EA48Vf8CytHzGrSwbQ",
              crossorigin="anonymous"),
    HTML('<script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/katex.min.js" integrity="sha384-2BKqo+exmr9su6dir+qCw08N2ZKRucY4PrGQPPWU1A7FtlCGjmEGFqXCv5nyM5Ij" crossorigin="anonymous"></script>'),
    HTML('<script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous"></script>'),
    HTML('
    <script>
      document.addEventListener("DOMContentLoaded", function(){
        renderMathInElement(document.body, {
          delimiters: [{left: "$", right: "$", display: false}]
        });
      })
    </script>')
  ),
  
  
  
  #theme = shinytheme("simplex"),
  theme = shinytheme("cerulean"),
  #        theme = shinytheme("united"),
  #         theme = shinytheme("journal"),
  
  # Application title
  withMathJax(),
  tags$style(type="text/css",
             "body {padding-top: 5px;
                color: purple; background-color: white}"),
  
  titlePanel(h2("Pruebas de Hipótesis Multivariadas",
                style={'background-color:aquamarine;'})),
  
  #########################################################
  #########################################################
  #### INICIO TABSETPANEL-GLOBAL DE UNA Y DOS POBLACIONES
  #########################################################
  #########################################################
  
  tabsetPanel(
    
    #########################################################
    #########################################################
    #### INICIO TABPANEL-DE UNA POBLACIÓN
    #########################################################
    #########################################################
    
    tabPanel(h4("PH para una población",style={'color:#e905f5;'}),
             
             #  position = "fixed-top",
             
             # Sidebar
             tabsetPanel(
               id = "tabs1",
               type = "pills",
               
               ################################################ 
               ### Inicio del tabPanel Datos
               ################################################
               
               tabPanel("Datos",
                        # Barra de Opciones de Datos
                        div(
                          sidebarPanel(
                            conditionalPanel(condition = "input.tabs1 == 'Datos'",
                                             radioButtons("dataInput",HTML("Para interactuar con esta aplicacion usted puede usar los datos simulados o cargar sus propios datos. <br> Por favor elija una de las siguientes opciones:"),  
                                                          #radioButtons("dataInput","Elegir los Datos a Usar:",
                                                          list("Datos simulados" = 1,"Cargar datos" = 2), selected = 1),
                                             
                                             conditionalPanel(condition = "input.dataInput=='2'",
                                                              fileInput("upload","Descargue su arhivo delimitado (10MB_max):",multiple = FALSE,
                                                                        accept = c(
                                                                          "text/csv",
                                                                          "text/comma-separated-values,text/plain",
                                                                          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                                                                          ".csv",
                                                                          ".xlsx"),
                                                                        buttonLabel = "Cargar"),
                                                              radioButtons("fileSepDF","Separador de datos:",list("Coma" = 1,"Tabulador" = 2,"Semicoma" = 3,"Espacio" = 4),selected = 1),
                                                              checkboxInput("myHead","Variables en la fila-1",value = TRUE),
                                                              
                                                              conditionalPanel("input.fileSepDF!='1'",
                                                                               checkboxInput("decimal","Usa la coma como decimal",value = FALSE))
                                             ),
                                             selectizeInput("variables","Variables a usar",choices = NULL,selected = NULL,multiple = TRUE),
                                             generateInfo())
                          )# fin de barra lateral (de sidebar Panel)
                        ),  # fin Barra opciones de datos ie. el Div
                        ####  Panel principal del panel-1
                        mainPanel(
                          fluidRow(column(width=8,
                                          tags$h3(
                                            # tagList(
                                            tags$li(
                                              actionLink("sobre_datos_muestra","  ",icon("info")),
                                              class="dropdown",
                                              tags$code("Conjunto de datos completo")
                                            )
                                            #)
                                          )
                          )),
                          hr(),
                          dataTableOutput('tabla1'),
                          hr(),
                          h3(p(code("Conjunto de datos filtrado"))),
                          hr(),
                          dataTableOutput('tabla2')
                        )  ## fin del mainPanel
               ),  ## fin del tabPanel Datos
               
               ################################################
               ### Inicio del tabPanel Pruebas de Normalidad
               ################################################
               
               tabPanel("Pruebas de normalidad",
                        sidebarLayout(
                          sidebarPanel(
                            selectInput("PH_NU_Seleccionada",p("Normalidad univariada:",style=" text-align:center"),
                                        choices=c("SW:Shapiro-Wilk"=1,
                                                  "CMV:Cramer-von Mises"=2,
                                                  "Lilliefors"=3,
                                                  "SF:Shapiro-Francia"=4,
                                                  "AD:Anderson-Darling"=5),
                                        selected = 1),
                            
                            selectInput("Grafico_Seleccionado",p("Grafico univariado",style=" text-align:center"),
                                        choices=c("QQ-Plot"=1,
                                                  "Histograma"=2,
                                                  "Box-Plot"=3,
                                                  "Scatter-Plot"=4),
                                        selected = 2),
                            
                            selectInput("PH_NM_Seleccionada",p("Normalidad multivariada:",style=" text-align:center"),
                                        choices=c("Mardia"=1,
                                                  "hz:Henze-Zirkler"=2,
                                                  "Royston"=3,
                                                  "dh:Doornik-Hansen"=4),
                                        #                       "Shapiro-Wilk-NM"=5),
                                        selected = 3),
                            
                            selectInput("Grafico_Multi_Seleccionado",p("Gráfico multivariado:",style=" text-align:center"),
                                        choices=c("QQ-Plot_Chi_Cuadrado"=1,
                                                  "Perspectivas"=2,
                                                  "Contonros"=3),
                                        selected = 1),
                            
                            selectInput("Graficos_Varios",p("Otros gráficos:",style=" text-align:center"),
                                        choices=c("Dispersión"=1,
                                                  "Disp_1Elipse_np"=2,
                                                  # "Disp_1Elipse_ng"=3,
                                                  "Disp_2Elipses_np"=4,
                                                  #"Disp_2Elipses_ng"=5,
                                                  "Superficie_NB"=6,
                                                  "contornos_NB"=7,
                                                  "elipse_conf"=8,
                                                  "elipse_conf_IC_T2"=9,
                                                  "elipse_conf_IC_BONF"=10,
                                                  "elipse_conf_IC_tstud"=11),
                                        selected = 2),
                            generateInfo(),
                          ),  #### fin de sidebarPanel-contenidos PNU
                          
                          #############################################
                          ## Inicio Panel Principal de Derecha PH-NORM
                          #############################################
                          
                          mainPanel(
                            tabsetPanel(type = "pills",
                                        
                                        ##############################
                                        ## Inicio Panel de PH NU
                                        ##############################
                                        
                                        tabPanel(withMathJax("\\(H_0 : Datos\\sim N_1\\)"),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 h4(p("Resumen descriptivo de los datos",
                                                                      style="color:black;text-align:center")) ,
                                                                 style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 tableOutput('PH_RD'),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 h4(p("Coeficientes de asimetría y kurtosis univariados",
                                                                      style="color:black;text-align:center")),
                                                                 style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 tableOutput('Res_Descriptivos_Varios'),
                                                 
                                                 #### PH de N_1
                                                 hr(),
                                                 fluidRow(column(width=8,
                                                                 h4(p("PH Sobre normalidad univariada",
                                                                      style="color:black;text-align:center")),
                                                                 style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=8,
                                                                 p('$$\\begin{cases}
                H_0: \\ \\ \\text{Las variables individuales son NU} \\\\
                H_a: \\ \\ \\text{Las variables individuales no son NU}
                \\end{cases}
                $$',
                                                                   style="color:black;border:1px solid black;
                background-color:white"))),
                                                 br(),
                                                 h4(textOutput("resultados_PH_NU"),
                                                    style={'color:red;'}),
                                                 
                                                 br(),
                                                 tableOutput('Res_NU'),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 p(tags$em("Puedes consultar las ayudas de las funciones del R
                          usadas para estas pruebas en:",
                                                                           tags$a("MVN::mvn()",
                                                                                  href="https://rdrr.io/cran/MVN/man/mvn.html"
                                                                           )
                                                                 ),".")
                                                 )),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=8,
                                                                 p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
               es mayor o igual que \\( \\alpha \\) para un nivel
               de significancia del \\( (1-\\alpha)100\\% \\),  en
               caso contrario se rechaza."),
                                                                   style="background-color:#a9f1a86b"
                                                                 ))),
                                                 br(),
                                                 
                                                 fluidRow(column(width=8,
                                                                 h4(p("Graficos univariados de los datos",
                                                                      style="color:black;text-align:center")),
                                                                 style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 plotOutput('Graf_NU'),
                                                 br()
                                        ),  # Fin del panel de PH NU
                                        
                                        ##############################
                                        ## Inicio Panel de PH NM
                                        ##############################
                                        tabPanel(withMathJax("\\(H_0 : Datos\\sim N_p\\)"),
                                                 br(),
                                                 fluidRow(column( width=8,
                                                                  h4(p("PH Sobre normalidad multivarida (NM)",
                                                                       style="color:black;text-align:center")),
                                                                  style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=8,
                                                                 p('$$\\begin{cases}
              H_0: \\ \\ \\text{Los datos son NM} \\\\
              H_a: \\ \\ \\text{Los datos no son NM}
              \\end{cases}$$',
                                                                   style="color:black;border:1px solid black;
              background-color:white"))),
                                                 br(),
                                                 h4(textOutput("resultados_PH_NM"),
                                                    style={'color:red;'}),
                                                 br(),
                                                 tableOutput('Res_NM'),
                                                 # br(),
                                                 #       tableOutput('Res_NM_SW'),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=8,
                                                                 p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
               es mayor o igual que \\( \\alpha \\) para un nivel
               de significancia del \\( (1-\\alpha)100\\% \\),  en
               caso contrario se rechaza."),
                                                                   style="background-color:#a9f1a86b"
                                                                 ))),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 h4(p("Graficos multivariados de los datos",
                                                                      style="color:black;text-align:center")),
                                                                 style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 plotOutput('Graf_NM'),
                                                 
                                                 ## Otros gráficos
                                                 hr(),
                                                 fluidRow(column(width=8,
                                                                 h4(p("Otros gráficos de interés",
                                                                      style="color:black;text-align:center")) ,
                                                                 style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 plotOutput('elipses'),
                                                 br()
                                        ),  # Fin del panel de PH NM
                                        
                                        ###################################################
                                        #### Inicio del panel de Teoría
                                        ###################################################
                                        tabPanel("Teoría", "123"
                                                 
                                        ), #### Fin del panel de Teoría
                                        
                            ) #end tabsetPanel-pills ie. del panel derecho de salidas
                          ) # end mainPanel ie. del panel pricipal
                        ) ### fin del sidebarLayout
               ),  ### fin del tabPanel: Pruebas de normalidad
               
               
               ################################################
               ### Inicio del tabPanel Pruebas: Mu=Mu0
               ################################################
               
               tabPanel("\\(H_0 : \\underline{\\mu}=\\underline{\\mu}_0 \\)",
                        sidebarLayout(
                          sidebarPanel(textInput('mu0',
                                                 HTML('Por favor ingrese el vector \\( \\underline{\\mu}_0 \\)  para la 
                    PH \\( H_0 \\)  :  \\( \\underline{\\mu} =
                    \\underline{\\mu}_0  \\). \n Por ejemplo si el vector \\(\\mu_0\\)\ es (0,0,0), usted debe ingresar 0,0,0')), # Arreglar el mu
                                       hr(),
                                       numericInput("alfa", p("Ingrese el valor de \\( \\alpha \\)"),value = 0.05),
                                       selectInput("PruebaAnalitica", p("Elija la prueba a usar para n pequeña:",
                                                                        style="text-align:center"),
                                                   choices=c("T2.test"=1,"HotellingsT2"=2),
                                                   selected = 1),
                                       hr(),
                                       selectInput("PruebaAnalitica_ng",p("Prueba a usar para n grande:"
                                                                          ,style="text-align:center"),
                                                   choices=c("HotellingsT2"=1),selected = 1),
                                       generateInfo()
                          ),  #### Find del sidebarPanel
                          
                          ################################################
                          ## Inicio Panel Principal de Derecha PH-Mu=Mu0
                          ################################################
                          
                          mainPanel(
                            tabsetPanel(type = "pills",
                                        
                                        ##################################
                                        ## Inicio Panel de PH Mu=Mu0, FU
                                        ##################################
                                        
                                        tabPanel("Función-Usuario",
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 h4(p("PH sobre el vector de medias usando una FU para n pequeña",
                                                                      style="color:black;text-align:center")),
                                                                 style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=6,
                                                                 p('$$\\begin{cases}
                H_0: \\ \\ \\underline{\\mu}=\\underline{\\mu}_0 \\\\
                H_a: \\ \\ \\underline{\\mu}\\neq\\underline{\\mu}_0
                \\end{cases}$$',
                                                                   style="color:black;border:1px solid black;
                background-color:white"))),
                                                 br(),
                                                 tableOutput('PH_mu0'),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=8,
                                                                 p(tags$em("Puedes consultar algo sobre la teoría
                            utilizada para este tipo de pruebas en:  "),
                                                                   tags$a("Dar click acá:", href="parte1mu0.pdf")
                                                                 )
                                                 )),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=8,
                                                                 p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
               es mayor o igual que \\( \\alpha \\) para un nivel
               de significancia del \\( (1-\\alpha)100\\% \\),  en
               caso contrario se rechaza."),
                                                                   style="background-color:#a9f1a86b"
                                                                 ))),
                                                 br(),
                                                 tableOutput('conclus2'),
                                                 
                                                 hr(),    ### FU n-Grande
                                                 fluidRow(column( width=8,
                                                                  h4(p("PH sobre el vector de medias usando una FU para n grande",
                                                                       style="color:black;text-align:center")),
                                                                  style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 tableOutput('PH_mu0_ng'),
                                                 br(),
                                                 tableOutput('conclus2_mu0_ng'),
                                                 br()
                                                 
                                        ), # Fin del tabPanel de: Mu=Mu0, FU
                                        
                                        ########################################
                                        ## Inicio Panel de PH Mu=Mu0, USANDO-R
                                        #######################################
                                        
                                        tabPanel("Usando-R",
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 h4(p("PH sobre el vector de medias usando R para n pequeña",
                                                                      style="color:black;text-align:center")),
                                                                 style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 verbatimTextOutput("Res_MU0r"),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 p(tags$em("Para mayor informacion sobre las funciones usadas consultar los siguientes enlaces:",
                                                                           tags$a("rrcov::T2.test()",
                                                                                  href="https://rdrr.io/cran/rrcov/man/T2.test.html"
                                                                           ),
                                                                           tags$a(",  icsnp::HotellingsT2()",
                                                                                  href="https://rdrr.io/cran/ICSNP/man/HotellingsT.html"
                                                                           )
                                                                 ),".")
                                                 )),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=8,
                                                                 p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
                es mayor o igual que \\( \\alpha \\) para un nivel
                de significancia del \\( (1-\\alpha)100\\% \\),  en
                caso contrario se rechaza."),
                                                                   style="background-color:#a9f1a86b"
                                                                 ))),
                                                 br(),
                                                 textOutput("Conclus_PH_mu0r"),
                                                 
                                                 ### Usando-r N-Grande
                                                 hr(),
                                                 fluidRow(column( width=8,
                                                                  h4(p("PH sobre el vector de medias usando R para n grande",
                                                                       style="color:black;text-align:center")),
                                                                  style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 verbatimTextOutput("Res_MU0r_ng"),
                                                 br()
                                                 
                                        ), # Fin del tabPanel de: Mu=Mu0, Usando-R
                                        
                                        ###########################################
                                        ## Inicio Panel de Teoría
                                        ##########################################
                                        
                                        tabPanel("Teoría",
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=8,
                                                                 tags$a("Ver la documentación teórica acá:",
                                                                        href=" ")
                                                 ))
                                                 
                                        )  #### Fin del tabPanel: Teoría
                                        
                            )  ### Fin del tabsetPanel (de pills)
                          ) ### Fin del mainPanel ie. del panel pricipal
                        )  ### Fin del sidebarLayout
               ),  ### Fin del tabPanel Mu=Mu0
               
               ################################################
               ### Inicio del tabPanel: Sigma=Sigma0
               ################################################
               
               tabPanel("\\(H_0 : \\mathbf{\\Sigma}=\\mathbf{\\Sigma}_0 \\)",
                        sidebarLayout(
                          sidebarPanel(textInput('sigma0',
                                                 HTML('Matriz \\( \\mathbf{\\Sigma}_0 \\)  para
                    PH: \\( H_0 \\)  :  \\( \\mathbf{\\Sigma} =
                    \\mathbf{\\Sigma}_0  \\) Ejemplo Input: 1,0,0;0,1,0;0,0,1')),
                                       hr(),
                                       numericInput("alfa_sigma",
                                                    p("Valor de \\( \\alpha \\)"),value = 0.05),
                                       selectInput("Prueba_sigma",
                                                   p("Prueba a usar para n pequeña:",
                                                     style="text-align:center"),
                                                   choices=c("LRT test-Mardia (1979)"=1,
                                                             "LRT1 test Rencher-Christensen (2012)"=2,
                                                             "LRT2 test Rencher-Christensen (2012)"=3),
                                                   selected = 1),
                                       hr(),
                                       selectInput("Prueba_sigma_ng",
                                                   p("Prueba a usar para n grande:"
                                                     ,style="text-align:center"),
                                                   choices=c("HotellingsT2"=1),selected = 1),
                                       generateInfo()
                          ),  #### Find del sidebarPanel
                          
                          mainPanel(
                            tabsetPanel(
                              type = "pills",
                              
                              tabPanel("Función de Usuario:",
                                       br(),
                                       fluidRow(column(width=8,
                                                       h4(p("PH sobre la matriz de Var-Cov usando una FU para n pequeña",
                                                            style="color:black;text-align:center")),
                                                       style="background-color:lavender;border-radius: 10px")),
                                       br(),
                                       withMathJax(),
                                       fluidRow(column(width=6,
                                                       p('$$\\begin{cases}
                H_0: \\ \\ \\mathbf{\\Sigma}=\\mathbf{\\Sigma}_0 \\\\
                H_a: \\ \\ \\mathbf{\\Sigma}\\neq\\mathbf{\\Sigma}_0
                \\end{cases}$$',
                                                         style="color:black;border:1px solid black;
                background-color:white"))),
                                       br(),
                                       withMathJax(),
                                       fluidRow(column(width=8,
                                                       p(tags$strong(
                                                         helpText("La matriz de Varianzas-Covarianzas
                                 muestral-$\\mathbf{S}$
                                 de los datos es:" )
                                                       )
                                                       )
                                       )),
                                       br(),
                                       tableOutput('mat_var_cov'),
                                       br(),
                                       withMathJax(),
                                       fluidRow(column(width=8,
                                                       p(tags$strong(
                                                         helpText("La matriz de Varianzas-Covarianzas-
                                 $\\Sigma_0$ propuesta es:") )
                                                       )
                                       )),
                                       br(),
                                       tableOutput('mat_var_cov_sigma0'),
                                       br(),
                                       tableOutput('PH_Sigma0'),
                                       br(),
                                       withMathJax(),
                                       fluidRow(column(width=8,
                                                       p(tags$em("Puedes consultar algo sobre la teoría
                            utilizada para este tipo de pruebas en:  "),
                                                         tags$a("Dar click acá:", href="parte2mu0.pdf")
                                                       )
                                       )),
                                       br(),
                                       withMathJax(),
                                       fluidRow(column(width=8,
                                                       p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
               es mayor o igual que \\( \\alpha \\) para un nivel
               de significancia del \\( (1-\\alpha)100\\% \\),  en
               caso contrario se rechaza."),
                                                         style="background-color:#a9f1a86b"
                                                       ))),
                                       br(),
                                       tableOutput('conclus_sigma0'),
                                       
                                       ### FU n-Grande
                                       hr(),
                                       fluidRow(column(width=8,
                                                       h4(p("PH sobre la matriz de Var-Cov usando una FU n grande",
                                                            style="color:black;text-align:center")),
                                                       style="background-color:lavender;border-radius: 10px")),
                                       br(),
                                       tableOutput('PH_Sigma0_ng'),
                                       br(),
                                       tableOutput('conclus_sigma0_ng'),
                                       br()
                                       
                              ),
                              
                              ########### usando-r
                              
                              tabPanel("Usando-R",
                                       br(),
                                       fluidRow(column(width=8,
                                                       h4(p("PH sobre la matriz de Var-Cov usando R para n pequeña",
                                                            style="color:black;text-align:center")),
                                                       style="background-color:lavender;border-radius: 10px")),
                                       br(),
                                       verbatimTextOutput("Res_sigma0r"),
                                       br(),
                                       fluidRow(column(width=8,
                                                       p(tags$em("Puedes consultar las ayudas de las funciones del R
                          usadas para estas pruebas en:",
                                                                 tags$a("stets::one_covar_matrix_test()",
                                                                        href="https://fhernanb.github.io/stests/reference/one_covar_matrix_test.html"
                                                                 )
                                                       ),".")
                                       )),
                                       br(),
                                       withMathJax(),
                                       fluidRow(column(width=8,
                                                       p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
                es mayor o igual que \\( \\alpha \\) para un nivel
                de significancia del \\( (1-\\alpha)100\\% \\),  en
                caso contrario se rechaza."),
                                                         style="background-color:#a9f1a86b"
                                                       ))),
                                       br(),
                                       textOutput("Conclus_PH_sigma0r"),
                                       
                                       ### Usando-r N-Grande
                                       hr(),
                                       fluidRow(column( width=8,
                                                        h4(p("PH sobre el vector de medias usando R para n grande",
                                                             style="color:black;text-align:center")),
                                                        style="background-color:lavender;border-radius: 10px")),
                                       br(),
                                       verbatimTextOutput("Res_sigma0r_ng"),
                                       br()
                                       
                              ), # Fin del tabPanel de: Sigma=Sigma_0, Usando-R
                              
                              
                              tabPanel("Teoría",
                                       br(),
                                       withMathJax(),
                                       fluidRow(column(width=8,
                                                       tags$a("Ver la documentación teórica acá:",
                                                              href="https://fhernanb.github.io/stests/reference/one_covar_matrix_test.html")
                                       ))
                                       
                              )
                              
                            )  ####  Fin del tabsetPanel: Sigma=Sigma0
                          )    ### fin mainPanle
                          
                        )     # fin del sidebarLayout
                        
               )  ### tabPanel: SIgma=igma0
               
             )  ### Fin del tabsetPanel-De una Población
             
             
             ################################################
             ################################################
             ######### FIN DEL PANEL DE UNA POBLACIÓN  ######
             ################################################
             ################################################
             
    ),    ### Fin del tabPanel-De una Población
    
    #####################################
    #####################################
    #### INICIO DOS POBLACIONES #########
    #####################################
    #####################################
    
    tabPanel(h4("PH para dos poblaciones",style={'color:#e905f5;'}),
             
             tabsetPanel(
               
               tabPanel("Datos:",
                        div(
                          sidebarPanel(
                            conditionalPanel(condition = "input.tabs2 == 'Datos:'",
                                             
                                             radioButtons("dataInputa","Elegir los datos a usar:",
                                                          list("Usar datos de muestra" = 1,"Cargar sus Datos" = 2),selected = 1 ),
                                             
                                             conditionalPanel(condition = "input.dataInputa=='2'",
                                                              hr(),
                                                              
                                                              fileInput("uploada","Descargue su arhivo delimitado (10MB_max):",multiple = FALSE,
                                                                        accept = c(
                                                                          "text/csv",
                                                                          "text/comma-separated-values,text/plain",
                                                                          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                                                                          ".csv",
                                                                          ".xlsx"),
                                                                        buttonLabel = "Cargar"),
                                                              
                                                              radioButtons("fileSepDFa","Delimiter:",
                                                                           list("Comma" = 1,"Tab" = 2,"Semicolon" = 3,"Space" = 4),selected = 1),
                                                              
                                                              checkboxInput("myHeada","Nombres de vars. en la primera fila",value = TRUE),
                                                              
                                                              conditionalPanel(condition = "input.fileSepDFa!='1'",
                                                                               
                                                                               checkboxInput("decimal","Usar la coma como decimal",value = FALSE))
                                                              
                                             ),  # Fin de conditional(...input.dataInputa=='2'), ie. Datos2
                                             
                                             selectizeInput("variables1a","Variables a utilizar Grupo-1",choices = NULL,selected = NULL,multiple = TRUE),
                                             
                                             selectizeInput("variables2a","Variables a utilizar Grupo-2",choices = NULL,selected = NULL,multiple = TRUE),
                                             generateInfo()
                                             
                            )  # Find de condition = "input.tabs2 == 'Datos:', ie. Datos
                            
                          ) # fin de sidebarPanel( width = 4)
                          
                        ),  # fin Barra opciones de datos ie. el Div
                        
                        ########################################################
                        ## Inicio Panel Principal De Datos Dos Poblaciones
                        ########################################################
                        
                        mainPanel(
                          fluidRow(column(width=8,
                                          tags$h3(
                                            # tagList(
                                            tags$li(
                                              actionLink("sobre_datos_2Pob","  ",icon("info")),
                                              class="dropdown",
                                              tags$code("Conjunto de datos completo")
                                            )
                                            #)
                                          )
                          )),
                          hr(),
                          dataTableOutput('tabla1a'),
                          hr(),
                          h3(p(code("Muestra de la Población-1"))),
                          hr(),
                          dataTableOutput('tabla2a'),
                          hr(),
                          h3(p(code("Muestra de la Población-2"))),
                          hr(),
                          dataTableOutput('tabla3a')
                        )  ### Find Panel-Principal de Datos2
               ),   ### Fin de tabPanel: "Datos:"
               
               
               #########################################################
               #########################################################
               ######### INICIO PANEL DE PH: Mu1=Mu2
               #########################################################
               #########################################################
               
               tabPanel("\\( H_0:  \\underline{\\mu}_1=\\underline{\\mu}_2 \\)",
                        
                        sidebarLayout(
                          sidebarPanel(
                            
                            textInput('mu0a',
                                      HTML('Entre el vector
                 \\( \\underline{\\delta}_0 \\)  para realizar la PH:
                 \\( H_0 \\)  :  \\( \\underline{\\mu}_1 - \\underline{\\mu}_2
                 = \\underline{\\delta}_0  \\) Ejemplo Input: 0,0,0 Dependiendo de la cantidad de variables')),
                            numericInput("alfaa",p("Entre el valor de \\( \\alpha \\)"),value = 0.05),
                            selectInput("PruebaAnaliticaa", p("Prueba a usar n pequeña:",
                                                              style="text-align:center"),
                                        choices=c("T2.test"=1,"HotellingsT2"=2),
                                        selected = 1),
                            selectInput("PruebaAnalitica_nga",p("Prueba a usar n grande:",
                                                                style="text-align:center"),
                                        choices=c("HotellingsT2"=1),
                                        selected = 1),
                            generateInfo()
                          ),  ### FIn de sidebarPanel(width = 4,....
                          
                          #######################################################
                          #######################################################
                          ## Inicio Panel Principal de Derecha para PH: Mu1=Mu2
                          #######################################################
                          #######################################################
                          
                          mainPanel(
                            
                            ####################################
                            ####################################
                            ##### Inicio Panel de PH Mu1=Mu2
                            ####################################
                            ####################################
                            
                            tabsetPanel(
                              type = "pills",
                              
                              ####################################
                              ## Inicio Panel de PH Mu1=Mu2, FU
                              ####################################
                              
                              tabPanel(withMathJax("Función-Usuario"),
                                       br(),
                                       fluidRow(column(width=8,
                                                       h4(p("PH sobre igualdad de vectores de medias
                usando una FU, para n pequeña, para \\( \\Sigma_1=\\Sigma_2 \\)",
                                                            style="color:black;text-align:center")),
                                                       style="background-color:lavender;border-radius: 10px")),
                                       br(),
                                       withMathJax(),
                                       fluidRow(column(width=8,
                                                       p('$$\\begin{cases}
                  H_0: \\ \\ \\underline{\\mu}_1 - \\underline{\\mu}_2  =
                  \\underline{\\delta}_0 \\\\
                  H_a: \\ \\ \\underline{\\mu}_1 - \\underline{\\mu}_2  \\neq
                  \\underline{\\delta}_0
                  \\end{cases}$$',
                                                         style="color:black;border:1px solid black; background-color:white"
                                                       ))),
                                       br(),
                                       tableOutput('PH_mu1_mu2_FU'),
                                       br(),
                                       withMathJax(),
                                       fluidRow(column(width=8,
                                                       p(tags$em("Puedes consultar algo sobre la teoría
                            utilizada para este tipo de pruebas en:  "),
                                                         tags$a("Dar click acá:", href="parte3mu0.pdf")
                                                       )
                                       )),
                                       br(),
                                       fluidRow(column(width=8,
                                                       p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
                  es mayor o igual que \\( \\alpha \\) para un nivel
                  de significancia del \\( (1-\\alpha)100\\% \\),  en
                  caso contrario se rechaza."),
                                                         style="background-color:#a9f1a86b"
                                                       ))),
                                       br(),
                                       tableOutput('conclus2a'),
                                       br(),
                                       
                                       fluidRow(column(width=8,
                                                       h4(p("PH sobre igualdad de vectores de medias
                 usando una FU, para n pequeña para \\( \\Sigma_1\\neq \\Sigma_2\\) Nel and Van
                 Der Merwe-1986",
                                                            style="color:black;text-align:center")),
                                                       style="background-color:lavender;border-radius: 10px")),
                                       br(),
                                       tableOutput('PH_mu1_mu2_FU_sigmas_dif'),
                                       br(),
                                       tableOutput('conclus4a'),
                                       hr(),
                                       
                                       ### FU-n-Grande
                                       br(),
                                       
                                       fluidRow(column( width=8,
                                                        h4(p("PH sobre igualdad de vectores de medias para n grande,
                    usando una FU",
                                                             style="color:black;text-align:center")),
                                                        style="background-color:lavender;border-radius: 10px")),
                                       br(),
                                       tableOutput('PH_mu1_mu2_FU_NG'),
                                       br(),
                                       tableOutput('conclus3a'),
                                       br()
                                       
                              ), #### Fin de Mu1=Mu2, FU
                              
                              
                              ##############################################
                              ## Inicio Panel de PH Mu1=Mu2, USANDO-R
                              ##############################################
                              
                              tabPanel("Usando-R",
                                       br(),
                                       fluidRow(column(width=8,
                                                       h4(p("PH sobre igualdad de vectores de medias usando R",
                                                            style="color:black;text-align:center")),
                                                       style="background-color:lavender;border-radius: 10px")),
                                       br(),
                                       verbatimTextOutput("Res_mu1_mu2_R"),
                                       br(),
                                       withMathJax(),
                                       br(),
                                       fluidRow(column(width=8,
                                                       p(tags$em("Puedes consultar las ayudas de las funciones del R
                          usadas para estas pruebas en:",
                                                                 tags$a("rrcov::T2.test()",
                                                                        href="https://rdrr.io/cran/rrcov/man/T2.test.html"
                                                                 ),
                                                                 tags$a(",  icsnp::HotellingsT2()",
                                                                        href="https://rdrr.io/cran/ICSNP/man/HotellingsT.html"
                                                                 )
                                                                 
                                                       ),".")
                                       )),
                                       br(),
                                       fluidRow(column(width=8,
                                                       p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
                  es mayor o igual que \\( \\alpha \\) para un nivel
                  de significancia del \\( (1-\\alpha)100\\% \\),  en
                  caso contrario se rechaza."),
                                                         style="background-color:#a9f1a86b"
                                                       ))),
                                       br(),
                                       
                                       ### Usando-R N-Grande
                                       hr(),
                                       fluidRow(column( width=8,
                                                        h4(p("Resultados de PH sobre igualdad de vectores de medias
                usando R Para n-grande",
                                                             style="color:black;text-align:center")),
                                                        style="background-color:lavender;border-radius: 10px")),
                                       br(),
                                       verbatimTextOutput("Res_mu1_mu2_R_NG"),
                                       br()
                                       
                              ), # Fin Panel: Mu1=Mu2, USANDO-R
                              
                              ##############################################
                              ## Inicio Panel de Teoría
                              ##############################################
                              
                              tabPanel("Teoría", "1234"
                                       
                                       
                              )
                              
                            )   ### Fin de tabsetPanel(type = "pills",
                          )     ### Fin de mainPanel() Mu1=Mu2
                        )     ### Fin de sidebarLayout()
               ), ### FIN de PANEL mu1=mu2
               
               
               #####################################################
               #####################################################
               ##### Inicio Panel de PH Mu1=Mu2, Muestras Pareadas
               #####################################################
               #####################################################
               
               tabPanel("\\( \\underline{\\mu}_1 = \\underline{\\mu}_2 \\)-Pareadas",
                        
                        sidebarLayout(
                          
                          sidebarPanel(
                            numericInput("alfa1a", p("Valor de \\( \\alpha \\)"),
                                         value = 0.05),
                            br(),
                            selectInput("Prueba_mp",p("Seleccione la prueba pareada a usar:"
                                                      ,style="text-align:center"),
                                        choices=c("approx.hotelling.diff.test"=1),
                                        selected = 1),
                            generateInfo()
                          ),
                          
                          mainPanel(
                            
                            tabsetPanel(type = "pills",
                                        
                                        ##############################################################
                                        ##########  INICIPO PANEL: Mu1=Mu2, MP, FU
                                        ##############################################################
                                        
                                        tabPanel("Función de Usuario",
                                                 br(),
                                                 fluidRow(column( width=8,
                                                                  h4(p("PH sobre igualdad de vectores de de medias
              usando una FU para muestras pareadas",
                                                                       style="color:black;text-align:center")),
                                                                  style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column( width=8,
                                                                  p('$$\\begin{cases}
               H_0: \\ \\ \\underline{\\mu}_1 = \\underline{\\mu}_2 \\\\
               H_a: \\ \\ \\underline{\\mu}_1 \\neq \\underline{\\mu}_2
               \\end{cases}$$',
                                                                    style="color:black;border:1px solid black;background-color:white"
                                                                  ))),
                                                 br(),
                                                 tableOutput('PH_mu1_mu2_FU_MPareadas'),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=8,
                                                                 p(tags$em("Puedes consultar algo sobre la teoría
                            utilizada para este tipo de pruebas en:  "),
                                                                   tags$a("Dar click acá:", href="parte4mu0.pdf")
                                                                 )
                                                 )),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
                es mayor o igual que \\( \\alpha \\) para un nivel
                de significancia del \\( (1-\\alpha)100\\% \\),  en
                caso contrario se rechaza."),
                                                                   style="background-color:#a9f1a86b"
                                                                 ))),
                                                 br(),
                                                 tableOutput('conclus6a'),
                                                 br()
                                                 
                                        ), #### Fin de Panel: Mu1=Mu2, MUESTRAS-PAREADAS, FU
                                        
                                        ##############################################################
                                        ##########  INICIPO PANEL: Mu1=Mu2, MP, USANDO-R
                                        ##############################################################
                                        
                                        tabPanel("Usando R",
                                                 br(),
                                                 fluidRow(column( width=8,
                                                                  h4(p("Resultados de PH sobre igualdad de vectores de medias
                  usando R para muestras pareadas",
                                                                       style="color:black;text-align:center")),
                                                                  style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 verbatimTextOutput("Res_mu1_mu2_R_MPareadas"),
                                                 br(),
                                                 withMathJax(),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 p(tags$em("Puedes consultar las ayudas de las funciones del R
                          usadas para estas pruebas en:",
                                                                           tags$a("ergm::approx.hotelling.diff.test()",
                                                                                  href="https://rdrr.io/cran/ergm/man/approx.hotelling.diff.test.html"
                                                                           )
                                                                 ),".")
                                                 )),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
                es mayor o igual que \\( \\alpha \\) para un nivel
                de significancia del \\( (1-\\alpha)100\\% \\),  en
                caso contrario se rechaza."),
                                                                   style="background-color:#a9f1a86b"
                                                                 ))),
                                                 br()
                                                 
                                        ), ### Fin Mu1=Mu2, Muestras Pareadas, usando-R
                                        
                                        ##############################################
                                        ## Inicio Panel de Teoría
                                        ##############################################
                                        
                                        tabPanel("Teoría", "1234"
                                                 
                                                 
                                        )
                                        
                                        
                            )   ### Fin de tabsetPanel(type = "pills",
                          )     ### Fin de mainPanel() Mu1=Mu2, MUESTRAS_PAREADAS
                        )     ### Fin de sidebarLayout()
               ), ### FIN de PANEL mu1=mu2, MUESTRAS-PAREADAS
               
               
               #####################################################
               #####################################################
               ##### Inicio Panel de PH sigma1=sigma2
               #####################################################
               #####################################################
               
               tabPanel("\\( H_0:  \\Sigma_1=\\Sigma_2 \\)",
                        
                        sidebarLayout(
                          
                          sidebarPanel(
                            
                            numericInput("alfa2a", label = p("Entre el valor de \\( \\alpha \\)"),value = 0.05),
                            br(),
                            selectInput("Prueba_box",p("Seleccione la PH de R a usar:",
                                                       style="text-align:center"),
                                        choices=c("boxM"=1),selected = 1),
                            generateInfo()
                          ),
                          
                          
                          mainPanel(
                            
                            tabsetPanel(type = "pills",
                                        
                                        ##############################################################
                                        ##########  INICIPO PANEL: Sigma1=Sigma2, FU
                                        ##############################################################
                                        
                                        tabPanel("Función de Usuario",
                                                 br(),
                                                 fluidRow(column( width=8,
                                                                  h4(p("Resultados de PH sobre igualdad de matrices de Var-Cov
                 usando una FU", style="color:black;text-align:center")),
                                                                  style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column( width=8,
                                                                  p('$$\\begin{cases}
                  H_0: \\ \\ \\Sigma_1 = \\Sigma_2 \\\\
                  H_a: \\ \\ \\Sigma_1 = \\Sigma_2
                  \\end{cases} $$',
                                                                    style="color:black;border:1px solid black; background-color:white"
                                                                  ))),
                                                 br(),
                                                 tableOutput('PH_sigma1_sigma2_FU'),
                                                 br(),
                                                 withMathJax(),
                                                 fluidRow(column(width=8,
                                                                 p(tags$em("Puedes consultar algo sobre la teoría
                            utilizada para este tipo de pruebas en:  "),
                                                                   tags$a("Dar click acá:", href="parte2mu0.pdf")
                                                                 )
                                                 )),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
                 es mayor o igual que \\( \\alpha \\) para un nivel
                 de significancia del \\( (1-\\alpha)100\\% \\),  en
                 caso contrario se rechaza."),
                                                                   style="background-color:#a9f1a86b"
                                                                 ))),
                                                 br(),
                                                 tableOutput('conclus8a'),
                                                 br()
                                                 
                                        ), ### Fin Panel Sigma1=SIgma2, FU
                                        
                                        
                                        ##############################################################
                                        ##########  INICIPO PANEL: Sigma1=Sigma2, USANDO-R
                                        ##############################################################
                                        
                                        tabPanel("Usando R",
                                                 br(),
                                                 fluidRow(column( width=8,
                                                                  h4(p("Resultados de PH sobre igualdad de matrices de Var-Cov usando R",
                                                                       style="color:black;text-align:center")),
                                                                  style="background-color:lavender;border-radius: 10px")),
                                                 br(),
                                                 verbatimTextOutput("Res_sigma1_sigma2_R"),
                                                 br(),
                                                 withMathJax(),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 p(tags$em("Puedes consultar las ayudas de las funciones del R
                          usadas para estas pruebas en:",
                                                                           tags$a("biotools::boxM()",
                                                                                  href="https://rdrr.io/cran/biotools/man/boxM.html"
                                                                           )
                                                                 ),".")
                                                 )),
                                                 br(),
                                                 fluidRow(column(width=8,
                                                                 p(em("No se rechaza \\(  H_0 \\) si valor p de la prueba
                 es mayor o igual que \\( \\alpha \\) para un nivel
                 de significancia del \\( (1-\\alpha)100\\% \\),  en
                 caso contrario se rechaza."),
                                                                   style="background-color:#a9f1a86b"
                                                                 ))),
                                                 br()
                                                 
                                        ), ### Fin Panel: Sigma1=Sigma2, usando-R
                                        
                                        ##############################################
                                        ## Inicio Panel de Teoría
                                        ##############################################
                                        
                                        tabPanel("Teoría", "1234"
                                                 
                                                 
                                        )
                                        
                            )   ### Fin de tabsetPanel(type = "pills",
                          )     ### Fin de mainPanel() Sigma1=Sigma2
                        )     ### Fin de sidebarLayout()
               ), ### FIN de PANEL Sigma1=Sigma2
               
               id = "tabs2",
               type = "pills"
               
             )    ### Fin del tabPanel   tabsetPanel (Antes de Datos:)
             
    ) ### Fin del tabPanel-De Dos Poblaciones
    
  )  ### Fin del tabsetPanel-Global, ie. De Una y Dos Poblaciones
  
)   # Fin de ui