Trzy sytuacje, w których statystyka zmienia decyzję
| Sytuacja | Pytanie statystyczne |
|---|---|
| Diagnoza | Czułość i swoistość nie wystarczą bez częstości choroby i wartości predykcyjnych. |
| Leczenie | Ryzyko względne warto uzupełnić różnicą ryzyka i NNT. |
| Rokowanie | Model wymaga kalibracji, dyskryminacji i walidacji. |
Jak przełożyć statystykę na decyzję?
Lekarz używa statystyki do aktualizowania prawdopodobieństwa i porównywania możliwych decyzji. Wynik testu diagnostycznego zależy od czułości, swoistości oraz częstości choroby w populacji, dlatego dodatni wynik ma inne znaczenie w poradni wysokiego ryzyka niż w badaniu przesiewowym. Przy leczeniu trzeba zestawić oczekiwaną korzyść z działaniami niepożądanymi. Pomagają ryzyko bezwzględne, NNT i NNH z przedziałami ufności. W modelu rokowniczym ważne są nie tylko ranking pacjentów, lecz także zgodność przewidywanego ryzyka z częstością zdarzeń.
Przykład praktycznego wniosku
W badaniu częstość powikłania wyniosła 10% w kontroli i 6% po leczeniu. Ryzyko względne równe .60 opisuje redukcję względną o 40%, ale różnica bezwzględna wynosi 4 punkty procentowe. Odpowiada to NNT równemu 25 przy założeniu podobnego ryzyka wyjściowego i czasu obserwacji. Do decyzji potrzebny jest jeszcze przedział ufności dla różnicy ryzyka oraz częstość szkód. Raportowanie tylko „redukcji o 40%” wyolbrzymiałoby korzyść dla pacjenta, bo pomijałoby poziom ryzyka, od którego rozpoczęto porównanie.
Pięć umiejętności potrzebnych w tej dziedzinie
- odczytywanie ryzyka bezwzględnego obok ryzyka względnego;
- łączenie czułości i swoistości z prawdopodobieństwem przed testem;
- interpretowanie NNT i NNH z przedziałami ufności;
- ocena kalibracji, dyskryminacji i walidacji modeli rokowniczych;
- rozpoznawanie klinicznego znaczenia efektu poza progiem p;
Wzór praktycznej interpretacji
Najczęstsza pułapka
Duży efekt względny może odpowiadać małej korzyści bezwzględnej, jeżeli zdarzenie jest rzadkie. Z kolei dobra wartość AUC nie gwarantuje poprawnej kalibracji. Decyzja kliniczna wymaga zestawienia korzyści, szkód, ryzyka wyjściowego i precyzji estymat.
Pojęcia potrzebne do tego zagadnienia
Definicje poniżej rozwijają najważniejsze terminy, pokazują wzory, przykłady i gotowe raportowanie w APA 7.
Definicje, zalecenia interpretacyjne i sposób raportowania oparto na literaturze metodologicznej wskazanej w bibliografii (Altman, 1994).
Kod w R, Pythonie i IBM SPSS Statistics
Przed analizą zdefiniuj punkt końcowy, czas obserwacji, sposób kodowania zdarzeń i populację analityczną. Ten przykład nie zastępuje planu dla danych cenzurowanych, konkurujących ryzyk ani wielokrotnych punktów końcowych.
Regresja logistyczna, ilorazy szans i prawdopodobieństwa
R
dane <- read.csv("dane.csv")
m <- glm(zdarzenie ~ x1 + x2, data = dane, family = binomial())
summary(m)
OR <- exp(coef(m))
CI <- exp(confint.default(m))
cbind(OR = OR, CI_dol = CI[, 1], CI_gora = CI[, 2])
dane$p_hat <- predict(m, type = "response")
head(dane[c("zdarzenie", "p_hat")])Python
import pandas as pd
import numpy as np
import statsmodels.api as sm
df = pd.read_csv("dane.csv")[["zdarzenie", "x1", "x2"]].dropna()
X = sm.add_constant(df[["x1", "x2"]])
m = sm.Logit(df["zdarzenie"], X).fit()
print(m.summary())
wyniki = pd.DataFrame({
"OR": np.exp(m.params),
"CI_dol": np.exp(m.conf_int()[0]),
"CI_gora": np.exp(m.conf_int()[1]),
"p": m.pvalues
})
print(wyniki)
df["p_hat"] = m.predict(X)IBM SPSS Statistics — Syntax
LOGISTIC REGRESSION VARIABLES zdarzenie
/METHOD=ENTER x1 x2
/CONTRAST (x2)=INDICATOR
/PRINT=CI(95) GOODFIT
/SAVE=PRED COOK LEVER
/CLASSPLOT.Krzywa ROC i AUC
R
dane <- read.csv("dane.csv")
# Pakiet pROC.
library(pROC)
roc_obj <- roc(response = dane$stan, predictor = dane$marker,
levels = c(0, 1), direction = "<", ci = TRUE)
roc_obj
ci.auc(roc_obj)
coords(roc_obj, "best", best.method = "youden",
ret = c("threshold", "sensitivity", "specificity"))
plot(roc_obj, print.auc = TRUE)Python
import pandas as pd
from sklearn.metrics import roc_curve, roc_auc_score
import matplotlib.pyplot as plt
df = pd.read_csv("dane.csv")[["stan", "marker"]].dropna()
auc = roc_auc_score(df["stan"], df["marker"])
fpr, tpr, progi = roc_curve(df["stan"], df["marker"])
youden = tpr - fpr
i = youden.argmax()
print({"AUC": auc, "prog_Youdena": progi[i],
"czulosc": tpr[i], "swoistosc": 1-fpr[i]})
plt.plot(fpr, tpr); plt.plot([0, 1], [0, 1], "--")
plt.xlabel("1 - swoistość"); plt.ylabel("Czułość"); plt.show()IBM SPSS Statistics — Syntax
ROC marker BY stan (1)
/PLOT=CURVE(REFERENCE)
/PRINT=SE COORDINATES
/CRITERIA=CUTOFF(INCLUDE) TESTPOS(LARGE) DISTRIBUTION(FREE) CI(95).Bibliografia oprogramowania i wykorzystanych pakietów
W przykładach użyto: R, Python, IBM SPSS Statistics, pandas, NumPy, statsmodels, pROC, Matplotlib, scikit-learn. W pracy badawczej podaj również faktycznie użyte wersje, które można odczytać poleceniami sessionInfo() w R oraz pip freeze lub importlib.metadata.version() w Pythonie. Cytuj wyłącznie narzędzia rzeczywiście użyte w końcowej analizie.
- R: R Core Team. (2026). R: A language and environment for statistical computing [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
- Python: Van Rossum, G., & Drake, F. L., Jr. (2009). Python 3 reference manual. CreateSpace.
- IBM SPSS Statistics: IBM Corp. (2025). IBM SPSS Statistics for Macintosh (Version 31.0) [Computer software]. IBM Corp.
- pandas: McKinney, W. (2010). Data structures for statistical computing in Python. In S. van der Walt & J. Millman (Eds.), Proceedings of the 9th Python in Science Conference (pp. 56–61). https://doi.org/10.25080/Majora-92bf1922-00a
- NumPy: Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N. J., Kern, R., Picus, M., Hoyer, S., van Kerkwijk, M. H., Brett, M., Haldane, A., del Río, J. F., Wiebe, M., Peterson, P., … Oliphant, T. E. (2020). Array programming with NumPy. Nature, 585, 357–362. https://doi.org/10.1038/s41586-020-2649-2
- statsmodels: Seabold, S., & Perktold, J. (2010). Statsmodels: Econometric and statistical modeling with Python. In S. van der Walt & J. Millman (Eds.), Proceedings of the 9th Python in Science Conference (pp. 92–96). https://doi.org/10.25080/Majora-92bf1922-011
- pROC: Robin, X., Turck, N., Hainard, A., Tiberti, N., Lisacek, F., Sanchez, J.-C., & Müller, M. (2011). pROC: An open-source package for R and S+ to analyze and compare ROC curves. BMC Bioinformatics, 12, 77. https://doi.org/10.1186/1471-2105-12-77
- Matplotlib: Hunter, J. D. (2007). Matplotlib: A 2D graphics environment. Computing in Science & Engineering, 9(3), 90–95. https://doi.org/10.1109/MCSE.2007.55
- scikit-learn: Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., VanderPlas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M., & Duchesnay, É. (2011). Scikit-learn: Machine learning in Python. Journal of Machine Learning Research, 12, 2825–2830.
BibTeX dla oprogramowania i pakietów
@manual{r-core-2026,
author = {{R Core Team}},
title = {R: A Language and Environment for Statistical Computing},
organization = {R Foundation for Statistical Computing},
address = {Vienna, Austria},
year = {2026},
url = {https://www.R-project.org/}
}@book{vanrossum2009python,
author = {Van Rossum, Guido and Drake, Fred L., Jr.},
title = {Python 3 Reference Manual},
publisher = {CreateSpace},
year = {2009},
isbn = {978-1-4414-1269-0}
}@software{ibm2025spss,
author = {{IBM Corp.}},
title = {IBM SPSS Statistics for Macintosh},
year = {2025},
version = {31.0},
publisher = {IBM Corp.}
}@inproceedings{mckinney2010pandas,
author = {McKinney, Wes},
title = {Data Structures for Statistical Computing in Python},
booktitle = {Proceedings of the 9th Python in Science Conference},
editor = {van der Walt, Stéfan and Millman, Jarrod},
year = {2010},
pages = {56--61},
doi = {10.25080/Majora-92bf1922-00a}
}@article{harris2020numpy,
author = {Harris, Charles R. and Millman, K. Jarrod and van der Walt, Stéfan J. and Gommers, Ralf and Virtanen, Pauli and others},
title = {Array Programming with NumPy},
journal = {Nature},
year = {2020},
volume = {585},
pages = {357--362},
doi = {10.1038/s41586-020-2649-2}
}@inproceedings{seabold2010statsmodels,
author = {Seabold, Skipper and Perktold, Josef},
title = {Statsmodels: Econometric and Statistical Modeling with Python},
booktitle = {Proceedings of the 9th Python in Science Conference},
year = {2010},
pages = {92--96},
doi = {10.25080/Majora-92bf1922-011}
}@article{robin2011proc,
author = {Robin, Xavier and Turck, Natacha and Hainard, Alexandre and Tiberti, Natalia and Lisacek, Frédérique and Sanchez, Jean-Charles and Müller, Markus},
title = {pROC: An Open-Source Package for R and S+ to Analyze and Compare ROC Curves},
journal = {BMC Bioinformatics},
year = {2011},
volume = {12},
pages = {77},
doi = {10.1186/1471-2105-12-77}
}@article{hunter2007matplotlib,
author = {Hunter, John D.},
title = {Matplotlib: A 2D Graphics Environment},
journal = {Computing in Science and Engineering},
year = {2007},
volume = {9},
number = {3},
pages = {90--95},
doi = {10.1109/MCSE.2007.55}
}@article{pedregosa2011scikitlearn,
author = {Pedregosa, Fabian and Varoquaux, Gaël and Gramfort, Alexandre and Michel, Vincent and Thirion, Bertrand and Grisel, Olivier and others},
title = {Scikit-learn: Machine Learning in Python},
journal = {Journal of Machine Learning Research},
year = {2011},
volume = {12},
pages = {2825--2830}
}Planujesz artykuł lub projekt naukowy?
Możemy przygotować plan analityczny, reprodukowalny kod, modele, raport publication-ready i odpowiedź na uwagi recenzentów.
Analizy statystyczne dla badaczyOmów projektBibliografia i dalsza literatura naukowa (APA 7)
- Altman, D. G. (1994). The scandal of poor medical research. BMJ, 308(6924), 283–284. https://doi.org/10.1136/bmj.308.6924.283
- Lang, T. A., & Altman, D. G. (2015). Basic statistical reporting for articles published in biomedical journals: The SAMPL guidelines. International Journal of Nursing Studies, 52(1), 5–9. https://doi.org/10.1016/j.ijnurstu.2014.09.006
- Appelbaum, M., Cooper, H., Kline, R. B., Mayo-Wilson, E., Nezu, A. M., & Rao, S. M. (2018). Journal article reporting standards for quantitative research in psychology: The APA Publications and Communications Board task force report. American Psychologist, 73(1), 3–25. https://doi.org/10.1037/amp0000191
- Greenland, S., Senn, S. J., Rothman, K. J., Carlin, J. B., Poole, C., Goodman, S. N., & Altman, D. G. (2016). Statistical tests, P values, confidence intervals, and power: A guide to misinterpretations. European Journal of Epidemiology, 31(4), 337–350. https://doi.org/10.1007/s10654-016-0149-3
- Wasserstein, R. L., & Lazar, N. A. (2016). The ASA statement on p-values: Context, process, and purpose. The American Statistician, 70(2), 129–133. https://doi.org/10.1080/00031305.2016.1154108
- Wilkinson, L., & Task Force on Statistical Inference. (1999). Statistical methods in psychology journals: Guidelines and explanations. American Psychologist, 54(8), 594–604. https://doi.org/10.1037/0003-066X.54.8.594
Cytowania BibTeX
@article{altman1994medical, author={Altman, Douglas G.}, title={The scandal of poor medical research}, journal={BMJ}, year={1994}, volume={308}, number={6924}, pages={283--284}, doi={10.1136/bmj.308.6924.283}}@article{lang2015sampl, author={Lang, Thomas A. and Altman, Douglas G.}, title={Basic statistical reporting for articles published in biomedical journals: the SAMPL guidelines}, journal={International Journal of Nursing Studies}, year={2015}, volume={52}, number={1}, pages={5--9}, doi={10.1016/j.ijnurstu.2014.09.006}}@article{appelbaum2018jars, author={Appelbaum, Mark and Cooper, Harris and Kline, Rex B. and Mayo-Wilson, Evan and Nezu, Arthur M. and Rao, Stephen M.}, title={Journal article reporting standards for quantitative research in psychology}, journal={American Psychologist}, year={2018}, volume={73}, number={1}, pages={3--25}, doi={10.1037/amp0000191}}@article{greenland2016misinterpretations, author={Greenland, Sander and Senn, Stephen J. and Rothman, Kenneth J. and Carlin, John B. and Poole, Charles and Goodman, Steven N. and Altman, Douglas G.}, title={Statistical tests, P values, confidence intervals, and power: a guide to misinterpretations}, journal={European Journal of Epidemiology}, year={2016}, volume={31}, number={4}, pages={337--350}, doi={10.1007/s10654-016-0149-3}}@article{wasserstein2016pvalues, author={Wasserstein, Ronald L. and Lazar, Nicole A.}, title={The ASA Statement on p-Values: Context, Process, and Purpose}, journal={The American Statistician}, year={2016}, volume={70}, number={2}, pages={129--133}, doi={10.1080/00031305.2016.1154108}}@article{wilkinson1999statistical, author={Wilkinson, Leland and {Task Force on Statistical Inference}}, title={Statistical methods in psychology journals: Guidelines and explanations}, journal={American Psychologist}, year={1999}, volume={54}, number={8}, pages={594--604}, doi={10.1037/0003-066X.54.8.594}}