Statistische Tests in BioRender Graphing: Methoden, Annahmeprüfungen und R-Pakete Statistische Tests in BioRender Graphing: Methoden, Annahmeprüfungen und R-Pakete

Statistische Tests in BioRender Graphing: Methoden, Annahmeprüfungen und R-Pakete

Unten finden Sie die spezifischen Pakete, Funktionen und Methoden, die für jeden Test verwendet werden. Zur Transparenz werden alle Berechnungen mit R (Version 4.5.1) durchgeführt.

Inhaltsverzeichnis

  1. Liste der R-Pakete
  2. Statistische Annahmeprüfungen
  3. Ein-Stichproben-t-Test (und nichtparametrische Tests)
  4. Zwei-Stichproben-t-Test (und nichtparametrische Tests)
  5. Einweg-ANOVA (und nichtparametrische Tests) und multiple Vergleichstests
  6. Zweiweg-ANOVA und multiple Vergleichstests
  7. Korrelation
  8. Logistische Regression
  9. Dosis-Wirkungs-Kurven
  10. Überlebensanalyse

Alle R-Pakete

  • R Version 4.5.1
  • afex Version 1.3-1
  • dplyr Version 1.2.1
  • effsize Version 0.8.1
  • emmeans Version 1.10.1
  • httr2 Version 1.0.0
  • jsonlite Version 1.8.4
  • lme4 Version 1.1-37
  • logger Version 0.2.2
  • multcomp Version 1.4-20
  • nlraa Version 1.9.3
  • OptimModel Version 2.0-3
  • PMCMRplus Version 1.9.6
  • readr Version 2.1.5
  • rjson Version 0.2.21
  • rstatix Version 0.7.1
  • survival Version 3.8-3
  • tictoc Version 1.1
  • tidyr Version 1.3.0
  • uuid Version 1.2-0

Statistische Annahmeprüfungen

Unsere Plattform führt automatisch Tests durch, um Annahmen zu überprüfen, die für jeden Analysetyp wesentlich sind. Basierend auf diesen Ergebnissen schlagen wir vorselektierte Analyseoptionen vor. Wenn Sie mit der Maus über die als „vorgeschlagen“ markierten Schaltflächen in der App fahren, werden Details zu diesen Empfehlungen angezeigt.

Shapiro-Wilk-Test auf Normalverteilung

Parametrische t-Tests und ANOVA setzen voraus, dass Ihr Datensatz normalverteilt ist (folgt einer Standardglockenkurve).

Wir führen im Hintergrund den Shapiro-Wilk-Test auf Normalverteilung durch, um zu prüfen, ob Ihr Datensatz diese Annahme verletzt.

Wenn der Shapiro-Wilk-Test (p > 0,05) die Hypothese der Normalverteilung nicht ablehnen kann, empfehlen wir parametrische Tests (z. B. t-Test).

Wenn der Shapiro-Wilk-Test (p ≤ 0,05) anzeigt, dass die Daten nicht normalverteilt sind, transformieren wir die Daten intern logarithmisch und testen erneut. Wenn der anschließende Test darauf hindeutet, dass die Daten im Log-Raum normalverteilt sind, empfehlen wir parametrische Tests auf den logarithmisch transformierten Daten (z. B. lognormaler t-Test).

Wenn beide Shapiro-Wilk-Tests die Hypothese der Normalverteilung ablehnen, schlagen wir nichtparametrische Alternativen vor (z. B. Mann-Whitney-U-Test).

Diese Prüfung verwendet die Funktion shapiro_test aus rstatix.

Levene-Test auf Varianzgleichheit

Parametrische t-Tests und ANOVA setzen voraus, dass die Varianz der Beobachtungen in verschiedenen Gruppen Ihrer Daten ungefähr gleich ist.

Wir führen den Levene-Test auf Varianzgleichheit durch, um zu prüfen, ob Ihr Datensatz diese Annahme verletzt.

Wenn die Varianzen unterschiedlich sind, empfehlen wir die Welch-Korrektur, um ungleiche Varianzen in t-Tests oder ANOVA zu berücksichtigen.

Diese Prüfung verwendet die Funktion levene_test aus rstatix.

Wir verwenden die Standardeinstellung, die den Median als Zentrum jeder Gruppe für einen robusteren Test anwendet.


Ein-Stichproben-t-Test (und nichtparametrische Tests)

Ein Ein-Stichproben-t-Test bestimmt, ob der Mittelwert einer einzelnen Stichprobe signifikant von einem bekannten oder angenommenen Wert abweicht. Er setzt voraus, dass die Daten aus einer normalverteilten Population stammen.

Ein-Stichproben-t-Test

