Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Wnioskowanie statystyczne: estymacja w Pythonie

Workbook studenta | 180 minut | poziom podstawowy

Zasada: wykorzystujemy gotowe funkcje, a czas przeznaczamy na interpretację. W ćwiczeniach uzupełniasz najczęściej jedną linię (None oznacza: odpowiedź jeszcze nieuzupełniona). Dwa rozwijane przyciski podpowiadają, jakich funkcji i argumentów użyć.

Plan: 0–15 intuicja · 15–35 losowanie · 35–70 CTG · 70–80 przerwa · 80–110 estymacja punktowa · 110–145 przedziały i precyzja · 145–170 projektowanie n · 170–180 dyskusja. Dane są syntetyczne.

Środowisko gotowe!

0–35 min | Eksperyment: czy średnia próby jest stabilna?

Firma twierdzi, że realizacja zamówienia trwa średnio 13 godzin. Analityk z 20 obserwacji uzyskał 11,8 h. Czy możemy uznać, że proces przyspieszył?

Zmieniaj dwa suwaki i klikaj „Losuj ponownie”. Po lewej obserwujesz jedną próbę, po prawej rozkład średnich z kolejnych prób. Co zmienia liczebność? Co zmienia powtórzenie losowania?

Loading...

35–70 min | CTG dla średniej i proporcji

Uruchom dwie demonstracje. Najpierw obserwujemy rozkład średnich z 1500 prób, potem rozkład proporcji dla danych zero-jedynkowych. Kod demonstracyjny jest gotowy, bo tutaj liczy się zrozumienie zjawiska.

<Figure size 1200x350 with 3 Axes>

Zatrzymaj się: dlaczego rozkład średniej staje się bardziej skupiony, choć rozkład pojedynczych obserwacji się nie zmienia? Jaką rolę odgrywa n\sqrt n?

<Figure size 1200x350 with 3 Axes>

Porównaj: w jakiej sytuacji normalne przybliżenie proporcji jest słabe? Spójrz na przypadek n=10n=10, p=0,12p=0{,}12 i np=1,2np=1{,}2. Zapisz dwa wnioski.

70–80 min | Przerwa

80–110 min | Estymacja punktowa z gotowymi funkcjami

Pracujemy na 40 czasach realizacji i 400 dostawach, wśród których wystąpiło 48 reklamacji. Wystarczy kilka funkcji: np.mean(), np.std(), stats.sem().

Liczba czasów: 40 | Reklamacje: 48 na 400 dostaw

Zadanie 1. Oszacowanie średniej i jej błąd standardowy

Uzupełnij dwie linie. Następnie odpowiedz: czym różni się odchylenie standardowe czasów od błędu standardowego średniej?

Uzupełnij średnią i SE.
💡 Podpowiedź 1: gotowa funkcja

NumPy: np.mean() · SciPy: stats.sem()

🔎 Podpowiedź 2: jak jej użyć?

Wywołaj np.mean(czas) oraz stats.sem(czas). Funkcja sem() uwzględnia poprawkę ddof=1.

Zadanie 2. Udział reklamacji

Oblicz oszacowanie punktowe proporcji. Następnie powiedz menedżerowi, co oznacza ta liczba. Tu wystarczy dzielenie!

Uzupełnij jedno miejsce i uruchom ponownie.
💡 Podpowiedź 1: gotowa funkcja

Proporcja to po prostu liczba sukcesów podzielona przez liczebność próby.

🔎 Podpowiedź 2: jak jej użyć?

Wykorzystaj dostępne zmienne reklamacje i dostawy; zapis: reklamacje/dostawy.

110–145 min | Przedziały ufności bez ręcznego szukania kwantyli

Nie musisz sam wyliczać wartości krytycznej tt. SciPy zrobi to za Ciebie. Twoim zadaniem jest właściwie podać: poziom ufności, liczbę stopni swobody, oszacowaną średnią i SE.

