Jak obliczyć przedziały ufności w pythonie
Przedział ufności dla średniej to zakres wartości, który prawdopodobnie będzie zawierał średnią populacji przy pewnym poziomie ufności.
Oblicza się go w następujący sposób:
Przedział ufności = x +/- t*(s/√n)
Złoto:
- x : średnia próbki
- t: wartość t, która odpowiada poziomowi ufności
- s: odchylenie standardowe próbki
- n: wielkość próbki
W tym samouczku wyjaśniono, jak obliczyć przedziały ufności w języku Python.
Przedziały ufności przy użyciu rozkładu t
Jeśli pracujemy z małą próbą (n < 30), możemy użyć funkcji t.interval() z biblioteki scipy.stats do obliczenia przedziału ufności dla średniej populacji.
Poniższy przykład pokazuje, jak obliczyć przedział ufności dla rzeczywistej średniej wysokości populacji (w calach) określonego gatunku roślin na próbie 15 roślin:
import numpy as np import scipy.stats as st #define sample data data = [12, 12, 13, 13, 15, 16, 17, 22, 23, 25, 26, 27, 28, 28, 29] #create 95% confidence interval for population mean weight st.t.interval(alpha=0.95, df=len(data)-1, loc=np.mean(data), scale=st.sem(data)) (16.758, 24.042)
95% przedział ufności dla prawdziwej średniej wielkości populacji wynosi (16,758; 24,042) .
Zauważysz, że im wyższy poziom ufności, tym szerszy przedział ufności. Oto jak na przykład obliczyć 99% CI dla dokładnie tych samych danych:
#create 99% confidence interval for same sample st.t.interval(alpha= 0.99 , df=len(data)-1, loc=np.mean(data), scale=st.sem(data)) (15.348, 25.455)
99% przedział ufności dla prawdziwej średniej wielkości populacji wynosi (15,348; 25,455) . Należy zauważyć, że ten przedział jest szerszy niż poprzedni przedział ufności 95%.
Przedziały ufności przy użyciu rozkładu normalnego
Jeśli pracujemy z większymi próbami (n≥30), możemy założyć, że rozkład próbkowania średniej próbki ma rozkład normalny (dziękicentralnemu twierdzeniu granicznemu ) i zamiast tego możemy skorzystać z funkcji normy. interwał() z biblioteki scipy .stats.
Poniższy przykład pokazuje, jak obliczyć przedział ufności dla rzeczywistej średniej wysokości populacji (w calach) określonego gatunku roślin na próbie 50 roślin:
import numpy as np import scipy.stats as st #define sample data np.random.seed(0) data = np.random.randint(10, 30, 50) #create 95% confidence interval for population mean weight st.norm.interval(alpha=0.95, loc=np.mean(data), scale=st.sem(data)) (17.40, 21.08)
95% przedział ufności dla prawdziwej średniej wielkości populacji wynosi (17,40; 21,08) .
Podobnie jak w przypadku rozkładu t, wyższe poziomy ufności prowadzą do szerszych przedziałów ufności. Oto jak na przykład obliczyć 99% CI dla dokładnie tych samych danych:
#create 99% confidence interval for same sample st.norm.interval(alpha= 0.99 , loc=np.mean(data), scale=st.sem(data)) (16.82, 21.66)
95% przedział ufności dla prawdziwej średniej wielkości populacji wynosi (17,82; 21,66) .
Jak interpretować przedziały ufności
Załóżmy, że nasz 95% przedział ufności dla prawdziwej średniej wysokości gatunku rośliny wynosi:
95% przedział ufności = (16,758; 24,042)
Sposób interpretacji tego przedziału ufności jest następujący:
Istnieje 95% szans, że przedział ufności [16,758, 24,042] zawiera prawdziwą średnią wysokość rośliny w populacji.
Innym sposobem powiedzenia tego samego jest stwierdzenie, że istnieje tylko 5% szans, że prawdziwa średnia populacji leży poza 95% przedziałem ufności. Oznacza to, że istnieje tylko 5% szans, że faktyczna średnia wysokość rośliny będzie mniejsza niż 16,758 cala lub większa niż 24,042 cala.