Wir verwenden eine eigene Basis-R-Implementierung, die die t-Statistik direkt als (Stichprobenmittelwert − μ) / (SD / √n) berechnet und pt und qt aus dem stats-Paket für p-Werte bzw. kritische Werte verwendet. Die Freiheitsgrade sind n − 1. Konfidenzintervalle werden für die Differenz (Stichprobenmittelwert − μ) berechnet: für einen zweiseitigen Test diff ± qt(1 − α/2, df) × SE; für einseitige Tests ist das CI [diff − qt(conf_level, df) × SE, Inf] oder [−Inf, diff + qt(conf_level, df) × SE]. Der Effektstärkemaß Cohen's d wird als (Stichprobenmittelwert − μ) / SD angegeben.

Ein-Stichproben-Verhältnis-t-Test (lognormal)

Wenn erwartet wird, dass die Daten einer lognormalen Verteilung folgen, testet der Verhältnis-t-Test, ob der geometrische Mittelwert von einem angenommenen positiven Wert abweicht. Der Test transformiert sowohl die Daten als auch den angenommenen Wert logarithmisch, führt den identischen eigenen t-Test auf der Log-Skala durch und transformiert die Ergebnisse zurück. Der geometrische Mittelwert, die geometrische SD und das Verhältnis zum theoretischen Wert werden auf der Originalskala zurückgegeben, zusammen mit Konfidenzintervallen für sowohl das Verhältnis als auch den geometrischen Mittelwert.

Ein-Stichproben-Wilcoxon-Vorzeichen-Rang-Test

Die nichtparametrische Alternative für Ein-Stichproben-Vergleiche. Wir verwenden wilcox.test aus dem stats-Paket mit exact = NULL, wodurch Basis-R die exakte oder asymptotische Methode auswählt. Das Flag p_value_exact wird auf TRUE gesetzt, wenn die Anzahl der nicht-null Differenzen n_nz < 50 (streng) ist und keine gebundenen Differenzen vorliegen, was dem erwarteten Verhalten unter R's interner Logik entspricht. Andernfalls wird eine Normalapproximation mit Kontinuitätskorrektur angewandt (correct = TRUE).

Der Hodges-Lehmann-Pseudomedian wird als Lage-Schätzer angegeben: Er ist der Median aller paarweisen Walsh-Durchschnitte (x_i + x_j) / 2 für i ≤ j (einschließlich Selbstpaare i = j), berechnet auf dem ursprünglichen Werte-Vektor — dies ist der H-L-Schätzer des Populationsmedians. Die V-Statistik (Summe der positiven Vorzeichenränge) und separate Summen der positiven und negativen Ränge werden ebenfalls zurückgegeben.


Zwei-Stichproben-t-Test (und nichtparametrische Tests)

Zwei-Stichproben-Tests vergleichen ein kontinuierliches Ergebnis zwischen zwei Gruppen. BioRender bietet parametrische t-Tests (unter Annahme der Normalverteilung) und nichtparametrische Alternativen ohne Verteilungsannahmen sowie lognormale Varianten für Daten, bei denen Verhältnisse statt Differenzen der relevante Effekt sind.

Alle parametrischen Zwei-Stichproben-Tests verwenden t_test aus dem rstatix-Paket, und alle nichtparametrischen Tests verwenden wilcox_test aus demselben Paket. Effektstärken für parametrische Tests werden mit cohen.d aus dem effsize-Paket berechnet. Beachten Sie, dass rstatix's t_test die Differenz als level1 − level2 (alphabetische Reihenfolge) berechnet; BioRender negiert die t-Statistik und die CIs, um level2 − level1 zu berichten (entsprechend der Konvention von GraphPad Prism), und einseitige p-Werte werden aus der negierten Statistik mit pt neu berechnet, um den korrekten Bereich zu gewährleisten.

Unabhängiger Zwei-Stichproben-t-Test (Student’s)

t_test(..., var.equal = TRUE). Setzt gleiche Varianzen voraus; verwendet eine gepoolte Standardabweichung über beide Gruppen. Der gepoolte SEM ist pooled_SD × √(1/n₁ + 1/n₂). Cohen's d wird mit cohen.d(y, x, paired = FALSE) berechnet.

Unabhängiger Zwei-Stichproben-t-Test mit Welch-Korrektur (auch Welch’s t-Test genannt)

t_test(..., var.equal = FALSE). Setzt keine gleichen Varianzen voraus; verwendet die Welch-Approximation der Freiheitsgrade (Satterthwaite). Der SEM ist √(s₁²/n₁ + s₂²/n₂). Cohen's d wird mit cohen.d(y, x, paired = paired) aus effsize berechnet, wobei paired das Funktionsargument ist (Standard FALSE).

