Statistical auditing (99)

De steekproefomvang ontmaskerd - deel 4

Een accountant die gebruikmaakt van software om een steekproefomvang te berekenen, moet zeker weten dat die software dat goed doet. Daarvoor moet je de rekenmethode begrijpen die de software gebruikt.

Niels van Leeuwen

Als auditor maak je ongetwijfeld wel eens gebruik van rekenbladen in Excel of auditsoftware om een steekproefomvang te berekenen. Dit soort middelen maken gebruik van algoritmes om deze berekeningen geautomatiseerd uit te voeren. Het is goed om te beseffen hoe deze middelen tot een bepaalde uitkomst komen. Je bent als auditor namelijk verantwoordelijk dat je voldoende werk hebt gedaan om een conclusie te trekken over het controleobject van de opdracht. Als de rekenmethodes niet deugen kan het voorkomen dat je te weinig hebt gedaan en materiële fouten over het hoofd hebt gezien. Je kunt je dan niet verschuilen achter de ontwikkelaar van de rekenmethode. Je moet begrijpen hoe deze middelen in elkaar zitten om vast te stellen dat ze juist werken.

In deze column kijken we naar een van de manieren hoe software een steekproefomvang kan bepalen. Het doel is je inzicht hierin te geven zodat je met voldoende vertrouwen op de uitkomst kunt steunen. Deze column is deel van een serie columns waarin we stil staan bij het berekenen van de steekproefomvang. Deze column laat zien hoe software tot een steekproefomvang kan komen. Dit doen we door eerst uit te leggen hoe de steekproef handmatig berekend kan worden en vervolgens wordt aangegeven hoe dit geautomatiseerd kan worden.

Handmatig

In eerdere columns hebben we stilgestaan bij de rekenformules waarmee een steekproefomvang berekend kan worden. We hebben toegelicht dat je een steekproef kunt berekenen met formules van een drietal kansverdelingen, te weten de:

  • Hypergeometrische verdeling
  • Binomiale verdeling
  • Poisson verdeling

Deze formules maken allemaal gebruik van de volgende parameters:

  • De populatieomvang (N)
  • De materialiteit (p)
  • Het aantal verwachte fouten in de steekproef (k)
  • De steekproefomvang (n)

We hebben gezien dat de uitkomst van deze formules het risico op het onterecht goedkeuren van de massa is, oftewel het beta-risico (β).

Als we een jaarrekeningonderdeel willen controleren met een steekproef moeten we de steekproefomvang bepalen waarmee we voldoende zekerheid behalen. Als we een gewenste betrouwbaarheid in gedachten hebben, dan kunnen we drie van de vier bovengenoemde parameters vooraf bepalen, te weten de populatieomvang, de materialiteit en het aantal verwachte fouten. De enige parameter die onbekend is, is dan de steekproefomvang.

We kunnen de minimaal benodigde steekproefomvang bepalen met een iteratiemethode. Dit doe je door eerst de kleinst mogelijke steekproef in te vullen in de formule. Het startpunt is dan dus een steekproefomvang van slechts 1 post. Als we vervolgens de formule uitrekenen zien we direct of het gewenste betrouwbaarheidsniveau is bereikt. Hoogst waarschijnlijk zal dit nog niet het geval zijn met 1 post. Zolang dit nog niet het geval is, verhogen we de steekproef steeds met 1 post. Dit heeft tot gevolg dat de uitkomst van de formule steeds dichter bij het gewenste betrouwbaarheidsniveau komt.

We kunnen dit inzichtelijk maken met een voorbeeld. Voor dit voorbeeld hebben we gegevens nodig. We kunnen de gegevens gebruiken die we ook in eerdere columns hebben gehanteerd. Dit waren de volgende gegevens:

  • β = 5%
  • N = 1.000.000
  • p = 5%
  • k = 0

We kunnen deze parameters invullen in Excel met de volgende formules:

