Een zachte introductie tot statistische Tolerantieintervallen in Machine Learning

Tweet Share Share

laatst bijgewerkt op 8 augustus 2019

het kan nuttig zijn om een boven-en onderlimiet voor gegevens te hebben.

deze grenzen kunnen worden gebruikt om anomalieën te helpen identificeren en verwachtingen te stellen voor wat te verwachten. Een binding aan waarnemingen van een populatie wordt een tolerantieinterval genoemd. Een tolerantieinterval komt van het gebied van schattingsstatistieken.

Een tolerantie-interval verschilt van een voorspellingsinterval dat de onzekerheid voor een enkele voorspelde waarde kwantificeert. Het verschilt ook van een betrouwbaarheidsinterval dat de onzekerheid van een populatieparameter zoals een gemiddelde kwantificeert. In plaats daarvan bestrijkt een tolerantieinterval een deel van de verdeling van de bevolking.

in deze handleiding vindt u statistische tolerantieintervallen en hoe u een tolerantieinterval voor Gaussiaanse gegevens kunt berekenen.

na het voltooien van deze tutorial, zult u weten:

  • Dat statistische tolerantieintervallen een grens geven aan waarnemingen van een populatie.
  • dat een tolerantieinterval vereist dat zowel een dekkingsgraad als een betrouwbaarheid worden gespecificeerd.
  • dat het tolerantieinterval voor een gegevensmonster met een Gaussiaanse verdeling gemakkelijk kan worden berekend.

start uw project met mijn nieuwe boek statistieken voor Machine Learning, inclusief stap-voor-stap tutorials en de Python broncode bestanden voor alle voorbeelden.

laten we beginnen.

Een Zachte Inleiding tot statistische Tolerantieintervallen in Machine Learning foto door Paul Hood, enkele rechten voorbehouden.

Tutorial Overview

Deze tutorial is verdeeld in 4 delen; ze zijn:

  1. grenzen voor gegevens
  2. Wat zijn statistische Tolerantieintervallen?
  3. Hoe te berekenen tolerantie intervallen
  4. tolerantie Interval voor Gaussiaanse distributie

hulp nodig met statistieken voor Machine Learning?

neem nu mijn gratis 7-daagse e-mail spoedcursus (met voorbeeldcode).

Klik om u aan te melden en ontvang ook een gratis PDF Ebook versie van de cursus.

Download uw gratis minicursus

grenzen op Data

Het is nuttig om grenzen op data te stellen.

bijvoorbeeld, als u een steekproef van gegevens uit een domein hebt, kan het kennen van de boven-en ondergrens voor normale waarden nuttig zijn voor het identificeren van afwijkingen of uitschieters in de gegevens.

voor een proces of model dat voorspellingen doet, kan het nuttig zijn om het verwachte bereik te weten dat verstandige voorspellingen kunnen nemen.

Het kennen van het gemeenschappelijke bereik van waarden kan helpen bij het instellen van verwachtingen en het detecteren van anomalieën.

het bereik van gemeenschappelijke waarden voor gegevens wordt een tolerantie-interval genoemd.

Wat zijn statistische Tolerantieintervallen?

het tolerantieinterval is gebonden aan een schatting van het aandeel gegevens in een populatie.

een statistisch tolerantieinterval een bepaald deel van de eenheden van de bemonsterde populatie of het bemonsterde proces.

– Page 3, Statistical intervallen: A Guide for Practitioners and Researchers, 2017.

het interval wordt beperkt door de bemonsteringsfout en door de variantie van de populatieverdeling. Gezien de wet van grote aantallen, als de steekproefgrootte wordt verhoogd, zullen de waarschijnlijkheden beter overeenkomen met de onderliggende populatiedistributie.

Hieronder is een voorbeeld van een opgegeven tolerantieinterval:

het bereik van x tot y bestrijkt 95% van de gegevens met een betrouwbaarheid van 99%.

als de gegevens Gaussiaans zijn, kan het interval worden uitgedrukt in de context van de gemiddelde waarde; bijvoorbeeld:

x +/- y bestrijkt 95% van de gegevens met een betrouwbaarheid van 99%.

we verwijzen naar deze intervallen als statistische tolerantieintervallen, om ze te onderscheiden van tolerantieintervallen in engineering die grenzen van aanvaardbaarheid beschrijven, zoals voor een ontwerp of een materiaal. Over het algemeen zullen we ze beschrijven als gewoon “tolerantieintervallen” voor het gemak.

