Betrouwbaarheidsintervallen begrijpen met Python

Bronknooppunt: 1883080

Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon.

Inhoudsopgave

  1. Introductie
  2. Betrouwbaarheidsintervallen met Z-statistiek
  3. Betrouwbaarheidsintervallen interpreteren
  4. Aannames voor CI met z-statistiek
  5. Betrouwbaarheidsintervallen met t-statistiek
  6. Aannames voor CI met behulp van t-statistiek
  7. Een t-interval maken met gepaarde gegevens
  8. z-waarde vs t-waarde: wanneer wat gebruiken?
  9. Betrouwbaarheidsintervallen met python
  10. Eindnoot

Introductie

Telkens wanneer we een statistisch probleem oplossen, maken we ons zorgen over de schatting van populatieparameters, maar vaker wel dan niet is het bijna onmogelijk om populatieparameters te berekenen. Wat we in plaats daarvan doen, is willekeurige steekproeven nemen uit de populatie en steekproefstatistieken berekenen die verwachten de populatieparameters te benaderen. Maar hoe weten we of de steekproeven echte vertegenwoordigers van de populatie zijn of hoeveel deze steekproefstatistieken afwijken van populatieparameters? Dit is waar betrouwbaarheidsintervallen in beeld komen. Dus, wat zijn deze intervallen? Het betrouwbaarheidsinterval is een reeks waarden die boven en onder de steekproefstatistieken liggen of we kunnen het ook definiëren als de kans dat een reeks waarden rond de steekproefstatistiek de echte populatieparameter bevat.

Betrouwbaarheidsintervallen met Z-statistiek

Laten we, voordat we dieper op het onderwerp ingaan, kennis maken met enkele statistische terminologieën.

bevolking: Het is de verzameling van alle gelijkaardige individuen. Bijvoorbeeld de bevolking van een stad, studenten van een hogeschool, enz.

monster: Het is een kleine groep gelijkaardige individuen uit de populatie. Evenzo is een willekeurige steekproef een steekproef die willekeurig uit de populatie wordt getrokken.

parameters: Gemiddelde (mu), standaarddeviaties (sigma), proportie (p) afgeleid van de populatie.

statistisch: gemiddelde (x bar), standaardafwijking (S), verhoudingen (p^) die betrekking hebben op monsters.

Z scoren: het is de afstand van elk onbewerkt gegevenspunt op een normale verdeling van het gemiddelde genormaliseerd door standaarddeviatie. Gegeven door: x-mu/sigma

Oké, nu zijn we klaar om diep in het concept van betrouwbaarheidsintervallen te duiken. Om de een of andere reden geloof ik dat het veel beter is om concepten te begrijpen door middel van herkenbare voorbeelden in plaats van ruwe wiskundige definities. Dus laten we beginnen.

stel, je woont in een stad met 100,000 inwoners en er staan ​​verkiezingen voor de deur. Als opiniepeiler moet je voorspellen wie de verkiezing gaat winnen, blauw of geel. Dus je ziet dat het bijna onmogelijk is om informatie van de hele populatie te verzamelen, dus je kiest willekeurig 100 mensen. Aan het einde van de enquête ontdekte u dat 62% van de mensen voor geel gaat stemmen. Nu is de vraag of we moeten concluderen dat geel gaat winnen met een winkans van 62% of dat 62% van de hele bevolking op geel zal stemmen? Nou, het antwoord is NEE. We weten niet zeker hoe ver onze schatting verwijderd is van de werkelijke parameter, als we nog een steekproef nemen, kan het resultaat 58% of 65% zijn. Dus wat we in plaats daarvan zullen doen, is een reeks waarden rond onze steekproefstatistiek vinden die hoogstwaarschijnlijk de werkelijke populatieproportie zullen weergeven. Hier verwijst het aandeel naar het percentage van

Betrouwbaarheidsintervallen met Python

                                                                   afbeelding is van de auteur

