inst/apps/samplesize_determination_variable/dokumentation/help_dialogs.R

# test-parameter -----------
observeEvent(input$help_test_params,{
  showModal(
    modalDialog(
      title = HTML("Hile/Erläuterung zu den Test-Parametern (<a href='Manual_Design_Verification.pdf'>Manual</a>, <a href='montgomery.pdf'>Montgomery</a>)"),
      tags$div(

        tags$p(
          tags$b(HTML("Geforderte Minimale i.o.-Rate (p<sub>min</sub>) des Produktionsprozesses")),
          tags$p(HTML("Dies ist die sich aus der Risiko-Analyse des Leistungsmerkmals ergebende Forderung an den
                      Produktionsprozess. D.h. der Produktionsprozess muß so 'designed' sein dass produzierte Teile
                      bzgl. diese Leistungsmerkmales mit mindestens dieser Rate/Wahrscheinlichkeit (p<sub>min</sub>) innerhalb der
                      Spezifikation liegen."))
        ),
        tags$p(
          tags$b("Geforderte Test-Power"),
          tags$p(HTML("Dies ist die sich aus der Risiko-Anlayse des Leistungsmerkmals ergebende Forderung an
                      die Power ('Qualität') des Design-Verifikations-Tests. Die Test-Power gibt an mit welcher
                      (Mindest-) Wahrscheinlichkeit der verwendete Test
                      Produktions-Prozesse detektiert die den Anforderungen (bzgl. p<sub>min</sub>) NICHT entsprechen.
                      Bsp.: Lautet die Forderung daß das Merkmal mit mind. 95% Wahrscheinlichkeit i.o. sein soll, der Produktionsprozess 'fertigt'
                      die Teile aber nur mit einer Wahrscheinlichkeit von z.B. 94% i.o. so muß der verwendete Design-Verifikations-Test
diesen Prozess mit einer Wahrscheinlichkeit von mind. der Test-Power als nicht den Anforderungen entsprechend beurteilen."))
        )


      )
    )
  )
})

# test-resultat und statistiken -----------
observeEvent(input$help_test_result,{
  showModal(
    modalDialog(
      title = HTML("Hile/Erläuterung zu den Statistiken und dem Test-Ergebnis (<a href='Manual_Design_Verification.pdf'>Manual</a>, <a href='montgomery.pdf'>Montgomery</a>)"),
      tags$div(
        tags$p(
          tags$b("Statistiken und Testergebnis"),
          tags$p("Die hier angeführten Statistiken sind zur Nachvollziehbarkeit angegeben. Die entscheidenen Statistiken
                 berechnen sich nach folgender Formel:"),
          tags$ul(
            tags$li("Toleranz-Interval-Limit: (Siehe ISO 16269-6:2014 Annex B Form A on page 17)",
                    tags$ol(
                      tags$li(HTML("Lower Tolerance-Limit: <br/> Stichprobenmittelwert - kc * Stichproben-Standardabweichung")),
                      tags$li(HTML("Upper Tolerance-Limit: <br/> Stichprobenmittelwert + kc * Stichproben-Standardabweichung"))
                    )),
            tags$li(HTML("kc-Faktor: (Siehe ISO 16269-6:2014 Formula (A.13) on page 15); Ausgewählte kc-Werte
                      sind in den Tabellen C1-C4 in dieser Norm tabelliert. Beachte: Das in dieser Norm
                      angegebene Konfidenz-Level des Tests entspricht exakt der hier definierten Test-Power!
                    <a href='Manual_Design_Verification.pdf'> (siehe Manual, Kap. Herleitung der Test-Power) </a>"))
          ),
          tags$p(style = "color:blue", "Testergebnis:"),
          tags$p("Der Design-Verifikationstest für variable Merkmale gilt als bestanden falls das aufgrund der Stichprobenergebnisse
                   berechnete Toleranz-Intervall innerhalb der Spezifikations-Grenzen liegt.")
        )
      )
    )
  )
})

# Empfehlung Stichprobengröße  ------------------
observeEvent(
  input$help_design_aid,
  {
    showModal(
      modalDialog(
        title = HTML("Hile/Erläuterung zur Empfehlung Stichprobengröße (<a href='Manual_Design_Verification.pdf'>Manual</a>, <a href='montgomery.pdf'>Montgomery</a>)"),
        tags$div(

          tags$p(
            tags$b("Angestrebte Wahrscheinlichkeit für Testerfolg"),
            tags$p(HTML("Der für variable Leistungsmerkmale verwendete Design-Verifikations-Test
erfüllt die Anforderungen aus der Risikoanalyse (bzgl. p<sub>min</sub> und Test-Power) unabhängig(!) von der
                      Stichprobengröße. Diese Tatsache kann genutzt werden um mit Hilfe von Versuchsergebnissen aus der
                      Vorentwicklung die Stichprobengröße so zu wählen das der Test mit einer gewissen vorgegebenen Wahrscheinlichkeit
                      bestanden wird."))
          ),

          tags$p(
            tags$b("Empfehlung Stichprobengröße"),
            tags$p( style = "color:red", "Die Empfehlung an die Stichprobengröße unterstellt(!): Tatsächlicher ('wahrer') Produktions-Mittelwert und
               -Variabilität sind GLEICH den empirisch ermittelten Werten aus den Vorversuchen."),
            tags$p(HTML(
              "D.h. die zur Stichprobengröße verwendeten Vorversuche müssen am Prozess durchgeführt werden wie er dann
zum Design-Freeze (Meilenstein 3) vorliegt, damit diese Annahme sinnvoll ist.
<span style='color:red'> Design-Modifikationen zwischen Vorversuchen und Design-Verifikations-Test machen diese Annahme zunichte
und damit auch die Empfehlung zur Stichprobengröße!</span>
Die Empfehlung ist umso unsicherer,
je kleiner die Anzahl der Vorversuche ist mit denen die Prozess-Parameter bestimmt wurden! Für eine Herleitung
              der Formel nach der diese Empfehlung berechnet wird siehe das entsprechende Kapitel im Manual."))
          ),

          tags$p(
            tags$b("Gewünschte Stichprobengröße"),
            tags$p(HTML("Andererseits kann man zu einer festgelegten bzw. 'gewünschten' Stichprobengröße aufgrund der Vorversuchsergebnisse
                        die Wahrscheinlichkeit berechnen mit der der Test bestanden wird."))
          ),

          tags$p(
            tags$b("Kommentar zur Erfolgswahrscheinlichkeit"),
            tags$p(HTML("Wählt man die Stichprobengröße die zu einer geschätzten Erfolgswahrscheinlichkeit von bspw. 95% führt, so
kann man dies folgendermaßen interpretieren:
Macht man insgesamt 50 einzelne Tests, da man 50 Leistungsmerkmale definiert hat, wobei für jeden Test die
Stichprobengröße so gewählt wurde das die gschätzte Erfolgswahrscheinlichkeit 95% beträgt so erwartet man:
Bei ca. 2-3 Tests beurteilt man den Test dann fälschlicherweise als nicht den Anforderungen entsprechend.
Wählt man die Stichproben für die Tests so das die geschätzte Erfolgswahrscheinlichkeit für alle Tests 98%
beträgt, so erwartet man: Ca. ein Test beurteilt den Produktionsprozess dann fälschlicherweise als nicht den
Anforderungen entsprechend.
Wählt man für alle Tests Stichprobengrößen die einer geschätzten Erfolgswahrscheinlichkeit von 99%
entsprechen, so erwartet man alle Tests korrekterweise zu bestehen.
Im Regelfall wird man die Erfolgswahrscheinlichkeit nicht für alle Leistungstests gleich wählen, da dies im
Einzelfall sonst zu unvertretbar großen Stichproben führen würde. Generell muß man also bei der Wahl
der Stichprobengröße für ein Leistungsmerkmal immer auch alle anderen im Blick haben und gegebene-
falls Kompromisse finden. Letztendlich wird durch die Festlegung der Stichprobengröße für ein einzelnes
Leistungsmerkmal indirekt die Gesamtanzahl der benötigten Enprodukte für den Leistungstest
festgelegt."))
          )

        )
      )
    )
  })

# attributive Stichprobengröße --------------
observeEvent(
  input$help_sample_size_determination_attributiv,
  {
    showModal(
      modalDialog(
        title = HTML("Hile/Erläuterung Design-Verifikations-Tests von attributiven Leistungsmerkmalen (<a href='Manual_Design_Verification.pdf'>Manual</a>, <a href='montgomery.pdf'>Montgomery</a>)"),
        tags$div(

          tags$p(
            tags$b(HTML("Geforderte min i.o.-Rate des Produktionsprozesses p<sub>min</sub>")),
            tags$p(HTML("Dies ist die sich aus der Risiko-Analyse des Leistungsmerkmales ergebende Anforderung
                   an den Produktionsprozess. D.h. der Produktionsprozess muß so gestaltet sein das gefertigte
                   Teile mit einer Wahrscheinlichkeit von mindestens p<sub>min</sub> i.o. sind."))
          ),

          tags$p(
            tags$b("Geforderte Test-Power"),
            tags$p(HTML("In der Risiko-Analyse festgelegte Power des Tests mit der die Anforderung an den Produktionsprozess
                   geprüft werden muß. Die Power gibt an mit welcher Wahrscheinlichkeit der Test Prozesse als n.i.o.
                        bewertet, die den Anforderungen nicht entsprechen."))
          ),

          tags$p(
            tags$b("OC-Kurven (operating characteristic des Tests)"),
            tags$p("Wahrscheinlichkeit für das Test-Resultat 'Design ist n.i.o.' als Funktion
                   der i.o.-Rate des Produktionsprozesses. OC-Kurven dienen dazu die Eigenschaften
                   eines Tests zu analysieren. Die angegebenen OC-Kurven werden mit Hilfe der
                   Binomialverteilung berechnet.")
          ),

          tags$p(
            tags$b("Testplan"),
            tags$p("Aus den gestellten Anforderungen ergibt sich dann der Testplan (n,c) mit dem dieses
                   Leistungsmerkmal geprüft werden muß. n bezeichnet dabei die Stichprobengröße.
                   Finden sich mehr als c n.i.o.-Elemente in der Stichprobe so wird der Prozess als nicht
                   den Anforderungen entsprechend beurteilt.")
          )
        )
      )
    )
  }
)


# messwerte-plot -------------------
observeEvent(
  input$help_messwerte_plot,
  {
    showModal(
      modalDialog(
        title = HTML("Hile/Erläuterung Messwert-Plot (<a href='Manual_Design_Verification.pdf'>Manual</a>, <a href='montgomery.pdf'>Montgomery</a>)"),
        tags$div(

          tags$p(
            tags$b("Generelles"),
            tags$ul(
              tags$li("Die Daten sollten in der Reihenfolge eingetragen werden, in der sie erhoben wurden. Trends oder
                      Auffälligkeiten lassen sich dann evtl. in der graphischen  Darstellung erkennen."),
              tags$li("In der Spalte 'valid' können Messwerte selektiv aus der Auswertung genommen werden. Dadurch
                      lässt sich insbesondere der Einfluß von auffälligen Messwerten schnell untersuchen."),
              tags$li("Durch Umschalten auf 'Manual scaling' können die Plot-Achsen fixiert werden")
            )
          ),

          tags$p(
            tags$b("Eingezeichnete Hilfslinien"),
            tags$ul(
              tags$li("Toleranz-Limit und Spezifikations-Limit. Je weiter das Toleranz-Limit vom Spezifikations-Limit
                      entfernt ist, desto sicherer ist das Design."),
              tags$li("Stichproben-Mittelwert und Mittelwert +/- 3 * Standardabweichung; Six-Sigma-Ansatz:
                      Design wird als i.o. bezeichnet falls dieses Band komplett innerhalb der Spezifikation liegt.
                      Der Ansatz über Toleranz-Intervalle beruht auf genau der gleichen Idee, macht die Einflüsse
                      von Stichprobengröße und geforderter Test-Qualität (Power) aber explizit.")
            )
          )
        )
      )
    )
  }
)

# design-aid-plot hilfe -------
observeEvent(
  input$help_bootstrap,
  {
    showModal(
      modalDialog(
        title = HTML("Hile/Erläuterung Graphik Stichprobengröße-Empfehlung (<a href='Manual_Design_Verification.pdf'>Manual</a>, <a href='montgomery.pdf'>Montgomery</a>)"),
        tags$div(

          tags$p(
            tags$b("Erläuterung zur Graphik"),
            tags$p(HTML("In der Graphik sind zunächst die aus der Versuchsreihe geschätzten Werte für Prozess-Mittelwert und -Standardabweichung
                   als schwarzes Kreuz eingetragen. Die schwarze Linie kennzeichnet die Trennung zwischen i.o.- und n.i.o-Prozessesen. D.h.
                   für Merkmale mit unterer Spezifikationsgrenze sind alle Prozesse mit 'tatsächlichen' Prozess-Parametern überhalb dieser
                   Linie i.o. (d.h. p > p<sub>min</sub>).<br/>
Die farblichen Linien markieren die Wahrscheinlichkeit mit der ein Prozess auf dieser Linie den Test bei gegebener
                        Stichprobengröße n besteht. Die Stichprobengröße kann über den Parameter 'Gewünschte Stichprobengröße'
                        variiert werden. Kommentar: Erhöht man die Stichprobengröße so erkennt man das der farbliche
                        'Fächer' schmäler wird. Dies bedeutet die Trennschärfe, bzw. die Qualität des Tests wird mit
                        zunehmendem n wie erwartet besser."))
          ),

          tags$p(
            tags$b("Simulation/Bestimmung Stichprobengröße"),
            tags$p("Die Empfehlung zur Stichprobengröße aus den Vorversuchen beruht auf folgender Idee: Man nimmt an das die
                   'wahren' Prozessparameter gleich den empirisch bestimmten aus der Vorversuchsreihe sind. Dann kann man an
                   diesem Prozess beliebig viele Leistungstests simulieren (Stichproben der Größe n aus einer Normalverteilten Zufallsvariablen
mit diesen Parametern ziehen). Aus jeder dieser simulierten
                   Stichprobe kann man dann den Mittelwert und die Standardabweichung berechen. Dies wird 1000 mal gemacht und in die
                   Graphik eingezeichnet. Jeder eingezeichnete Punkt ist also ein potentiel mögliches Ergebnis des kommenden
                   Leistungstests. Wobei man sieht das sich die möglichen Ergebnisse natürlich am schwarzen Kreuz häufen, der per
                   Annahme ja der 'wahre' Prozess ist. Die Wahrscheinlichkeit den Test nicht zu bestehn könnte man im Prinzip durch
                   Abzählen der Dreieck ermitteln, die nicht bestandene Leistungstests markieren.")
          ),

          tags$p(
            tags$b("Technische Randbemerkung"),
            tags$p(
              HTML("Die beschriebene Simmulation nennt man Bootstrapping. Beim Bootstrapping versucht man anhand der vorhandenen Stichprobe weiterführende Aussagen über die
                   zugrundeliegende Grundgesamtheit, d.h. hier den Produktionsprozess, zu machen. Grob gesagt ist das
                   Bootstrapping ein 'Was wäre wenn ...'-Ansatz: Z.B. Was wäre das Testergebnis wenn dieser eine Messwert
                   nicht dabei ist. Oder: Wie wäre die Schätzung von Produktions-Mittelwert und -Standardabweichung
                   wenn dieser und/oder jene Messwert nicht in der Stichprobe ist. Genau das macht das 'ordinary'
                   bootstrapping: Man 'zieht' aus der vorhandenen Stichprobe Messwerte mit 'zurücklegen'. Die so
                   erhaltenen Messwerte behandelt man als 'neue' Stichprobe und berechnet mit dieser 'neuen' Stichprobe
                   alle interessanten Werte neu. Ziehen mit Zurücklegen heißt, das in der 'neuen' Stichprobe ein Meßwert
                   auch mehrmals vorkommen kann. <br/>
                   Dieses Vorgehen habe ich für die zentralen Größen Prozess-Mittelwert und -Standardabweichung graphisch
                   dargestellt. An der Darstellung kann man dann sehr deutlich sehen wie 'unsicher' die Schätzungen
                   der Prozessparameter aufgrund der Vorversuch-Ergebnisse sind. Für weiter Details zum Bootstrapping
                   siehe z.B. <a href=https://github.com/desmond-ong/doBootstrap/blob/master/doBootstrapPrimer.pdf> Bootstrap-Primer </a>")
            ),
            tags$p(HTML("Die default Einstellung zur simulation/bootstrapping ist 'parametric' da diese anschaulicher ist. Die
                   Darstellung 'ordinary' ist etwas schwieriger zu interpretieren, liefert aber zusätzliche Information über den
                   Einfluß einzelner Messwerte auf das Ergebnis. Mit etwas Übung kann man an dieser Darstellung gut erkennen
                   ob Ausreißer in den experimentellen Daten vorhanden sind und welchen Einfluß sie auf das Ergebnis haben.
Grob gesagt gilt: Unterscheiden sich die 'Punkt-Wolken' für die beiden verschiedenen Arten von bootstrapping auffällig
so ist das ein Hinweis das die Daten nicht normalverteilt und unabhängig sind.
                   <p style = 'color:red;'> Sind Ausreißer in der Messreihe vorhanden so ist das ein Hinweis das die Daten evtl. NICHT normalverteilt sind
                   und damit evtl. eine wichtige Annahme für die Aussagekraft der Leistungstests verletzt ist </p>"))
          )
        )
      )
    )
  }
)
stephanGit/leistungstests documentation built on June 13, 2018, 8:24 p.m.