Een tolerantie-interval wordt gedefinieerd in twee hoeveelheden:

  • dekking: het deel van de bevolking dat door het interval wordt bestreken.
  • vertrouwen: het probabilistische vertrouwen dat het interval het deel van de bevolking bestrijkt.

het tolerantieinterval wordt berekend aan de hand van twee coëfficiënten, de coverage en de tolerantiecoëfficiënt. De dekking is het deel van de bevolking (p) dat het interval verondersteld wordt te bevatten. De tolerantiecoëfficiënt is de betrouwbaarheidsgraad waarmee het interval de gespecificeerde dekking bereikt. Een tolerantieinterval met een dekking van 95% en een tolerantiecoëfficiënt van 90% zal 95% van de verdeling van de bevolking bevatten met een betrouwbaarheid van 90%.

– Page 175, Statistics for Environmental Engineers, Second Edition, 2002.

Hoe worden Tolerantieintervallen berekend

De grootte van een tolerantieinterval is evenredig met de grootte van de gegevenssteekproef van de populatie en de variantie van de populatie.

Er zijn twee belangrijke methoden voor het berekenen van tolerantieintervallen afhankelijk van de verdeling van de gegevens: parametrische en niet-parametrische methoden.

  • parametrisch Tolerantieinterval: Gebruik kennis van de spreiding van de populatie bij het specificeren van zowel de dekking als de betrouwbaarheid. Vaak gebruikt om te verwijzen naar een Gaussiaanse verdeling.
  • niet-parametrisch Tolerantieinterval: gebruik rangstatistieken om de dekking en betrouwbaarheid te schatten, wat vaak resulteert in minder precisie (bredere intervallen) gezien het gebrek aan informatie over de distributie.de Tolerantieintervallen van

zijn relatief eenvoudig te berekenen voor een steekproef van onafhankelijke waarnemingen uit een Gaussiaanse verdeling. We zullen deze berekening in de volgende sectie demonstreren.

Tolerantieinterval voor Gaussiaanse distributie

In deze sectie zullen we een voorbeeld van het berekenen van de tolerantieintervallen op een gegevensmonster bekijken.

laten we eerst onze datasteekproef definiëren. We zullen een steekproef van 100 waarnemingen maken, getrokken uit een Gaussiaanse verdeling met een gemiddelde van 50 en een standaardafwijking van 5.

1
2

# generate dataset
data = 5 * randn(100) + 50

Tijdens het voorbeeld, we gaan ervan uit dat we ons niet bewust zijn van het werkelijke bevolkingsgemiddelde en de standaardafwijking en dat deze waarden moeten worden geschat.

omdat de populatieparameters moeten worden geschat, is er extra onzekerheid. Voor een dekking van 95% kunnen we bijvoorbeeld 1,96 (of 2) standaardafwijkingen van het geschatte gemiddelde gebruiken als tolerantieinterval. We moeten het gemiddelde en de standaardafwijking van de steekproef schatten en rekening houden met deze onzekerheid, daarom is de berekening van het interval iets complexer.

vervolgens moeten we het aantal vrijheidsgraden specificeren. Dit zal worden gebruikt bij de berekening van kritische waarden en bij de berekening van het interval. In het bijzonder wordt het gebruikt bij de berekening van de standaardafwijking.

onthoud dat de vrijheidsgraden het aantal waarden in de berekening zijn dat kan variëren. Hier hebben we 100 observaties, dus 100 vrijheidsgraden. We kennen de standaardafwijking niet, daarom moet deze worden geschat met behulp van het gemiddelde. Dit betekent dat onze vrijheidsgraden (n – 1) of 99 zullen zijn.

1
2
3

# geef graden van vrijheid
n = len(data)
dof = n – 1

vervolgens moeten we de proportionele dekking van de gegevens specificeren. In dit voorbeeld zijn we geïnteresseerd in de middelste 95% van de gegevens. De verhouding is 95. We moeten dit percentage verschuiven zodat het de middelste 95% dekt, dat wil zeggen van 2,5 percentiel naar 97,5 percentiel.

we weten dat de kritische waarde voor 95% 1,96 is gezien het feit dat we het zo vaak gebruiken; niettemin kunnen we het direct berekenen in Python gezien het percentage 2,5% van de inverse survival functie. Dit kan worden berekend met behulp van de norm.ISF () SciPy functie.

1
2
3
4

# geef de gegevens van de dekking
prop = 0.95
prop_inv = (1.0 – prop) / 2.0
gauss_critical = norm.isf (prop_inv)