Als we nu honderd van dergelijke steekproeven nemen en de steekproefverhouding van elke steekproef plotten, krijgen wij een normale verdeling van steekproevenverhoudingen en het gemiddelde van de verdeling zal de meest geschatte waarde van de populatieverhouding zijn. En onze schatting kan overal op de distributiecurve liggen. Volgens de 3-sigma-regel weten we dat ongeveer 95% van de willekeurige variabelen binnen twee standaardafwijkingen van het gemiddelde van de verdeling liggen. We kunnen dus concluderen dat de kans dat p^ is binnen 2 std afwijkingen van p bedraagt ​​95%. Of we kunnen ook stellen dat de kans dat p binnen 2 std afwijkingen onder en boven p^ ligt, ook 95% is. Deze twee uitspraken zijn in feite equivalent. Deze twee punten onder en boven de p^ zijn onze betrouwbaarheidsintervallen.

Betrouwbaarheidsintervallen met Python

                                                           afbeelding is van de auteur

Als we op de een of andere manier de sigma kunnen vinden, kunnen we ons vereiste interval berekenen. Maar sigma is hier de populatieparameter en we weten dat het vaak bijna onmogelijk te berekenen is, dus in plaats daarvan zullen we steekproefstatistieken gebruiken, dwz de standaardfout. Dit wordt gegeven als

waarbij p^= steekproefverhouding, n=aantal steekproeven

ZO =√(0.62. 0.38/100) = 0.05

dus 2xSE = 0.1

Het betrouwbaarheidsinterval voor onze gegevens is (0.62-0.1,0.62+0.1) of (0.52,0.72). Aangezien we 2xSE hebben genomen, vertaalt dit zich in een betrouwbaarheidsinterval van 95%.

Nu is de vraag wat als we een betrouwbaarheidsinterval van 92% willen creëren? In het vorige voorbeeld vermenigvuldigden we 2 met SE om een ​​95%-betrouwbaarheidsinterval te construeren, deze 2 is de z-score voor een 95%-betrouwbaarheidsinterval (exacte waarde is 1.96) en deze waarde kan worden gevonden in een z-tabel. De kritische waarde van z voor een betrouwbaarheidsinterval van 92% is 1.75. Verwijzen naar dit artikel voor een beter begrip van z-score en z-tabel.

Het interval wordt gegeven door: (p^ + z*.SE , p^-z*.SE).

Als in plaats van steekproefverhouding steekproefgemiddelde wordt gegeven, is de standaardfout sigma/sqrt(n). Hier sigma is de standaarddeviatie van de populatie, aangezien we die vaak niet hebben, gebruiken we in plaats daarvan de standaarddeviatie van de steekproef. Maar het wordt vaak waargenomen dat dit soort schatting waarbij het gemiddelde wordt gegeven, het resultaat een beetje bevooroordeeld is. Dus in dit soort gevallen heeft het de voorkeur om t-statistieken te gebruiken in plaats van z-statistieken.

De algemene formule voor een betrouwbaarheidsinterval met z-statistieken wordt gegeven door

Hier verwijst de statistiek naar het steekproefgemiddelde of de steekproefverhouding. sigmas zijn de standaarddeviatie van de populatie.

Betrouwbaarheidsintervallen interpreteren

Het is erg belangrijk om betrouwbaarheidsintervallen correct te interpreteren. Beschouw het vorige voorbeeld van een enquête waarin we ons 95%-betrouwbaarheidsinterval hebben berekend als (0.52,0.62). Wat betekent dat? Welnu, een 95%-betrouwbaarheidsinterval betekent dat als we n steekproeven uit de populatie trekken, het afgeleide interval 95% van de tijd de werkelijke populatieproportie zal bevatten. Onthoud dat een 95%-betrouwbaarheidsinterval niet betekent dat er een kans van 95% is dat het interval de werkelijke populatieproportie bevat. Bijvoorbeeld, voor een 90% betrouwbaarheidsinterval als we 10 steekproeven trekken uit een populatie, dan zal 9 van de 10 keer het genoemde interval de echte populatieparameter bevatten. Kijk naar de onderstaande afbeelding voor een beter begrip.

Interpretatie van het betrouwbaarheidsinterval

                                                            afbeelding is van de auteur