Verdeling Functie
Binomiaal 95% ≤ 1 - BINOM.VERD(k; n; p; 1)
Hypergeometrisch 95% ≤ 1 - HYPGEOM.VERD(k; n; K; N, 1)
Poisson 95% ≤ 1 - POISSON.VERD(k; n*p, 1)

Als we de binomiale verdeling gebruiken kunnen we de volgende tabel maken:

Betrouwbaarheid k n β
5% 0 1 5%
40% 0 10 5%
95% 0 60 5%

We zien dat een steekproefomvang van 1 slechts leidt tot een betrouwbaarheidspercentage van 5%. Dat is natuurlijk veel te laag, want met een b van 5% willen we minimaal 95% betrouwbaarheid behalen. Als we de steekproefomvang verhogen van 1 naar 10 wordt het betrouwbaarheidspercentage al beter, namelijk 40%. Bij een steekproefomvang van 60 behalen we het gewenste betrouwbaarheidspercentage van 95%.

Algoritmes

Softwarepakketten maken ons leven makkelijker door deze handmatige handeling te automatiseren doormiddel van geprogrammeerde algoritmes. Een algoritme is in feite niets anders dan een opdracht voor de computer om een aantal stappen voor ons uit te voeren. Je geeft de computer een aantal parameters mee en laat hem dan herhaaldelijk de berekening uitvoeren. Feitelijk gebeurt dan exact hetzelfde als we hierboven hebben gezien. Zolang de uitkomst van de berekening onder het gewenste betrouwbaarheidspercentage ligt, laat je de computer de steekproefomvang verhogen. Wanneer het gewenste betrouwbaarheidspercentage is bereikt, kun je de computer de steekproefomvang terug laten geven.

Het algoritme wat we hier gebruiken wordt met de Engelse term 'Brute Force' aangeduid. Het houdt in dat de computer alle mogelijke scenario’s afgaat tot het gewenste resultaat is bereikt. Dit is een van de algoritmes die softwareprogramma's gebruiken om te komen tot een minimale steekproefomvang. Zoals we in de eerdere columns hebben gezien is dit echter niet de enige manier om tot een steekproefomvang te komen. Een van de alternatieven is gebruikmaken van de np-waarde uit de inverse gamma formule. Op die manier zou een softwarepakket bijvoorbeeld ook tot een steekproefomvang kunnen komen. Het zal per pakket verschillen welk algoritme achter de schermen draait.

Brute force algoritmes hebben als voordeel dat ze ten opzichte van andere algoritmes relatief goed te doorgronden zijn. Ze staan echter ook bekend als inefficiënte algoritmes omdat ze alle opties afgaan voordat ze bij het juiste antwoord komen. Het is daarom ook een relatief traag algoritme, omdat de computer voor iedere berekening die het doet tijd moet nemen. Voor het berekenen van een steekproefomvang zul je daar echter weinig hinder van ondervinden, aangezien computers in deze tijd heel snel door de berekeningen schiet. Voor je het door hebt, heeft je computer enkele honderden keren de berekening gemaakt en heb je de juiste steekproefomvang op je scherm staan.

Je weet nu hoe software tot een steekproefomvang kan komen. Je kan daardoor met voldoende vertrouwen gebruik maken van rekenbladen of softwarepakketten die gebruik maken van brute-force-algoritmes. Je kunt hierdoor ook rekenbladen en software kritisch beoordelen, zodat je met voldoende vertrouwen gebruik kan maken van deze middelen.

Je hebt in de eerste column meerdere manieren geleerd om tot een steekproefomvang te komen. De tweede column leerde je hoe je in Excel op drie manieren tot een steekproefomvang kunt komen. In de derde column heb je de inverse functies zelf nagerekend, zodat je met vertrouwen kunt steunen op deze functies. In deze column heb je geleerd hoe je algoritmes kunt schrijven om tot een steekproef te kunnen komen.