vervolgens moeten we de betrouwbaarheid van de dekking berekenen. We kunnen dit doen door de kritische waarde uit de Chi kwadraat verdeling te halen voor het gegeven aantal vrijheidsgraden en gewenste waarschijnlijkheid. We kunnen de chi2 gebruiken.ISF () SciPy functie.

1
2
3

# geef vertrouwen
prob = 0.99
chi_critical = chi2.isf (q=prob, df=dof)

we hebben nu alle stukken om het Gaussiaanse tolerantieinterval te berekenen. De berekening is als volgt:

1
interval = sqrt((dof * (1 + (1/n)) * gauss_critical^2) / chi_critical)

Waar dof is het aantal van vrijheidsgraden, n is de grootte van de gegevenssteekproef, gauss_critical is de kritische waarde, zoals 1,96 voor 95% dekking van de bevolking, en chi_critical is de chi kwadraat kritische waarde voor het gewenste vertrouwen en vrijheidsgraden.

1
interval = sqrt((dof * (1 + (1/n)) * gauss_critical**2) / chi_critical)

Wij kunnen binden dit alles bereken samen het Gaussiaanse tolerantieinterval voor onze gegevenssteekproef.

het volledige voorbeeld wordt hieronder weergegeven.

het uitvoeren van het voorbeeld berekent en print eerst de relevante kritische waarden voor de Gaussiaanse en Chi kwadraat distributies. De tolerantie wordt afgedrukt en vervolgens correct gepresenteerd.

Het kan ook nuttig zijn om aan te tonen hoe het tolerantieinterval zal afnemen (nauwkeuriger worden) naarmate de grootte van het monster wordt vergroot.

het onderstaande voorbeeld toont dit aan door het tolerantieinterval voor verschillende monstergroottes voor hetzelfde kleine gekunstelde probleem te berekenen.

het uitvoeren van het voorbeeld maakt een plot met het tolerantieinterval rond het werkelijke populatiegemiddelde.

we kunnen zien dat het interval kleiner wordt (nauwkeuriger) als de steekproefgrootte wordt verhoogd van 5 naar 15 voorbeelden.

Error Bar Plot of Tolerance Interval vs Sample Size

extensies

Deze sectie bevat enkele ideeën voor het uitbreiden van de tutorial die u misschien wilt verkennen.

  • Lijst 3 gevallen waarin een tolerantie interval kan worden gebruikt in een machine learning project.
  • Lokaliseer een dataset met een Gaussiaanse variabele en bereken er tolerantieintervallen voor.
  • onderzoek en beschrijf één methode voor het berekenen van een niet-parametrisch tolerantieinterval.

Als u een van deze extensies verkent, zou ik dat graag willen weten.

verder lezen

Deze sectie biedt meer bronnen over het onderwerp als u dieper wilt gaan.

boeken

  • inzicht in de nieuwe statistieken: Effectgroottes, betrouwbaarheidsintervallen en Meta-analyse, 2017.
  • Statistical intervallen: a Guide for Practitioners and Researchers, 2017.

API

  • scipy.Statistiek.norm () API
  • scipy.Statistiek.chi2 () API
  • matplotlib.pyplot.errorbar() API

artikelen

  • Tolerantieinterval op Wikipedia
  • 68-95-99.7 regel op Wikipedia
  • percentiel op Wikipedia
  • Tolerantieintervallen voor een normale distributie

samenvatting

in deze tutorial ontdekte u statistische tolerantieintervallen en hoe u een tolerantieinterval kunt berekenen voor Gaussiaanse data.

specifiek heeft u geleerd:

  • Dat statistische tolerantieintervallen grenzen geven aan waarnemingen van een populatie.
  • dat een tolerantieinterval vereist dat zowel een dekkingsgraad als een betrouwbaarheid worden gespecificeerd.
  • dat het tolerantieinterval voor een gegevensmonster met een Gaussiaanse verdeling gemakkelijk kan worden berekend.

heeft u vragen?
Stel uw vragen in de opmerkingen hieronder en Ik zal mijn best doen om te beantwoorden.

Krijg grip op statistieken voor Machine Learning!

Ontwikkel een werkend begrip van statistieken

…Door regels code te schrijven in python

ontdek hoe in mijn nieuwe Ebook:
statistische methoden voor Machine Learning

Het zelfstudie tutorials biedt over onderwerpen als:
hypothese testen, correlatie, niet-parametrische statistieken, Resampling, en nog veel meer…

ontdek hoe gegevens in kennis kunnen worden omgezet

sla de academici over. Alleen Resultaten.

bekijk wat er in

Tweet Share Share

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.