Aannames voor betrouwbaarheidsintervallen met behulp van Z-statistiek

Er zijn bepaalde aannames waar we naar moeten kijken om een ​​geldig betrouwbaarheidsinterval te construeren met behulp van z-statistiek.

  1. Willekeurige steekproef: De steekproeven moeten willekeurig zijn. Er zijn verschillende steekproefmethoden, zoals gestratificeerde steekproeven, eenvoudige willekeurige steekproeven, clustersteekproeven om willekeurige steekproeven te krijgen.
  2. Normale voorwaarde: De gegevens moeten aan deze voorwaarde voldoen np^>=10 en n.(1-p^)>=10. Dat betekent in wezen dat onze steekproefverdeling van steekproefgemiddelden normaal moet zijn, niet scheef aan beide kanten.
  3. Onafhankelijk: De steekproeven moeten onafhankelijk zijn. Het aantal steekproeven moet kleiner zijn dan of gelijk zijn aan 10% van de totale populatie of als de steekproeven worden gedaan met vervanging.

Betrouwbaarheidsintervallen met T-statistiek

Wat als de steekproefomvang relatief klein is en de standaarddeviatie van de populatie niet wordt gegeven of niet kan worden aangenomen? Hoe construeren we een betrouwbaarheidsinterval? wel, dat is waar t-statistiek om de hoek komt kijken. De basisformule voor het vinden van het betrouwbaarheidsinterval blijft hier hetzelfde, alleen z* vervangen door t*. De algemene formule wordt gegeven door

waarbij S = standaarddeviatie van het monster, n = aantal monsters

Stel, u heeft een feest georganiseerd en u wilt een schatting maken van de gemiddelde bierconsumptie van uw gasten. Je betrekt dus een willekeurige steekproef van 20 personen en meet de bierconsumptie. De monstergegevens zijn symmetrisch met een gemiddelde 0f 1200 ml en standaardafwijking van 120 ml. Dus nu wil je een 95% betrouwbaarheidsinterval construeren.

We hebben dus de standaarddeviatie van de steekproef, het aantal steekproeven en het steekproefgemiddelde. Alles wat we nodig hebben is t*. Dus t* voor een 95%-betrouwbaarheidsinterval met een vrijheidsgraad van 19(n-1 = 20-1) is 2.093. Ons vereiste interval is dus nadat de berekening (1256.16, 1143.83) is met een foutenmarge van 56.16. Verwijzen naar dit video om te weten hoe u de t-tabel moet lezen.

Aannames voor CI met behulp van T-statistiek

Vergelijkbaar met het geval van z-statistiek hier, ook in het geval van t-statistiek, zijn er enkele voorwaarden waar we op moeten letten in bepaalde gegevens.

  1. De steekproef moet willekeurig zijn
  2. Het monster moet normaal zijn. Om normaal te zijn, moet de steekproefomvang groter of gelijk zijn aan 30 of als de bovenliggende dataset, dwz de populatie, ongeveer normaal is. Of als de steekproefomvang kleiner is dan 30, dan moet de verdeling ruwweg symmetrisch zijn.
  3. Individuele observaties moeten onafhankelijk zijn. Dat betekent dat het de 10%-regel volgt of dat de bemonstering wordt gedaan met vervanging.

Een T-interval maken voor gepaarde gegevens

Tot nu toe hebben we alleen gegevens uit één steekproef gebruikt. Nu zullen we zien hoe we een t-interval kunnen construeren voor gepaarde gegevens. In gepaarde gegevens maken we twee observaties over hetzelfde individu. Bijvoorbeeld het vergelijken van pre- en post-testcijfers van studenten of gegevens over het effect van een medicijn en placebo op een groep personen. In gepaarde gegevens vonden we het verschil tussen de twee waarnemingen in de 3e kolom. Zoals gewoonlijk zullen we een voorbeeld doornemen om dit concept ook te begrijpen,

V. Een leraar probeerde het effect van een nieuw leerplan op het toetsresultaat te evalueren. Hieronder vindt u de resultaten van de waarnemingen.

