Sie sind auf Seite 1von 7

---

title: "DRE - 2. Übung"


subtitle: "Vereinfachter Sudden-Death- und Johnson-Methode"
output: html_document
---

## Einleitung Vereinfachter Sudden-Death


Beim _sudden-death testing_ werden _i_ identische Gruppen mit jeweils der gleichen
Anzahl an _m_ Einheiten solange getestet, bis in jeder Gruppe der Erstausfall
auftritt.
Anschließend werden nur noch die Erstausfälle betrachtet und so behandelt, als
handele
es sich um vollständige Daten.

Die Lebensdauern der Erstausfälle werden in das Wahrscheinlichkeitsnetz der


unterstellten Verteilung eingetragen und eine _"sudden-death line"_ wird durch
die Datenpunkte gelegt. Diese Linie repräsentiert die Grundgesamtheit der
Erstausfälle
in Stichproben der Größe _m_. Parallel zur _"sudden-death line"_ wird durch
Anwendung
des Medianrang-Schätzers auf die Stichprobengröße _m_, d.h. die Anzahl der
Einheiten
in jeder Gruppe, eine Gerade ermittelt, die die Gesamtausfallverteilung beschreibt.

## Einbinden/Installieren der benötigten R Packages


```{r, Packages laden, message = FALSE, warning = FALSE}
if (!require(weibulltools)) {
install.packages("weibulltools") # Installationsroutine
require(weibulltools) # Einbinden des Packages
}

if (!require(tidyverse)) {
install.packages("tidyverse") # Installationsroutine
require(tidyverse) # Einbinden des Packages
}

if (!require(plotly)) {
install.packages("plotly") # Installationsroutine
require(plotly) # Einbinden des Packages
}
```

## Aufgabe 1 - Vereinfachter Sudden Death I

Ein Versuch umfasst 90 Probanden. Der Versuch wurde in zehn Versuchsreihen zu je


neun Probanden parallel durchgeführt. Jede Versuchsreihe wurde nach dem jeweils
ersten Ausfall abgebrochen. Der Vektor `cycles` enthält die Anzahl der Lastzyklen
der jeweils ersten Ausfälle jeder Versuchsreihe.

Lastspiele: $\left\{1.450, 1.950, 3.800, 6.750, 11.500, 12.300, 20.550, 35.000,


67.450, 110.500\right\}$

1. Berechnen Sie mit den Erstausfällen die beiden Weibullparameter $b$ und $T$ für
$F_{first}$.
2. Wie lautet die repräsentative Lastspielzahl, die den "mittleren Wert" abbildet?
Stellen Sie dazu die zweiparametrige Weibullgleichung um.
3. Wenn Sie nun nur die eine repräsentative Versuchsreihe betrachten, wie hoch
ist die Wahrscheinlichkeit des ersten Ausfalls?
4. Bestimmen Sie die Parameter der Weibullverteilung für die
Gesamtausfallverteilung.

Lösung zu Aufgabenteil 1:

```{r, Aufgabe 1 - Teil 1}


# Daten erzeugen:
cycles <- c(1450, 1950, 3800, 6750, 11500, 12300, 20550, 35000, 67450, 110500)

# Aufgabenteil 1: Ausfallwahrscheinlichkeiten mit Medianrang-Schätzer und


# Parameterschätzung mit der Weibullparameter mit Medianrang-
Regression.
mr_cycles <- mr_method(x = cycles)
mr_cycles

# Rang-Regression x on y:
mrr_first <- rank_regression(x = mr_cycles$characteristic, y = mr_cycles$prob,
event = mr_cycles$status, distribution = "weibull")
mrr_first

T_first <- mrr_first$coefficients[[1]]


T_first
b_first <- mrr_first$coefficients[[2]]
b_first

# Rang-Regression y on x (analog zu den Übungsfolien):


mr_cycles_adjusted <- mr_cycles %>%
select(rank, characteristic, prob) %>%
mutate(y_i = SPREDA::qsev(prob), x_i = log(characteristic))

mrr_y <- lm(y_i ~ x_i, data = mr_cycles_adjusted)


b_y <- mrr_y$coefficients[[2]]
b_y
d_y <- mrr_y$coefficients[[1]]
d_y

# Parameter der Weibull (analog zu den Übungsfolien):


b_first_y <- b_y
b_first_y
T_first_y <- exp(d_y / (-b_first_y))
T_first_y
```