In de volgende en laatste column laten we zien hoe je het open-sourcesoftwarepakket JASP kunt gebruiken om tot de juiste steekproefomvang te komen. Voor geïnteresseerden is in de bijlagen van deze column nog een instructie opgenomen hoe je in Excel zelf een algoritme kunt bouwen die het bovenstaande in de praktijk toepast. Daarnaast is een Excel opgenomen waarin het bovenstaande al is uitgewerkt.

Bijlagen

Steekproefalgoritmes in Excel & Steekproefberekening (zip-bestand)

Referenties

Stewart, Trevor. R. (2012). Technical Notes on the AICPA Audit Guide Audit Sampling. American Institute of Certified Public Accountants, New York.

Gerelateerd

5 reacties

Koen Derks

Hi Ron,

Mee eens dat "de nobele kunst van het vragen stellen" essentieel is als het op chatGPT aankomt. Ik kon het niet laten om het ook even te gaan proberen met een beter geformuleerde vraag. Hier kwam ik op uit:

"Je bent een auditor en je moet tijdens een audit een steekproef nemen. Het doel van de steekproef is om met 95% betrouwbaarheid te kunnen stellen dat er niet meer dan 5% van de populatie van 1000000 euros fout is. Je verwacht 0 fouten te vinden in de steekproef. Bereken de steekproefgrootte. Gebruik één van de volgende verdelingen: Poisson, binomiaal, hypergeometrisch. Gebruik een exacte methode."

Grappig genoeg krijg ik chatGPT bij herhaaldelijk proberen maar niet van die normale benadering af. Overigens komt chatGPT met deze vraag bij mij helemaal niet op een antwoord want in de normale verdeling wil hij delen door 0. De antwoorden van chatGPT zijn natuurlijk elke keer anders, misschien heb jij meer geluk!

Ron Heinen

@Koen Derks

Om een voorbeeld te geven bij mijn eerdere reactie op dit artikeltje dat GPT4 correcte antwoorden geeft op Inferential Statistics vragen, hieronder het GPT4 antwoord op Vraag 35 van Hoofdstuk 19 uit het gebruikte boek Stats: Data and Models bij de module Inferential Statistics op de Universiteit Twente:

a) This is a one-tailed test because the professor is interested in determining if the implementation of regular graded assignments will result in an increase in the average exam score.

b) The null hypothesis (H0) is that the implementation of regular graded assignments will have no effect on the average exam score. The alternative hypothesis (Ha) is that the implementation of regular graded assignments will result in an increase in the average exam score.

c) If the professor makes a Type I error, it means that they reject the null hypothesis when it is actually true. In this context, it would mean that the professor concludes that the implementation of regular graded assignments has a positive effect on the average exam score when, in fact, it does not.

d) If the professor makes a Type II error, it means that they fail to reject the null hypothesis when it is actually false. In this context, it would mean that the professor concludes that the implementation of regular graded assignments has no effect on the average exam score when, in fact, it does.

e) The power of this test refers to the probability of correctly rejecting the null hypothesis when it is false. In other words, it is the probability of avoiding a Type II error.

Zoals je zelf kunt vaststellen: Als de vraag goed gesteld is, is het GPT4 antwoord correct.

Je kunt dit bijvoorbeeld gebruiken om te testen of je de vraag goed gestelt hebt door te kijken of GPT4 met het goede antwoord komt.

Ron Heinen

@Koen Derks

Dank voor de reactie.

Het onderwerp van deze artikelenreeks "De steekproefomvang ontmaskerd" valt onder het wiskundige onderwerp Inferential Statistics.

Op de Universiteit Twente wordt voor de module Inferential Statistics, zie

https://vimeo.com/groups/504494

Stats Data and Models, zie

https://drive.google.com/file/d/1z8sHUR1n_Qvu2XGISsV6s78wxT1WEFZd

gebruikt.

Wanneer je de Exercises aan het einde van ieder hoofdstuk laat beantwoorden door GPT4 dan worden deze vragen zeer goed beantwoord door GPT4.