T-interval voor gekoppelde gegevens

                                                      afbeelding is van de auteur

Omdat we intervallen voor het gemiddelde verschil willen vinden, hebben we alleen de statistieken voor de verschillen nodig. We zullen dezelfde formule gebruiken die we eerder hebben gebruikt

statistiek +- (kritische waarde of t-waarde) (standaarddeviatie van statistiek)

xd = gemiddelde van verschil, Sd = steekproef standaarddeviatie, voor een 95%-BI met een vrijheidsgraad 5 t* wordt gegeven door 2.57. De foutmarge = 0.97 en het betrouwbaarheidsinterval (4.18,6.13).

Interpretatie: Zoals we kunnen zien uit de bovenstaande schattingen, bevat het betrouwbaarheidsinterval geen nul- of negatieve waarden. We kunnen dus concluderen dat het nieuwe curriculum een ​​positieve invloed heeft gehad op de toetsprestaties van leerlingen. Als het alleen maar negatieve waarden had, zouden we kunnen zeggen dat het curriculum een ​​negatieve impact had. Of als het nul bevatte, zou er een mogelijkheid kunnen zijn dat het verschil nul was of geen effect van het curriculum op de testresultaten.

Z-waarde versus T-waarde

In het begin is er veel verwarring over wanneer je wat moet gebruiken. De vuistregel is wanneer de steekproefomvang >= 30 is en bekend is dat de populatiestandaarddeviatie z-statistieken gebruikt. Als de steekproefomvang < 30 is, gebruik dan t-statistieken. In het echte leven hebben we geen populatieparameters, dus we gaan voor z of t op basis van de steekproefomvang.

Bij kleinere steekproeven (n<30) is de centrale limietstelling niet van toepassing en wordt een andere verdeling genaamd Student's t-verdeling gebruikt. De t-verdeling is vergelijkbaar met de normale verdeling, maar neemt verschillende vormen aan, afhankelijk van de steekproefomvang. In plaats van z-waarden worden t-waarden gebruikt die groter zijn voor kleinere steekproeven, waardoor een grotere foutmarge ontstaat. Omdat een kleine steekproefomvang minder nauwkeurig zal zijn.

Betrouwbaarheidsintervallen met Python

Python heeft een enorme bibliotheek die allerlei statistische berekeningen ondersteunt, waardoor ons leven een beetje gemakkelijker wordt. In deze sectie zullen we kijken naar de gegevens over de slaapgewoonten van peuters. De 20 deelnemers aan deze observaties waren gezond, gedroegen zich normaal en hadden geen slaapstoornis. Ons doel is om de bedtijd van duttende en niet-duttende peuters te analyseren.

Referentie: Akacem LD, Simpkin CT, Carskadon MA, Wright KP Jr, Jenni OG, Achermann P, et al. (2015) De timing van de circadiane klok en slaap verschillen tussen duttende en niet-duttende peuters. PLoS ONE 10(4): e0125181. https://doi.org/10.1371/journal.pone.0125181

We gaan bibliotheken importeren die we nodig hebben

import numpy as np import pandas as pd from scipy.stats import t pd.set_option('display.max_columns', 30) # set zodat alle kolommen van het DataFrame kunnen worden weergegeven import wiskunde
df = pd.read_csv(nap_no_nap.csv) #gegevens lezen
df.head ()
Betrouwbaarheidsintervallen met Python

Maak twee 95%-betrouwbaarheidsintervallen voor de gemiddelde bedtijd, één voor peuters die een dutje doen en één voor peuters die dat niet doen. Eerst zullen we de kolom 'nacht slapen' isoleren voor degenen die een dutje deden in een nieuwe variabele, en degenen die niet in een andere nieuwe variabele een dutje deden. De bedtijd is hier decimaal.

bedtijd_dutje = df['nacht bedtijd'].loc[df['dutje'] == 1] bedtijd_geen_nap = df['nacht bedtijd'].loc[df['dutje'] == 0]

print(len(bedtijddutje))

print(len(bedtijd_geen_dutje))

uitgang: 15 n 5