Mann-Whitney-U-Test (Wilcoxon-Rangsummentest)

wilcox_test(..., paired = FALSE). Nichtparametrischer Vergleich von zwei unabhängigen Stichproben. Die U₁- und U₂-Statistiken werden aus den Rangsummen berechnet: U₁ = R₁ − n₁(n₁+1)/2 und U₂ = R₂ − n₂(n₂+1)/2, wobei R₁ und R₂ die Rangsummen jeder Gruppe sind. Die berichtete U-Statistik ist min(U₁, U₂).

Gepaarter t-Test

t_test(..., paired = TRUE). Die Probanden sind über die beiden Bedingungen hinweg gepaart; der Test wird an den Differenzen innerhalb der Paare durchgeführt. Cohen's d für gepaarte Designs verwendet die Formel für innerhalb der Subjekte: |mean(x − y)| / √(SD₁² + SD₂² − 2r·SD₁·SD₂), wobei r die Pearson-Korrelation zwischen den beiden Bedingungen ist. Der Pearson-Korrelationskoeffizient und sein p-Wert werden ebenfalls zurückgegeben.

Wilcoxon-Test für gepaarte Vorzeichenränge

wilcox_test(..., paired = TRUE). Nichtparametrisches Äquivalent zum gepaarten t-Test. Summe der positiven Vorzeichenränge, Summe der negativen Vorzeichenränge und die Gesamtsumme der Vorzeichenränge W werden zurückgegeben. Das Flag p_value_exact wird auf TRUE gesetzt, wenn die Anzahl der Paare weniger als 50 beträgt und keine gebundenen Differenzen vorliegen, was dem erwarteten Verhalten unter der internen Logik von rstatix entspricht. Der Spearman-Rangkorrelationskoeffizient und sein p-Wert zwischen den beiden Bedingungen werden ebenfalls zurückgegeben.

Lognormale (Verhältnis-) Varianten

Wenn Daten einer lognormalen Verteilung folgen, liegt das Interesse im Verhältnis der geometrischen Mittelwerte und nicht in der Differenz der arithmetischen Mittelwerte. Für ungepaarte und Welch-Tests werden alle Werte natürlich logarithmiert und der entsprechende t_test auf der Log-Skala durchgeführt. Geometrische Mittelwerte werden zurücktransformiert als exp(mean(log(values))). Nach der Konvention level2 − level1 entspricht geometric_mean1 der zweiten alphabetischen Gruppe und geometric_mean2 der ersten; das berichtete Verhältnis ist geometric_mean1 / geometric_mean2. Konfidenzintervalle für das Verhältnis werden durch Invertieren und Vertauschen der Log-Skalen-CI-Grenzen erhalten: conf_low_ratio = exp(−conf.high_log), conf_high_ratio = exp(−conf.low_log). Für den gepaarten lognormalen Test wird Cohen's d ebenfalls auf der Log-Skala berechnet; Mittelwert, SD und SEM der Log-Differenzen sowie die Pearson-Korrelation auf den Log-Skalen-Daten werden zusätzlich zurückgegeben.


Einweg-ANOVA (und nichtparametrische Tests) und multiple Vergleichstests

Die Einweg-ANOVA prüft, ob sich die Mittelwerte von drei oder mehr Gruppen signifikant unterscheiden. BioRender unterstützt unabhängige Messungen, Messwiederholungen und Mixed-Effects-Varianten sowie nichtparametrische Alternativen und lognormale ANOVA.

Klassische Einweg-ANOVA

Implementiert über aov_car aus dem afex-Paket. Kontraste werden für die Dauer der Analyse auf Sum-to-Zero (contr.sum) gesetzt und beim Verlassen wiederhergestellt. Quadratsummen-Typ: Typ II SS wird nur für Einweg-unabhängige balancierte Designs verwendet (alle Gruppen haben gleiche n und keinen Messwiederholungsfaktor). Typ III SS wird in allen anderen Fällen verwendet: unbalancierte Designs, Messwiederholungen und alle multifaktoriellen Designs unabhängig von der Balance. Die Effektgröße wird als generalisiertes Eta-Quadrat (ges) aus der afex-ANOVA-Tabelle berichtet.

Einweg-ANOVA mit Welch-Korrektur (auch Welch’s Einweg-ANOVA genannt)

welch_anova_test aus rstatix. Ein F-Test, der keine gleichen Varianzen über Gruppen voraussetzt, mit einer Welch–Satterthwaite-Anpassung der Freiheitsgrade im Nenner. Meldet die W-Statistik und die Freiheitsgrade des Zählers/Nenners.

Lognormale ANOVA 