Zadanie 3. Przedział 95% dla średniego czasu

Użyj gotowej funkcji. Następnie policz margines błędu jako połowę szerokości uzyskanego przedziału oraz precyzję względną względem oszacowania średniej.

Wyznacz przedział średniej.
💡 Podpowiedź 1: gotowa funkcja

SciPy: stats.t.interval() oraz stats.sem().

🔎 Podpowiedź 2: jak jej użyć?

Przekaż confidence=.95, df=len(czas)-1, loc=np.mean(czas) i scale=stats.sem(czas).

Zadanie 4. Przedział Wilsona dla udziału reklamacji

Wykorzystaj gotową metodę SciPy. Oblicz połowę szerokości przedziału w punktach procentowych. Dlaczego przy 12% lepiej zastosować Wilsona niż mechanicznie używać najprostszego przedziału Wald?

Wyznacz przedział Wilsona.
💡 Podpowiedź 1: gotowa funkcja

SciPy: stats.binomtest(...).proportion_ci() — używamy tu wyłącznie części wyznaczającej przedział, bez testowania hipotez.

🔎 Podpowiedź 2: jak jej użyć?

Przykładowe argumenty metody: confidence_level=.95, method="wilson". Najpierw utwórz wynik stats.binomtest(reklamacje,dostawy).

145–170 min | Jaka liczebność próby da wymaganą precyzję?

Przygotowujemy badanie, w którym margines błędu proporcji ma wynosić ±2 p.p. przy 95% ufności. Funkcja pomocnicza poniżej wykonuje obliczenia za Ciebie. Korzysta z stats.norm.ppf() i zaokrągla w górę. Pamiętaj, że to przybliżenie planistyczne.

Zadanie 5. Liczebność próby dla proporcji

Użyj tej samej gotowej funkcji w dwóch wariantach: p=0.12 (pilotaż) oraz p=0.50 (brak wcześniejszej wiedzy). Porównaj wyniki i wyjaśnij, dlaczego się różnią.

Wywołaj funkcję dla obu wariantów.
💡 Podpowiedź 1: gotowa funkcja

Użyj zdefiniowanej wyżej funkcji potrzebna_proba_proporcji().

🔎 Podpowiedź 2: jak jej użyć?

Wywołaj ją z argumentem p=.12, a potem p=.50. Precyzja .02 i ufność .95 są już wartościami domyślnymi.

Zadanie 6. Liczebność próby dla średniego czasu

Kierownik potrzebuje oszacowania średniego czasu realizacji z dokładnością ±1 h. Użyj odchylenia standardowego z próby pilotażowej i naszej funkcji pomocniczej.

Wywołaj funkcję dla s_pilot i precyzji 1 h.
💡 Podpowiedź 1: gotowa funkcja

Użyj funkcji potrzebna_proba_sredniej() z poprzedniej komórki.

🔎 Podpowiedź 2: jak jej użyć?

Pierwszy argument to s_pilot; domyślna precyzja wynosi 1 godzinę, a ufność .95.

Jak wygląda zależność precyzji od n?

Ten wykres jest już przygotowany, bo ważniejsze jest jego odczytanie niż ręczne budowanie. Ile razy należy zwiększyć próbę, aby zmniejszyć margines błędu dwukrotnie?

<Figure size 800x400 with 1 Axes>

170–180 min | Podsumowanie i rozmowa

  1. Jakimi dwiema funkcjami oszacujesz średnią i jej SE?

  2. Kiedy użyjesz stats.t.interval() i kiedy .proportion_ci(method="wilson")?

  3. Co oznacza margines błędu ±2 p.p.?

  4. Dlaczego większa liczebność próby daje mniejszy błąd, ale nie zawsze proporcjonalnie do wzrostu kosztów?

Twój mini-raport: podaj oszacowanie punktowe, 95% CI, margines błędu i zaproponuj liczebność nowej próby. Wystarczy 5–6 zdań, bez testów hipotez.