Nu zullen we het voorbeeld van gemiddelde bedtijd voor dutje en no_nap vinden.

nap_mean_bedtime = bedtijd_nap.mean() #20.304 no_nap_mean_bedtime = bedtijd_no_nap.mean() #19.59

Nu zullen we de standaarddeviatie van de steekproef voor X . vindendutje en Xgeen dutje 

dutje_s_bedtijd = np.std(bedtijd_dutje,ddof=1) no_nap_s_bedtijd = np.std(bedtijd_geen_dutje,ddof=1)

Opmerking: de parameter ddof is ingesteld op 1 voor voorbeeld std dev, anders wordt het populatie std dev.

Nu zullen we de standaardfout van het voorbeeld voor X . vindendutje en Xgeen dutje 

nap_se_mean_bedtime = dutje_s_bedtijd/math.sqrt(len(bedtijd_dutje)) #0.1526 no_nap_se_mean_bedtime = no_nap_s_bedtijd/wiskunde.sqrt(len(bedtijd_geen_dutje)) #0.2270

Tot nu toe gaat het goed, nu de steekproefomvang klein is en we geen standaarddeviatie van de populatieproportie hebben, zullen we de t*-waarde gebruiken. Een manier om de t*-waarde te vinden is door te gebruiken pittige.statistieken t.ppf functie. De argumenten voor t.ppf() zijn q = percentage, df = vrijheidsgraad, schaal = std dev, loc = gemiddelde. Aangezien de t-verdeling symmetrisch is voor een 95%-betrouwbaarheidsinterval, zal q 0.975 zijn. Verwijzen naar dit voor meer informatie over t.ppf().

nap_t_star = t.ppf(0.975,df=14) #2.14 no_nap_t_star = t.ppf(0.975,df=5) #2.57

Nu zullen we de stukken toevoegen om uiteindelijk ons ​​betrouwbaarheidsinterval te construeren.

nap_ci_plus = dutje_gemiddelde_bedtijd + nap_t_star*nap_se_bedtijd

nap_ci_minus = dutje_gemiddelde_bedtijd – nap_t_star*nap_se_bedtijd

print(nap_ci_minus,nap_ci_plus)

no_nap_ci_plus = no_nap_mean_bedtime + no_nap_t_star*nap_se_bedtime

no_nap_ci_minus = no_nap_mean_bedtime – no_nap_t_star*nap_se_bedtime

print(geen_nap_ci_minus,geen_nap_ci_plus)


uitgang: 19.976680775477412 20.631319224522585 18.95974084563192 20.220259154368087

Interpretatie: 

Uit de bovenstaande resultaten concluderen we dat we er 95% zeker van zijn dat de gemiddelde bedtijd voor slapende peuters tussen 19.98 - 20.63 (pm) is, terwijl het voor niet-duttende peuters tussen 18.96 - 20.22 (pm) is. Deze resultaten zijn in overeenstemming met onze verwachting dat als u overdag een dutje doet, u 's avonds laat zult slapen.

Eindopmerkingen

Dit ging dus allemaal over eenvoudige betrouwbaarheidsintervallen met z- en t-waarden. Het is inderdaad een belangrijk concept om te weten in het geval van een statistisch onderzoek. Een geweldige inferentiële statistische methode om populatieparameters te schatten op basis van steekproefgegevens. Betrouwbaarheidsintervallen zijn ook gekoppeld aan het toetsen van hypothesen dat je voor een 95%-BI 5% ruimte laat voor anomalieën. Als de nulhypothese binnen het betrouwbaarheidsinterval valt, is de p-waarde groot en kunnen we nul niet verwerpen. Omgekeerd, als het verder valt, hebben we voldoende bewijs om nul te verwerpen en alternatieve hypothesen te accepteren.

Ik hoop dat je het artikel leuk vond en een gelukkig nieuwjaar (:

De in dit artikel getoonde media zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt.

Bron: https://www.analyticsvidhya.com/blog/2022/01/understanding-trust-intervals-with-python/

Tijdstempel:

Meer van Analytics Vidhya