Lösung zu Aufgabenteil 2:

```{r, Aufgabe 1 - Teil 2}


# Aufgabenteil 2:
# mit Parametern nach Rang-Regression x on y:
t_first_avg <- predict_quantile(p = 0.5, loc_sc_params =
mrr_first$loc_sc_coefficients)
t_first_avg

# mit Parametern nach Rang-Regression y on x (analog zu den Übungsfolien):


t_first_avg_y <- predict_quantile(p = 0.5, loc_sc_params = c(log(T_first_y), 1 /
b_first_y))
t_first_avg_y
```

Lösung zu Aufgabenteil 3:
```{r, Aufgabe 1 - Teil 3}
# Aufgabenteil 3:
# Übergang von der "sudden-death line" zur Gesamtausfallverteilung:
# Man interpretiert t_first_avg als den Zentralwert (Median), ist also der
# mittlere Wert, bei dem sich der erste Ausfall innerhalb von Stichproben des
# Umfanges n = 9 ereignen wird.

# t_first_avg wird daher als der erste Ausfall der gesamten Versuchsmatrix gesehen
# und folglich ist dieser Wert der Startpunkt für die geschätzte Weibullgerade,
# die das gesamte Ausfallverhalten repräsentiert.

# Benard's Approximationsformel:
F_ges_1 <- (1 - 0.3) / (9 + 0.4)
F_ges_1

# Plot-Paar:
c(t_first_avg, F_ges_1)

# Plot-Paar (analog zu Übungsfolien):


c(t_first_avg_y, F_ges_1)

# Eine Parallelverschiebung der Weibullgerade der Erstausfälle in diesen Punkt


# ergibt die Gesamtausfallverteilung.
```

Lösung zu Aufgabenteil 4:
$$F_{Ges}=1-exp\left[ -\left(\frac{t}{T_{Ges}}\right)^b\right]$$

Auflösung nach $T_{Ges}$ ergibt:

$$T_{Ges}=\frac{t}{\left[ ln\left(\frac{1}{1 - F_{Ges}}\right)^\frac{1}{b}\


right]}=\frac{t_{FirstAverage}}{\left[ ln\left(\frac{1}{1 - F_{Ges}}\right)^\
frac{1}{b}\right]}$$

```{r, Aufgabe 1 - Teil 4}


# Aufgabenteil 4:

# b_first = b_ges = b, da identisch für gleichen Schadensmechanismus bzw.


Werkstoff:
b_ges <- b_first
T_ges <- t_first_avg/(log(1 / (1 - F_ges_1)) ^ (1 / b_ges))
T_ges

# T_ges (analog zu Übungsfolien):


b_ges_y <- b_first_y
T_ges_y <- t_first_avg_y/(log(1 / (1 - F_ges_1)) ^ (1 / b_ges_y))
T_ges_y
```

## Aufgabe 2 - Vereinfachter Sudden Death II

Ein Versuch umfasst 90 Probanden. Der Versuch wurde in zehn Versuchsreihen zu je


neun Probanden parallel durchgeführt. Jede Versuchsreihe wurde nach dem jeweils
ersten Ausfall abgebrochen. Der Vektor `cycles` enthält die Anzahl der Lastzyklen
der jeweils ersten Ausfälle jeder Versuchsreihe.