Werte werden log₁₀-transformiert und classic_anova wird auf den transformierten Daten ausgeführt. F-Statistiken, p-Werte und Freiheitsgrade sind unabhängig von der Basis des Logarithmus; SS und MS werden auf der log₁₀-Skala berichtet, um GraphPad Prism zu entsprechen.

Kruskal-Wallis-Test

kruskal_test aus rstatix. Nichtparametrisches Analogon zur Einweg-ANOVA. Meldet die H-Statistik und den p-Wert.

Post-hoc-Multiple-Vergleichstests

Post-hoc-Tests werden nach einer signifikanten ANOVA durchgeführt, um zu identifizieren, welche Gruppenpaare sich unterscheiden.

  • Tukey’s Multiple-Vergleichstest verwendet geschätzte marginale Mittelwerte aus emmeans und Tukey-korrigierte paarweise Kontraste via pairs(..., adjust = "tukey"). Konfidenzintervalle und t-Statistiken für jeden paarweisen Vergleich werden zurückgegeben.
  • Bonferroni Multiple-Vergleichstest verwendet dasselbe emmeans-Framework mit pairs(..., adjust = "bonferroni"). Der kritische t-Wert für das CI ist qt(0.05 / (2 × k), df), wobei k die Anzahl der Vergleiche ist.
  • Dunnett-Test (eine Kontrolle vs. alle anderen) verwendet glht aus multcomp mit mcp(categories = "Dunnet"). Die Kontrollgruppe wird vor dem Fitten auf die Referenzposition umgestellt; Konfidenzintervalle werden via confint(glht_result) extrahiert.
  • Games–Howell-Test (post-hoc für ungleiche Varianzen) verwendet games_howell_test aus rstatix. Die rstatix-Funktion wendet intern einen Faktor von √0.5 auf den gepoolten SE an; BioRender entfernt dies durch Division durch √0.5 (entspricht Multiplikation mit √2), um der konventionellen Formulierung zu entsprechen.
  • Dunnett's T3-Test (für ungleiche Varianzen) verwendet dunnettT3Test aus PMCMRplus. Paarweise Freiheitsgrade werden mit der Welch–Satterthwaite-Formel für jedes einzelne Paar berechnet. Kritische Werte werden aus der multivariaten t-Verteilung via qmvt abgeleitet.
  • Dunn-Test (nichtparametrisch, folgt Kruskal–Wallis) verwendet dunn_test aus rstatix mit Bonferroni-p-Wert-Anpassung für alle paarweisen Vergleiche. Wenn eine Kontrollgruppe angegeben ist, werden nur Vergleiche mit der Kontrolle zurückgegeben, und die Bonferroni-Korrektur verwendet die Dunnett-Familiengröße (k − 1 Vergleiche) statt k(k−1)/2.

Zweiweg-ANOVA und multiple Vergleichstests

Die Zweiweg-ANOVA prüft die Effekte von zwei kategorialen Faktoren und deren Interaktion auf ein kontinuierliches Ergebnis. BioRender verwendet dieselbe classic_anova-Funktion wie die Einweg-ANOVA, erweitert um eine zweite Faktor-Spalte im Dataframe.

  • Quadratsummen: Typ III wird immer für die Zweiweg-ANOVA verwendet (ob balanciert oder nicht), da hier jeder Effekt nach Berücksichtigung aller anderen Effekte bewertet wird. Kontraste werden auf contr.sum (Sum-to-Zero) gesetzt, wie für Typ III SS erforderlich.
  • Effektgröße wird als generalisiertes Eta-Quadrat (ges) für jeden Haupteffekt und den Interaktionsterm berichtet.
  • Messwiederholungen: Zweiweg-ANOVA mit Messwiederholungen wird über dieselbe aov_car / afex-Infrastruktur unterstützt. Mauchly's Sphärizitätstest wird für within-subject Faktoren berechnet. Greenhouse–Geisser-Korrektur kann auf Effekte angewandt werden, die gegen die Sphärizitätsannahme verstoßen.
  • Mixed-Effects-Backup: Wenn bei Messwiederholungsdaten fehlende Beobachtungen vorliegen, wird ein Mixed-Effects-Modell (via lme4::lmer) verwendet, entweder immer oder nur bei Erkennung von Fehlwerten, abhängig von der Option missing_value_handling.

Post-hoc-Tests für die Zweiweg-ANOVA verwenden dieselben Funktionen wie die Einweg-ANOVA (Tukey, Bonferroni, Dunnett, Dunnett T3, Games–Howell), arbeiten jedoch auf den Interaktionszellenmittelwerten via emmeans. Faktor-Level-Präfixe, die emmeans an numerische Faktor-Level anhängt, werden vor der Rückgabe der Ergebnisse aus den Kontrastlabels entfernt, und innerhalb-Subjekt-Faktor-Spaltennamen, die von afex vorangestellt werden (z. B. Xfactor1), werden auf ihre Originalnamen korrigiert.


