📌 Confounding – Cheat Sheet
🔍 1. Einführung in Confounding
- Confounding tritt auf, wenn eine dritte Variable (Confounder) die beobachtete Assoziation zwischen einer Exposition () und einer Zielgröße () verzerrt.
- Folge: Der beobachtete Zusammenhang ist nicht kausal.
Beispiele für scheinbare Zusammenhänge durch Confounding:
- Graue Haare und Schlaganfall → Alter ist der eigentliche Einflussfaktor.
- Kinderanzahl und Brustkrebs → Hormonelle Faktoren sind der wahre Einfluss.
⚠️ 2. Identifikation eines Confounders
Eine Variable ist ein Confounder, wenn:
- Assoziiert mit der Zielgröße () ohne deren Konsequenz zu sein.
- Assoziiert mit der Exposition () ohne deren Konsequenz zu sein.
DAG (Directed Acyclic Graph) Notation:
Beispiel: Rauchen als Confounder
- Zusammenhang zwischen Alkoholkonsum () und Lungenkrebs ().
- Rauchen () ist mit beiden Variablen assoziiert.
- Ohne Berücksichtigung von könnte man annehmen, dass Alkohol Lungenkrebs verursacht.
📊 3. Auswirkungen von Confounding
Ein Confounder kann:
- Einen Zusammenhang überschätzen (Inflation) → Falsch-positive Korrelation.
- Einen Zusammenhang unterschätzen (Verdeckung) → Falsch-negative Korrelation.
Beispiel für Inflation (falsche Assoziation wird erkannt)
Aber innerhalb von Subgruppen von :
→ Der Zusammenhang existiert nur in der aggregierten Analyse.
Beispiel für Verdeckung (echter Zusammenhang wird maskiert)
Aber innerhalb der Subgruppen von :
→ Ein echter Effekt wird durch Confounding verborgen.
📈 4. Perfektes Confounding
- Definition: Wenn innerhalb jeder Kategorie von der Zusammenhang zwischen und identisch ist, aber der Gesamteffekt abweicht.
- Sehr selten in realen Studien.
🩺 5. Praktisches Beispiel: Scottish Heart Health Study (SHHS)
- Beobachtung: Wohnsituation (Miete oder Eigentum) scheint mit koronaren Herzerkrankungen (CHD) assoziiert zu sein.
- Berechnung für die Gesamtstichprobe: → Personen, die zur Miete wohnen, haben ein um 45 % höheres Risiko für CHD.
Problem:
- Rauchen () als Confounder:
- Raucher wohnen häufiger zur Miete.
- Rauchen erhöht das Risiko für CHD.
- Stratifizierte Berechnung für Raucher/Nichtraucher: → Der Zusammenhang ist geringer als aggregiert → Confounding durch Rauchen.
⚖️ 6. Confounding vs. Collider Bias
Confounding:
- Variable beeinflusst sowohl als auch .
- Beispiel: Rauchen beeinflusst sowohl Alkoholkonsum als auch Lungenkrebs.
Collider Bias:
- wird durch und beeinflusst, aber ist keine gemeinsame Ursache.
- Beispiel: Intelligenz und Attraktivität beeinflussen die Chancen, in einem Film besetzt zu werden. Wenn nur Schauspieler analysiert werden, erscheint ein negativer Zusammenhang zwischen Intelligenz und Attraktivität (Selektionseffekt).
🛠 7. Methoden zur Adjustierung für Confounding
a) Während der Studienplanung:
- Randomisierung: Confounder werden zufällig verteilt.
- Matching: Vergleichsgruppen mit ähnlichen Confoundern.
- Einschlusskriterien: Ausschluss bestimmter Gruppen.
b) Während der Datenanalyse:
- Stratifizierung: Aufteilen nach Confounder-Kategorien.
- Regressionsmodelle: Multivariate Analyse zur Kontrolle von Confoundern.
- Standardisierung: Berechnung adjustierter Raten.
- Propensity Score Matching: Statistische Matching-Technik.
📊 8. Stratifizierung
-
Schritte:
- Aufteilen der Daten nach den Kategorien des Confounders.
- Odds Ratios (ORs) für jede Strata berechnen.
- Aggregation der ORs zu einem gemeinsamen OR.
-
Aggregationstechniken:
- Naiver Durchschnitt:
\log(\hat{OR}_{\text{naiv}}) = \frac{1}{2} (\log(\hat{OR}_1) + \log(\hat{OR}_2))
- **Gewichteter Durchschnitt:** $$ \log(\hat{OR}_{\text{weighted}}) = \frac{w_1 \log(\hat{OR}_1) + w_2 \log(\hat{OR}_2)}{w_1 + w_2}- Mantel-Haenszel Methode:
\hat{OR}{\text{MH}} = \frac{\sum n{11}^{(s)} n_{00}^{(s)} / n_{\cdot\cdot}^{(s)}}{\sum n_{10}^{(s)} n_{01}^{(s)} / n_{\cdot\cdot}^{(s)}}
--- ## **📊 9. Mantel-Haenszel Test** **Hypothesen:** - $H_0: OR = 1$ → Kein Zusammenhang. - $H_1: OR \neq 1$ → Es gibt einen Zusammenhang. **Teststatistik:**\chi^2_{\text{MH}} = \frac{\left( \sum (n_{11} n_{00} - n_{10} n_{01}) / n_{\cdot\cdot} \right)^2}{\sum n_{\cdot1} n_{\cdot0} n_{1\cdot} n_{0\cdot} / (n_{\cdot\cdot}^2 (n_{\cdot\cdot} - 1))}
**Entscheidungsregel:** - Falls $\chi^2_{\text{MH}} > \chi^2_{1,1-\alpha}$, wird die Nullhypothese verworfen. --- ## **🚀 10. Fazit** ✅ **Confounding kann zu fehlerhaften Schlussfolgerungen führen.** ✅ **Stratifizierung & Regressionsmodelle helfen, Confounding zu kontrollieren.** ✅ **Der Mantel-Haenszel-Test prüft, ob ein Zusammenhang real oder durch Confounding beeinflusst ist.** ✅ **Collider Bias ist ein anderer Mechanismus und muss separat betrachtet werden.** --- <!-- DISQUS SCRIPT COMMENT START --> <!-- DISQUS RECOMMENDATION START --> <div id="disqus_recommendations"></div> <script> (function() { // REQUIRED CONFIGURATION VARIABLE: EDIT THE SHORTNAME BELOW var d = document, s = d.createElement('script'); // IMPORTANT: Replace EXAMPLE with your forum shortname! s.src = 'https://myuninotes.disqus.com/recommendations.js'; s.setAttribute('data-timestamp', +new Date()); (d.head || d.body).appendChild(s); })(); </script> <noscript> Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow"> comments powered by Disqus. </a> </noscript> <!-- DISQUS RECOMMENDATION END --> <hr style="border: none; height: 2px; background: linear-gradient(to right, #f0f0f0, #ccc, #f0f0f0); margin-top: 4rem; margin-bottom: 5rem;"> <div id="disqus_thread"></div> <script> /** * RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS. * LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables */ /* var disqus_config = function () { this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable }; */ (function() { // DON'T EDIT BELOW THIS LINE var d = document, s = d.createElement('script'); s.src = 'https://myuninotes.disqus.com/embed.js'; s.setAttribute('data-timestamp', +new Date()); (d.head || d.body).appendChild(s); })(); </script> <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> <!-- DISQUS SCRIPT COMMENT END --> <!-- KO-FI WIDGET START --> <script> (function() { let kofiContainerId = null; let currentScript = null; function initializeKofi() { // Cleanup previous instances if (kofiContainerId) { const oldContainer = document.getElementById(kofiContainerId); if (oldContainer) oldContainer.remove(); } if (currentScript) { currentScript.remove(); } // Create new container kofiContainerId = 'kofi-container-' + Date.now(); const container = document.createElement('div'); container.id = kofiContainerId; document.body.appendChild(container); // Load fresh script currentScript = document.createElement('script'); currentScript.src = 'https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'; currentScript.onload = () => { kofiWidgetOverlay.draw('myuninotes', { 'type': 'floating-chat', 'floating-chat.donateButton.text': 'Support me', 'floating-chat.donateButton.background-color': '#00b9fe', 'floating-chat.donateButton.text-color': '#fff' }, kofiContainerId); }; document.head.appendChild(currentScript); } // Initial load initializeKofi(); // SPA navigation handlers const spaNavigationEvents = ['load', 'hashchange', 'popstate']; spaNavigationEvents.forEach(event => { window.addEventListener(event, initializeKofi); }); // Modern SPA history handling const originalPushState = history.pushState; history.pushState = function() { originalPushState.apply(this, arguments); initializeKofi(); }; const originalReplaceState = history.replaceState; history.replaceState = function() { originalReplaceState.apply(this, arguments); initializeKofi(); }; })(); </script> <!-- KO-FI WIDGET END --> <!-- Modal START --> <div id="myuniModalScope"> <style> /* Prefix alles mit #myuniModalScope, um Konflikte zu vermeiden */ #myuniModalScope .myuni-modal { display: none; /* Hidden by default */ position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0, 0, 0, 0.6); } #myuniModalScope .myuni-modal.myuni-show { display: block; } #myuniModalScope .myuni-modal-content { background-color: #fff; margin: 10% auto; padding: 20px; border-radius: 8px; width: 80%; max-width: 500px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); position: relative; animation: myuni-fadeIn 0.5s; } #myuniModalScope .myuni-close { position: absolute; top: 10px; right: 15px; font-size: 24px; font-weight: bold; color: #aaa; cursor: pointer; } #myuniModalScope .myuni-close:hover { color: #000; } #myuniModalScope .myuni-modal-text { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 15px; color: #333; line-height: 1.5; } #myuniModalScope .myuni-modal-highlight { font-weight: bold; color: #555; } #myuniModalScope .myuni-ko-fi-widget-container { text-align: center; margin-top: 20px; } @keyframes myuni-fadeIn { from { opacity: 0; } to { opacity: 1; } } </style> <!-- HTML-Gerüst mit eigenen Klassen/IDs bleibt --> <div id="myModal" class="myuni-modal"> <div class="myuni-modal-content"> <span id="closeModal" class="myuni-close">×</span> <p class="myuni-modal-text"> <span class="myuni-modal-highlight"> MyUniNotes is a free, non-profit project to make education accessible for everyone. </span> If it has helped you, consider giving back! Even a small donation makes a difference. </p> <div class="myuni-ko-fi-widget-container"> <script type="text/javascript" src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"></script> <script type="text/javascript"> kofiwidget2.init('Support my efforts', '#72a4f2', 'E1E219YH74'); kofiwidget2.draw(); </script> </div> <p class="myuni-modal-text"> These are my personal notes. While I strive for accuracy, I’m still a student myself. Thanks for being part of this journey! </p> </div> </div> <script> // JavaScript zum Anzeigen des Modals document.addEventListener('DOMContentLoaded', function() { // Show the modal after a short delay setTimeout(function() { const modal = document.querySelector('#myuniModalScope #myModal'); if (modal) { modal.classList.add('myuni-show'); } }, 1000); // Wartezeit hier anpassen // Schließen, wenn X geklickt const closeModal = document.querySelector('#myuniModalScope #closeModal'); if (closeModal) { closeModal.addEventListener('click', function() { const modal = document.querySelector('#myuniModalScope #myModal'); if (modal) { modal.classList.remove('myuni-show'); } }); } }); </script> </div> <!-- Modal END -->