Lastspiele: $\left\{1.450, 1.950, 3.800, 6.750, 11.500, 12.300, 20.550, 35.000,


67.450, 110.500\right\}$
1. Verwenden Sie nun das Weibullpapier und zeichnen Sie die Weibullgerade der
Erstausfälle ein.
2. Ermitteln Sie grafisch die repräsentative Lastspielzahl, die den mittleren Wert
abbildet -
d.h. lesen Sie diesen aus dem Diagramm ab.
3. Zeichnen Sie die entsprechende Weibullgerade für die horizontale Betrachtung,
d.h. für die Betrachtung der einen repräsentativen Versuchsreihe in Ihr
Weibullpapier ein.

Lösung zu Aufgabenteil 1:

```{r, Aufgabe 2 - Teil 1, warning = FALSE}


# Aufgabenteil 1: Probability Plot und Weibullgerade der Erstausfälle.

# Probability Plot:
plot_points <- plot_prob(x = mr_cycles$characteristic, y = mr_cycles$prob,
event = mr_cycles$status, distribution = "weibull",
title_main = "Weibull - Wahrscheinlichkeitsnetz",
title_x = "Lastzyklen", title_y = "Ausfallwahrscheinlichkeit in %",
title_trace = "Erstausfälle")
plot_points

# Weibullgerade (analog zu Übungsfolien):


plot_weib_first <- plot_mod(plot_points, x = mr_cycles$characteristic,
loc_sc_params = c(log(T_first_y), 1 / b_first_y), distribution = "weibull",
title_trace = "Erstausfallgerade")
plot_weib_first
```

Lösung zu Aufgabenteil 2:

```{r, Aufgabe 2 - Teil 2, warning = FALSE}


# Aufgabenteil 2: Grafische Ermittlung von t_first_avg

plot_t_first_avg <- plot_weib_first %>%


add_segments(x = c(1000, t_first_avg_y), xend = c(t_first_avg_y, t_first_avg_y),
y = c(SPREDA::qsev(0.5), SPREDA::qsev(0.5)),
yend = c(SPREDA::qsev(0.5), SPREDA::qsev(0.05)), color = I("black"),
name = "Grafische \n Medianbestimmung", line = list(dash = "dash", width = 1),
hoverinfo = "text", text = paste("t<sub>FirstAvg</sub>", ":",
round(t_first_avg_y, digits = 0)))
plot_t_first_avg
```

Lösung zu Aufgabenteil 3:

```{r, Aufgabe 2 - Teil 3, warning = FALSE}


# Aufgabenteil 3: Einzeichnen der Gesamtausfallgerade:

plot_weib_all <- plot_t_first_avg %>%


add_segments(x = 1000, xend = t_first_avg_y,
y = SPREDA::qsev(F_ges_1), yend = SPREDA::qsev(F_ges_1), color = I("#006400"),
line = list(dash = "dash", width = 1), showlegend = FALSE) %>%
add_trace(type = "scatter", mode = "markers", x = t_first_avg_y, y =
SPREDA::qsev(F_ges_1),
name = "Erstausfall-\nwahrscheinlichkeit", color = I("#006400"),
hoverinfo = "text", text = paste("F<sub>Ges 1</sub>", ":",
round(F_ges_1, digits = 3)))
plot_weib_all

# Punkte für Linie der Gesamtausfälle ermitteln über Steigung:


calc_points <- function(y1, y2, x1, b) {
x2 <- exp((y2 - y1) * (1 / b) + x1)
}

# Berechnung der Punkte bei y2 = 0.05 und y2 = 0.95


points_ges <- calc_points(y1 = c(SPREDA::qsev(F_ges_1), SPREDA::qsev(F_ges_1)),
y2 = c(SPREDA::qsev(0.06), SPREDA::qsev(0.98)),
x1 = c(log(t_first_avg_y), log(t_first_avg_y)), b = b_ges_y)

plot_weib_final <- plot_weib_all %>%


add_lines(x = points_ges, y = c(SPREDA::qsev(0.06), SPREDA::qsev(0.98)),
color = I("#FFA500"), name = "Gesamtausfallgerade",
hoverinfo = "text",
text = ~paste(paste("T", ":", round(T_ges_y, digits = 0)),
"<br>", paste("b", ":", round(b_ges_y, digits = 2)))) %>%
add_segments(x = c(1000, T_ges_y), xend = c(T_ges_y, T_ges_y),
y = c(SPREDA::qsev(0.6321206), SPREDA::qsev(0.6321206)),
yend = c(SPREDA::qsev(0.6321206), SPREDA::qsev(0.05)), color = I("#000080"),
name = "Grafische Bestimmung \n von T<sub>Ges</sub>", line = list(dash =
"dash", width = 1),
hoverinfo = "text", text = paste("T<sub>Ges</sub>", ":",
round(T_ges_y, digits = 0)))
plot_weib_final
```