Korrelation

Korrelationsanalysen quantifizieren die lineare (Pearson) oder monotone (Spearman) Assoziation zwischen zwei kontinuierlichen Variablen und testen, ob diese Assoziation von Null verschieden ist.

Wir verwenden cor.test aus dem stats-Paket. Fehlende Werte werden durch paarweise Löschung behandelt. Mindestens vier vollständige Beobachtungen sind erforderlich.

Pearson-Korrelation

cor.test(x, y, method = "pearson") gibt den Pearson-Korrelationskoeffizienten r, eine t-Statistik mit n − 2 Freiheitsgraden, einen zweiseitigen p-Wert und exakte 95%-Konfidenzintervalle (via Fisher's z-Transformation, die R intern anwendet) zurück.

Spearman-Korrelation

cor.test(x, y, method = "spearman") gibt den Spearman-Rangkorrelationskoeffizienten ρ (rho) zurück. Die exakte Permutationsverteilung wird verwendet, wenn keine gebundenen Werte vorliegen und n ≤ 50 (exact = TRUE); andernfalls wird die asymptotische Normalapproximation verwendet. Da R's cor.test keine Konfidenzintervalle für Spearman-Korrelationen zurückgibt, werden 95%-CIs approximativ über Fisher's z-Transformation berechnet: z = 0.5 × ln((1 + ρ) / (1 − ρ)), SE = 1 / √(n − 3), und die CI-Grenzen werden zurücktransformiert auf die Korrelationsskala.

Visualisierung

Unabhängig davon, ob Pearson- oder Spearman-Korrelation ausgewählt wird, stammen die Vorhersagelinie und das 95%-Konfidenzband im Streudiagramm aus einer einfachen linearen Regression (lm), die an die Daten angepasst wurde, über 100 gleichmäßig verteilte Punkte im beobachteten x-Bereich, via predict(model, interval = "confidence", level = 0.95).

Einfache lineare Regression

Einfache lineare Regression modelliert die Beziehung zwischen einem einzelnen kontinuierlichen Prädiktor und einem kontinuierlichen Ergebnis als Gerade.

Wir verwenden lm aus dem stats-Paket: lm(dependent ~ independent). Eine Option, den y-Achsenabschnitt auf Null zu beschränken, ist über lm(dependent ~ 0 + independent) verfügbar.

Die Steigungs- und Achsenabschnittskoeffizienten, deren Standardfehler, t-Statistiken und p-Werte werden direkt aus summary(model)$coefficients entnommen. Das 95%-CI für jeden Koeffizienten ist Schätzwert ± qt(0.975, df.residual(model)) × SE. Der x-Achsenabschnitt wird als −β₀ / β₁ berechnet.

Der Standardfehler der Schätzung (Sy.x) ist √(SS_residuals / (n − 2)) für das unbeschränkte Modell oder √(SS_residuals / (n − 1)), wenn der Achsenabschnitt auf Null festgelegt ist, entsprechend der Konvention von GraphPad Prism.

Die Gesamtmodell-Signifikanz wird mit einem F-Test bewertet: pf(F, df1, df2, lower.tail = FALSE) unter Verwendung der F-Statistik aus summary(model)$fstatistic.

Eine angepasste Kurve mit 95%-Konfidenzband wird über 250 gleichmäßig verteilte Punkte im beobachteten Prädiktorbereich zurückgegeben, via predict(model, interval = "confidence").


Logistische Regression

Logistische Regression modelliert die Log-Odds eines binären Ergebnisses als lineare Funktion von einem oder mehreren Prädiktorvariablen. BioRender bietet drei Varianten: einfache (ein Prädiktor), multiple (mehrere Prädiktoren) und Firth-penalisierte logistische Regression für kleine oder unausgewogene Stichproben.

Alle logistischen Regressionsmodelle verwenden glm aus dem stats-Paket mit family = binomial(link = "logit") und maxit = 100 (der Standardwert 25 kann bei nahezu separierten Daten stillschweigend eine nicht konvergierte Iteration zurückgeben). Vor dem Fitten prüft der Dienst auf quasi-vollständige Separation (angepasste Wahrscheinlichkeiten numerisch 0 oder 1) und bewertet, ob eine Firth-Penalisierung empfohlen wird, basierend auf Separationserkennung, niedrigem Ereignis-pro-Variable-Verhältnis (EPV) oder seltenen Ereignisraten.

Einfache logistische Regression

Passt einen einzelnen kontinuierlichen oder binären Prädiktor an: glm(dependent ~ independent, family = binomial(link = "logit")).

Konfidenzintervalle für Koeffizienten werden auf der Log-Odds-Skala mit Profil-Likelihood via confint berechnet, mit automatischem Rückfall auf Wald-CIs, falls das Profiling fehlschlägt. Odds Ratios und deren 95% CIs werden durch Exponentieren der Koeffizientenschätzungen und Konfidenzgrenzen erhalten.

Der X-Wert bei 50% vorhergesagter Wahrscheinlichkeit (wo die Log-Odds Null sind, d. h. X = −β₀/β₁) wird mit einem 95%-CI berichtet, das mit der Delta-Methode abgeleitet wird.

Die Modellanpassung wird über einen Likelihood-Ratio-Test gegen das Nullmodell (nur Achsenabschnitt) bewertet. Gemeldete Gütemaße umfassen Tjurs R², Cox–Snell R², die AUC der ROC-Kurve (berechnet mit einem rangbasierten, vektorisierten Algorithmus) und AICc. Vorhergesagte Wahrscheinlichkeiten und ein Konfidenzband über den beobachteten Prädiktorbereich (250 Rasterpunkte) werden für die Darstellung zurückgegeben; das Band wird mit Wald-CIs auf der Logit-Skala und zurücktransformiert via plogis.

Firth-penalisierte logistische Regression

Wenn perfekte oder quasi-vollständige Separation erkannt wird oder wenn EPV niedrig ist (weniger als ca. 10 Ereignisse pro Prädiktor), sind Standard-Maximum-Likelihood-Schätzungen unendlich oder stark verzerrt. In diesen Fällen passt BioRender das Firth-penalisierte Likelihood-Modell an (Firth 1993; Heinze & Schemper 2002), das eine Jeffreys-Prior-Strafe zur Log-Likelihood hinzufügt, um endliche, weniger verzerrte Schätzungen zu erzeugen.

Das Firth-Modell wird mit einer eigenen IRLS-Implementierung angepasst. Die Konvergenz wird gemeinsam anhand von drei Kriterien bewertet: max|Δβ| < 1e-8 (L∞-Parameteränderung), max|U*(β)| < 1e-5 (maximaler Absolutwert des modifizierten Score-Vektors, d. h. L∞-Score-Norm) und |ΔL*| < 1e-5 (Veränderung der penalisierten Log-Likelihood).

Konfidenzintervalle werden über Profil-penalisierte Likelihood mit einer eigenen firth_profile_ci()-Funktion berechnet. Für jeden Parameter werden die übrigen Parameter bei jedem Kandidaten-β-Wert via constrained IRLS neu optimiert. Eine doppelschrittige Intervallerweiterung (beginnend bei max(SE×3, 1.5), Verdopplung bis zu einer Obergrenze von 50 auf der Log-Odds-Skala) findet ein Intervall mit Vorzeichenwechsel, danach findet uniroot() (Brents Methode) die Nullstelle. Falls kein Intervall gefunden wird, wird die Grenze als NA gemeldet und ci_fallback_used = TRUE.

Gütemaße umfassen Tjurs R², Cox–Snell R², McFaddens R², penalisierten Deviance (-2 × L*), Null-penalisierten Deviance und AICc (berechnet aus der unpenalisierten Log-Likelihood).


Dosis-Wirkungs-Kurven

Dosis-Wirkungs-Kurven modellieren die sigmoide Beziehung zwischen einem Stimulus (Konzentration, Dosis) und einer Reaktion (Hemmung, Stimulation). BioRender passt standardmäßig das Vier-Parameter-Logistikmodell (4PL) an; die Drei- und Fünf-Parameter-Varianten sind Spezialfälle.

Das Vier-Parameter-Modell (4PL)

Die Vier-Parameter-Logistikgleichung lautet:

  • Hemmung (log x): y = bottom + (top − bottom) / (1 + 10^((log_IC50 − x) × hill_slope))
  • Hemmung (linear x): y = bottom + (top − bottom) / (1 + (IC50 / x)^hill_slope)
  • Stimulation (linear x): y = bottom + (top − bottom) × x^hill_slope / (x^hill_slope + EC50^hill_slope)

Die vier freien Parameter sind: bottom (Minimalwert der Reaktion), top (Maximalwert der Reaktion), hill_slope (Hill-Koeffizient) und EC50/IC50 (Konzentration am Mittelpunkt zwischen bottom und top).

Das Drei-Parameter-Modell (3PL)

Entspricht dem 4PL mit festgelegtem Hill-Slope: hill_slope = −1 für Hemmung, hill_slope = +1 für Stimulation. Alle anderen Parameter bleiben frei.

Das Fünf-Parameter-Logistikmodell (5PL)

Erweitert das 4PL durch Hinzufügen eines Asymmetrie-Faktors S:

  • Log x: y = bottom + (top − bottom) / (1 + 10^((log_EC50 − x) × hill_slope))^S
  • Linear x (Hemmung): y = bottom + (top − bottom) / (1 + (EC50/x)^hill_slope)^S

Wenn S = 1 ist, reduziert sich das 5PL auf das 4PL. S wird mit 1 initialisiert und frei geschätzt. Hinweis: Der Parameter log_EC50 in der 5PL-Formel ist der Wendepunkt der Kurve. Wenn S ≠ 1, unterscheidet sich der wahre EC50 und wird durch die Korrektur berechnet: log_EC50_actual = log_inflection − log10(2^(1/S) − 1) / hill_slope.

Anpassungsverfahren

Alle Modelle werden mit nls aus dem stats-Paket angepasst. Startwerte werden aus den Daten abgeleitet: bottom und top werden mit den beobachteten minimalen und maximalen Gruppenmitteln initialisiert; EC50/IC50 wird durch lineare Interpolation zum y-Mittelpunkt initialisiert; hill_slope wird basierend auf der Richtung der Daten auf ±1 gesetzt.

Der PORT (nl2sol)-Algorithmus wird zuerst versucht (algorithm = "port"), da er Schranken unterstützt und den „minFactor“-Fehler vermeidet, den der Standard-Gauss-Newton-Algorithmus auf der EC50-Profilachse erfährt. Wenn PORT fehlschlägt und keine benutzerdefinierten Schranken aktiv sind, wird ein Fallback-nls()-Aufruf ohne expliziten Algorithmus (Standard Gauss-Newton) versucht. Alle vom Benutzer angegebenen Parameterbeschränkungen werden als lower / upper-Vektoren an nls übergeben; der Hill-Slope wird zusätzlich auf ±50 begrenzt, um Divergenzen zu verhindern, wobei das Vorzeichen an die Datenrichtung angepasst wird.

Konfidenzintervalle für Anpassungsparameter werden über Profil-Likelihood mit confint(fit) berechnet. Wenn das Profiling fehlschlägt (z. B. singulärer Gradient), wird stattdessen eine Wald-Approximation verwendet: Schätzwert ± qt(0.975, df_residual) × SE. EC50/IC50 und dessen CI werden sowohl auf der log₁₀-Skala als auch auf der Original-Konzentrationsskala berichtet.

Eine benutzerdefinierte Konzentration (EC_x oder IC_x bei einem benutzerdefinierten Antwortprozentsatz) kann ebenfalls berechnet werden. Für Hemmung gilt EC_x = EC50 × ((1/fraction − 1))^(1/hill_slope); für Stimulation EC_x = EC50 × (fraction / (1 − fraction))^(1/hill_slope). Das 95%-CI für die benutzerdefinierte Konzentration wird approximativ durch Propagierung des relativen Fehlers aus dem EC50-CI berechnet.

Gemeldete Gütemaße sind R² (1 − SS_res / SS_tot), Residuen-Quadratsumme, Sy.x (Residuen-Standardfehler) und Freiheitsgrade. Konfidenzbänder über lineare und logarithmisch verteilte Konzentrationsraster (je 250 Punkte) werden mittels numerischer Delta-Methode berechnet: Die Modelformel wird numerisch bezüglich jedes Parameters differenziert, um die Jakobimatrix J zu bilden, dann SE(ŷ) = √(J' × vcov(fit) × J) und das Band ist ŷ ± t_{0.975, df} × SE(ŷ). Falls die Delta-Methode fehlschlägt, fällt das Band auf Punktschätzungen zurück.


Überlebensanalyse

Die Überlebensanalyse modelliert die Zeit bis zu einem Ereignis von Interesse (z. B. Tod, Rückfall) unter Berücksichtigung zensierter Beobachtungen — Probanden, die das Ereignis bis zum Ende der Nachbeobachtung nicht erlebt haben.

Alle Überlebensanalysen verwenden Funktionen aus dem survival-Paket.

Kaplan–Meier-Kurven

Kaplan–Meier-Überlebenskurven werden mit survfit unter Verwendung von conf.type = "log-log" geschätzt (komplementäre log-log-Transformation der Überlebensfunktion), was die Methode ist, die GraphPad Prism verwendet und besser für Überlebenswahrscheinlichkeiten nahe 0 oder 1 geeignet ist als die Standard-Plain-Log-Methode. Gruppen werden in der Reihenfolge ihres ersten Auftretens in den Daten faktoriell sortiert, um die Kurvenreihenfolge mit dem Input übereinstimmen zu lassen.

Medianer Überlebenszeitpunkt und dessen 95%-CI werden mit quantile(km_fit, probs = 0.5) extrahiert. Die Kurve wird bis zur maximal beobachteten Zeit in jeder Gruppe verlängert (auch wenn diese Zeit nur zensierte Beobachtungen enthält), damit die geplottete Stufenfunktion nicht vorzeitig abgeschnitten wird.

Log-Rank-Test

Der Log-Rank-Test vergleicht Überlebensverteilungen zwischen Gruppen unter der Nullhypothese proportionaler Risiken. Wir verwenden survdiff mit rho = 0. Die Chi-Quadrat-Statistik wird mit (Anzahl der Gruppen − 1) Freiheitsgraden ausgewertet.

Gehan–Breslow–Wilcoxon-Test

Eine Alternative zum Log-Rank-Test, die frühen Zeitpunkten mehr Gewicht gibt. Dieser Test ist als eigener gewichteter Chi-Quadrat-Statistik implementiert (nicht über survdiff). Zu jedem Ereigniszeitpunkt t wird das Gewicht w_t = N_t (Anzahl der Risikopersonen) angewendet. Der Score-Vektor ist Z_j = Σ_t N_t (d_jt − e_jt) und die Varianz-Kovarianz-Matrix verwendet hypergeometrische Varianz mit den N_t²-Terms. Die Teststatistik χ² = Z' V⁻¹ Z wird mit K−1 Freiheitsgraden ausgewertet (Cholesky-Zerlegung; QR-Pseudoinverse als Fallback).

Hazard Ratios

Für paarweise Gruppenvergleiche werden zwei Methoden zur Schätzung von Hazard Ratios bereitgestellt.

Logrank-Methode: Verwendet das beobachtete-zu-erwarteten Verhältnis HR = (O₁/E₁) / (O₂/E₂), wobei O und E aus dem Log-Rank-survdiff-Output stammen. Der Standardfehler von ln(HR) ist √(1/E₁ + 1/E₂), was 95%-CIs von exp(ln(HR) ± 1,96 × SE) ergibt. Dies entspricht der „logrank“ Hazard Ratio von GraphPad Prism.

Mantel–Haenszel-Methode: Verwendet die Formel L = (O₁ − E₁) / V, HR = exp(L), mit 95%-CIs von exp(L ± 1,96 / √V), wobei V die Varianz von (O₁ − E₁) unter der Nullhypothese ist, entnommen aus survdiff$var[1,1] eines paarweisen Log-Rank-Tests. Dies entspricht der „Mantel–Haenszel“ Hazard Ratio von GraphPad Prism (Machin, Cheung & Parmar; Vaeth).

Cox-Proportional-Hazards-Regression

Cox-PH-Regression wird mit coxph angepasst. Im Auto-Detect-Modus wird die Methode zur Behandlung gebundener Ereignisse automatisch gewählt: „exact“, wenn keine gebundenen Ereigniszeiten vorliegen, und „efron“, wenn gebundene Ereignisse vorhanden sind; die Methode kann auch explizit angegeben werden. Konfidenzintervalle für Hazard Ratios werden über eine eigene Profil-Likelihood-Funktion (compute_profile_ci_cox()) berechnet, die die Profil-Likelihood-Oberfläche verfolgt, um die CI-Grenze zu finden, anstatt sich auf die Wald-Approximation zu verlassen.

Die Annahme der proportionalen Risiken wird mit cox.zph getestet, das skalierte Schoenfeld-Residuen gegen die Zeit fitten und einen globalen sowie pro Kovariate p-Wert melden; ein kleiner p-Wert deutet darauf hin, dass sich die Hazard Ratio über die Zeit ändert und die PH-Annahme verletzt wird.

Korrekturen für multiple Vergleiche

Wenn drei oder mehr Gruppen verglichen werden und eine Korrekturmethode ausgewählt ist, werden p-Werte aus paarweisen Tests für multiple Vergleiche korrigiert. Verfügbare Methoden sind Bonferroni und Benjamini–Hochberg (Falsch-Entdeckungs-Rate), beide über p.adjust angewandt, sowie Holm–Šídák, das mit einem eigenen schrittweisen Verfahren implementiert ist.

What's new →
Discover more in BioRender
 
 BioRender AI

Draft custom figures in seconds from a text prompt.

Learn more → Browse help articles →
 
 Graphing

Turn raw data into journal-quality graphs in minutes.

Learn more → Browse help articles →

War dieser Beitrag hilfreich?

12 von 14 fanden dies hilfreich