In de vraag "Wanneer we de steekproefomvang willen bepalen wat moet je dan weten?" welke ik GPT4 voorgelegd heb naar aanleiding van dit artikel heb ik de specifieke condities van de situatie niet opgenomen in de vraag.

GPT4 kon wegens het ontbreken van deze condities niet anders dan de algemene normale verdeling gebruiken.

Het is dus belangrijk hoe je een vraag stelt aan GPT4 voor het antwoord dat je krijgt.

Koen Derks

@Ron Heijnen

ChatGPT biedt veel kansen maar het lijkt mij op dit moment niet wenselijk om ChatGPT voor dit soort berekeningen als primary resource te gebruiken. In dit voorbeeld stelt het toch een vrij inefficiënte benadering voor met behulp van de normale verdeling. Die manier van berekenen kun je gebruiken maar dan zul je vaak te veel werk doen (in dit voorbeeld al minimaal 14 steken te veel vergeleken met de andere verdelingen, want dan zul je van minimaal 60 naar minimaal 74 steken gaan, dat is een verhoging van zo'n 23%, gegeven dat je daadwerkelijk 0 fouten in je steekproef tegenkomt). Ik denk dat waarschijnlijk niemand het voor de assurance erg vinden als er meer steken worden genomen dan het minimale aantal, maar wat als ChatGPT straks met een overtuigend ingevulde formule op 50, 40, of 30 steken als antwoordt uitkomt? Het blijft denk ik belangrijk (en dat lees ik volgens mij ook ook terug in deze columns) dat de accountant niet alleen de initiële berekening zelf kan uitvoeren maar dat die ook begrijpt hoe deze tot stand komt en deze kan uitleggen. Valideren kan daarna altijd nog met ChatGPT. Hoe kijk jij daar tegenaan vanuit de praktijk? Wat zijn de afwegingen hierbij?

Ron Heinen

Aan het AI-Systeem GPT4 kun je zeer algemene vragen stellen. Zo kun je ook het berekenen van een steekproefomvang vragen:

Vraag: Wanneer we de steekproefomvang willen bepalen wat moet je dan weten?

Antwoord: Om de omvang van de steekproef (n) te kunnen bepalen moeten een aantal stappen worden ondernomen:

1.De omvang van de populatie (N) moet worden bepaald.
2.Het bepalen van de mate waarin het te onderzoeken gegeven in de populatie voorkomt (uitgedrukt in een percentage).
3.Bepaal de gewenste (on)nauwkeurigheid.
4.Bepaal de gewenste betrouwbaarheid waarover je uitspraken wilt doen. 95% betrouwbaarheid wordt het meest gebruikt, maar ook 90% en zelfs 99% komen voor 1.

Vraag: De populatie is 1 miljoen. Het percentage waarin het te onderzoeken gegeven in de populatie voorkomt is 5 procent. De gewenste onnauwkeurigheid is 5 procent. De gewenste betrouwbaarheid is 95 procent. Wat is de grootte van de steekproef?

Antwoord: Met een populatie van 1 miljoen, een verwachte populatieproportie van 5%, een z-score van 1,96 (voor een betrouwbaarheidsniveau van 95%) en een gewenste foutmarge van 5%, kun je de steekproefgrootte berekenen met de formule N = (Z^2 * p * (1-p)) / E^2. Als je deze waarden invult in de formule krijg je N = (1.96^2 * 0.05 * 0.95) / 0.05^2 = 73.2144. Dit betekent dat je een steekproefgrootte van ongeveer 73 nodig hebt om aan deze criteria te voldoen.

Op deze manier kun je zeer vele wiskundige vragen laten beantwoorden door het AI-Systeem GPT4.

Reageren op een artikel kan tot drie maanden na plaatsing. Reageren op dit artikel is daarom niet meer mogelijk.

Aanmelden nieuwsbrief

Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.