## Aufgabe 3 - Vereinfachter Sudden Death III

Ein Versuch umfasst 90 Probanden. Der Versuch wurde in zehn Versuchsreihen zu je


neun Probanden parallel durchgeführt. Jede Versuchsreihe wurde nach dem jeweils
ersten Ausfall abgebrochen. Der Vektor `cycles` enthält die Anzahl der Lastzyklen
der jeweils ersten Ausfälle jeder Versuchsreihe.

Lastspiele: $\left\{1.450, 1.950, 3.800, 6.750, 11.500, 12.300, 20.550, 35.000,


67.450, 110.500\right\}$

1. Ermitteln Sie den repräsentativen Wert $t_{FirstAverage}$ nicht über die


Weibullverteilung
der Erstausfälle, sondern anhand des **arithmetischen Mittelwertes**.
2. Wenn Sie nun nur die eine repräsentative Versuchsreihe betrachten, wie hoch
ist die Wahrscheinlichkeit des ersten Ausfalls?
3. Bestimmen Sie die Parameter der Weibullverteilung für den gesamten Versuch.
4. Vergleichen Sie die Ergebnisse der Aufgabe 1.4 mit den Ergebnissen der Aufgabe
3.3.
Was können Sie feststellen?

Lösung zu Aufgabenteil 1:

```{r, Aufgabe 3 - Teil 1}


# Aufgabenteil 1: t_first_avg mit arithmet. Mittelwert.

t_first_mean <- mean(cycles)


t_first_mean
```

Lösung zu Aufgabenteil 2:
```{r, Aufgabe 3 - Teil 2}
# Aufgabenteil 2: Immernoch F_ges_1, da Stichprobengröße = 9 und erster Ausfall.
F_ges_1
```

Lösung zu Aufgabenteil 3 und 4:


Die Bestimmung der Weibullparameter ist unter Verwendung der _Sudden-Death_-Methode
nicht möglich, da der ermittelte Wert für $t_{FirstAverage}$ nicht dem 50%-Quantil
der Erstausfallgerade entspricht.
Folglich kann der Parameter *b* aus dieser Verteilung nicht genommen werden.

## Einleitung Johnson-Methode
Bei der Methode nach Johnson werden neben den ausgefallenen Einheiten auch die
nicht ausgefallenen Einheiten zur Schätzung der Ausfallwahrscheinlichkeiten
herangezogen. Bei diesem Verfahren werden alle in den Betrachtungszeitraum
fallenden
Einheiten nach ihrer Betriebszeit, den Lastzyklen oder der zurückgelegten
Fahrstrecke
aufsteigend sortiert. Liegen vor dem *i*-ten Ausfall Einheiten, die nicht
ausgefallen
sind, so wird ein nach oben korrigierter, adjustierter Rang für den *i*-ten Ausfall
gebildet, der die potentiellen Anwärter berücksichtigt.

Adjustierter Rang: $$j_i = j_{i-1} + \Delta j_{i, i-1}$$

Mit dem Zuwachs: $$\Delta j_{i, i-1} = \frac{n+1-j_{i-1}}{1+n-n_{davor}}$$


Die Ausfallwahrscheinlichkeiten werden dann mit der folgenden Formel geschätzt:
$$\hat{F}(t_i)\approx \frac{j_i - 0,3}{n + 0,4}$$

## Aufgabe 4 - Johnson-Methode
Ein Versuch umfasst 90 Probanden. Der Versuch wurde in zehn Versuchsreihen zu je
neun Probanden parallel durchgeführt. Jede Versuchsreihe wurde nach dem jeweils
ersten Ausfall abgebrochen. Der Vektor `cycles` enthält die Anzahl der Lastzyklen
der jeweils ersten Ausfälle jeder Versuchsreihe.

Lastspiele: $\left\{1.450, 1.950, 3.800, 6.750, 11.500, 12.300, 20.550, 35.000,


67.450, 110.500\right\}$

1. Schätzen Sie die Ausfallwahrscheinlichkeiten mit der Johnson-Methode, d.h.


nutzen
Sie zur Ermittlung der Wahrscheinlichkeiten auch die nicht ausgefallenen
Einheiten.
2. Tragen Sie Ihre Ergebnisse aus Aufgabenteil 1 ins Weibull-
Wahrscheinlichkeitsnetz ein.
3. Verwenden Sie die Medianrang-Regression zur Schätzung Weibullparameter b und T.
Vergleichen Sie Ihr Ergebnis mit den Ergebnissen aus Aufgabe 1.4.

Lösung zu Aufgabenteil 1:

```{r, Aufgabe 4 - Teil 1}


# Aufgabenteil 1: Ausfallwahrscheinlichkeiten nach Johnson.
# Dazu muss im ersten Schritt der Vektor cycles angepasst werden, sodass auch
# nicht ausgefallene Einheiten vorkommen. Zusätzlich muss ein Vektor status
eingeführt
# werden, der darüber Auskunft gibt, ob eine Einheit ausgefallen ist (=1) oder
nicht (=0).

cycles_john <- rep(cycles, 9)


status <- ifelse(test = duplicated(cycles_john), yes = 0, no = 1)
df_john <- johnson_method(x = cycles_john, event = status)
df_john
```

Lösung zu Aufgabenteil 2:

```{r, Aufgabe 4 - Teil 2, warning = FALSE}


# Aufgabenteil 2: Probability Plot:
plot_john_prob <- plot_prob(x = df_john$characteristic, y = df_john$prob,
event = df_john$status, distribution = "weibull",
title_main = "Weibullauswertung - Johnson-Methode", title_x = "Lastzyklen",
title_y = "Ausfallwahrscheinlichkeit in %", title_trace = "Ausfälle")

plot_john_prob
```

Lösung zu Aufgabenteil 3:

```{r, Aufgabe 4 - Teil 3}


# Aufgabenteil 3: Rang-Regression x on y.
mrr_john <- rank_regression(x = df_john$characteristic, y = df_john$prob,
event = df_john$status, distribution = "weibull")
T_john <- mrr_john$coefficients[[1]]
T_john
b_john <- mrr_john$coefficients[[2]]
b_john

# Vergleich mit Sudden-Death, wo MRR x on y:


# T-Vergleich:
c(T_ges, T_john)
# b-Vergleich:
c(b_ges, b_john)

# MRR y on x:
x_john <- df_john$characteristic[df_john$status == 1]
y_john <- df_john$prob[df_john$status == 1]
mrr_john_y <- lm(SPREDA::qsev(y_john) ~ log(x_john))

b_john_y <- mrr_john_y$coefficients[[2]]


b_john_y
T_john_y <- exp(mrr_john_y$coefficients[[1]] / (-b_john_y))
T_john_y

# Vergleich mit Sudden-Death, wo MRR y on x:


# T-Vergleich:
c(T_ges_y, T_john_y)

# b-Vergleich:
c(b_ges_y, b_john_y)
```

Das könnte Ihnen auch gefallen