Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] Score berekenen. Hoe en eerlijk?

Pagina: 1
Acties:

Onderwerpen


  • Yoram
  • Registratie: Augustus 2004
  • Laatst online: 05-08 14:22
Hallo beste mensen,

Ik ben voor een hobby project een planning systeem aan het maken voor een jongerencentrum. De onze planner kan een evenement aanmaken en daarvoor kan hij vrijwilligers uitnodigen om te komen werken. De vrijwilligers krijgen dan een mailtje waarin ze worden doorgestuurd naar een pagina, waar ze "Ja" of "Nee" kunnen kiezen. Een soort van Datumprikker maar dan net ff anders.

Om een klein beetje inzicht te krijgen wie er heeft gereageerd en hoelang ze er over gedaan hebben wil ik een score systeem maken.
Ik registreer per vrijwilliger een aantal dingen
- Hoeveel keer Antwoord Ja
- Hoeveel keer Antwoord Nee
- Reactietijd opgeteld van alle uitnodigingen.

Nu vroeg ik me dus af hoe ik zo eerlijk mogelijk een score lijst kan maken.

Wat ik nu doe:
PHP:
1
$score = $responsetime / ($answer_yes + $answer_no);

Dus gewoon het gemiddelde van de reactietijd. Maar je kan je al bedenken dat zoiets totaal niet eerlijk is. Stel: ik heb 15 keer gewerkt, en een collega 10 keer maar heeft net even wat sneller gereageerd. Dan is het zo dat mijn collega hoger in de score lijst staat.

Echter gaat mijn wiskundige kennis/ervaring niet zover dat ik hier een nette formule aan kan plakken, dus ik vraag me af of iemand mij daarmee kan helpen.

Hallo!


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Hoe vaak wil je dat een vrijwilliger op Ja of Nee kan klikken (en hoeveel per afspraak)? Ik heb het idee dat je wat dingen door elkaar wilt halen je pakt de gemiddelde responsetijd en deelt dat door het totaal aantal keren op ja geklikt en het totaal aantal nee geklikt. Dan krijg je het gemiddelde van iedereen bij elkaar, niet van iemand persoonlijk.

[ Voor 73% gewijzigd door CH4OS op 13-05-2012 01:23 ]


Verwijderd

Is het geen optie om een antwoord als 'ja' een hogere waarde te geven dan een antwoord als 'nee'?
code:
1
2
3
<?php 
$score = $responsetime / ($answer_yes*1.4 + $answer_no*0.6); 
?>

[ Voor 4% gewijzigd door Verwijderd op 13-05-2012 01:23 ]


  • Tarabass
  • Registratie: Februari 2008
  • Laatst online: 03-11 10:27

Tarabass

Webmaster

Ik snap niet waarom je de reactietijd wilt meenemen in de score. Daarnaast is de optelling van de Ja/Nee optie natuurlijk kompleet onbuikbaar. Stel dat iemand 3 keer ja en 7 keer nee zegt is dit samen 10. Zegt iemand 10 keer ja is dat ook tien, en dit geldt ook voor nee.

Maar nogmaals, watmaakt het uit dat iemand binnen een bepaalde tijd reageert? Stel gewoon een deadline aan het kunnen reageren en tel alle ja's bij mekaar op (zonder reactietijd or whatever). Je zou dan nog het aantal uitnodigingen kunnen delen door het aantal ja's om zo een gemiddelde score te berekenen..

[ Voor 3% gewijzigd door Tarabass op 13-05-2012 01:25 ]


  • Yoram
  • Registratie: Augustus 2004
  • Laatst online: 05-08 14:22
Ik zal het nog even nog wat verder toelichten.

Per evenement(er zijn er zo'n 4 per maand). Krijgt een vrijwilliger een uitnodiging. Als hij ja of nee kiest, word dat opgeteld bij $answer_yes of $answer_no van zijn "profiel".
Een vrijwilliger kan maar 1 keer reageren op zo'n uitnodiging.

@Tarabass: Ik snap dat het overbodig kan zijn, maar ik zie het als een gimmick. We hebben op het jongerencentrum een beetje te maken met mensen die niet of laat reageren. Op deze manier word het wat leuker om snel te reageren.

[ Voor 28% gewijzigd door Yoram op 13-05-2012 01:28 ]

Hallo!


  • Tarabass
  • Registratie: Februari 2008
  • Laatst online: 03-11 10:27

Tarabass

Webmaster

Dat je het aantal Ja's en Nee's optelt betekent niet dat je deze voor een berekening moet gebruiken. Dat je ze ziet is oké, betrouwbaarheid/gewilligheid van de vrijwilliger kun je volgens mij prima bereken door het aantal uitnodigingen te vermenigvuldigen met het aantal Ja's (toezeggingen)..

Responsetijd zou ik vergeten, wie het eerst komt wie het eerst maalt. Wie snel reageer krijgt automatisch al hogere score omdat deze meegenomen worden in de berekening hierboven. De andere krijgen namelijk (de plek is immers vergeven) geen ja erbij opgeteld.

Daarbij lijkt het mevoor de planner praktisch om van te voren te weten waar hij aan toe is, vandaar de deadline :)

[EDIT]Als reactie op de edit hierboven. Mensen die niet snel reageren pissen naast de pot. Die krijgen geen ja opgeteld omdat iemand anders al gaat werken, in jouw geval zou je dan (als iemand anders ja hebt gezegd) alle andere een nee kunnen geven en dit aantal weer kunnen geven. De score zou toch moeten stimuleren? Die is dan ook lager voor mensen die niet snel reageren..

[ Voor 21% gewijzigd door Tarabass op 13-05-2012 01:37 ]


  • Yoram
  • Registratie: Augustus 2004
  • Laatst online: 05-08 14:22
Tarabass schreef op zondag 13 mei 2012 @ 01:31:
Dat je het aantal Ja's en Nee's optelt betekent niet dat je deze voor een berekening moet gebruiken. Dat je ze ziet is oké, betrouwbaarheid/gewilligheid van de vrijwilliger kun je volgens mij prima bereken door het aantal uitnodigingen te vermenigvuldigen met het aantal Ja's (toezeggingen)..

Responsetijd zou ik vergeten, wie het eerst komt wie het eerst maalt. Wie snel reageer krijgt automatisch al hogere score omdat deze meegenomen worden in de berekening hierboven. De andere krijgen namelijk (de plek is immers vergeven) geen ja erbij opgeteld.

Daarbij lijkt het mevoor de planner praktisch om van te voren te weten waar hij aan toe is, vandaar de deadline :)
Tuurlijk zit er een deadline aan elke uitnodiging, het systeem kan al wat meer dan alleen score's opslaan :p.

De regel "wie het eerst komt wie het eerst maalt" gaat niet echt op hier, omdat we ook vrijwilligers hebben die niet elke keer kunnen, dan zouden ze extreem zakken in de score lijst. Het gaat er meer om óf/waneer ze reageren, daarbij wil ik iemand die vaker ja heeft gekozen hoger laten uitkomen in de lijst.

Reactie op je edit hierboven ( :P ):
Helaas gaat dat ook niet echt op in dit geval. We hebben meer te weinig vrijwilligers. Dus dan duurt het telang voor er iets gebeurt in de lijst. Met reactie tijd erbij, krijgt het wat meer speling lijkt mij.
Enja tis wat gedoe, maar ik zie het als een leermoment/uitdaging.

@noiz-me: check! voor zover is dat nu mijn formule :)

[ Voor 12% gewijzigd door Yoram op 13-05-2012 01:48 ]

Hallo!


  • Rmg
  • Registratie: November 2003
  • Laatst online: 19:57

Rmg

Waarom doe je niet 2 of 3aparte scores.
1e responstijden (gemiddeld)
2e Aantal ja's van de reacties
en als 3e misschien nog het aantal reacties van het totaal aantal evenementen.

Dan weet je zo wie in welke 'categorie' het beste is.
Wil je algehele de 'beste' vinden kan je sorteren op de snelste responder met de meeste ja's, of de meeste ja's en dan de snelste respons, of de meeste reacties + snelste respons enz enz

  • __fred__
  • Registratie: November 2001
  • Laatst online: 17:17
Afbeeldingslocatie: http://i.imgur.com/cneCL.png

w_t = wegingsfactor voor tijdsdeel van de formule

t_vrijwilliger = cummulatieve tijd vrijwilliger
t_kortst = tijd van persoon met kortse cummulatieve tijd in DB
t_langst = tijd van persoon met langste cummulatieve tijd in DB

w_j = wegingsfactor voor aantal keer meedoen deel van de formule

j_vrijwilliger = aantal ja vrijwilliger
j_minst = aantal ja persoon met meeste keren ja in DB
j_minst = aantal ja persoon met minste keren ja in DB

Waarbij de nee-tjes niet gebruikt worden, en niet antwoorden dus effectief gelijk is aan nee. Als je zorgt dat de wegingsfactoren samen 10 zijn, komt er altijd een score tussen 0 en 10 uit. Ik zou me kunnen voorstellen dat je bij het optellen van de tijden tot een maximum van 3 dagen van te voren telt. Met andere woorden, als je niet binnen 3 dagen van te voren reageert, heb je er als organisatie ook niets meer aan. dan krijg je dus als vrijwilliger de maxiumum tijd voor dat event toegekend.

[ Voor 0% gewijzigd door __fred__ op 13-05-2012 10:51 . Reden: oeps, copy paste foutje formule ]


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
In principe zou ik 4 statussen hanteren (ja / nee / ja (toegekend) / ja (gedaan))
Omdat je met vrijwilligers ook nog te maken hebt met mensen die ja antwoorden, als 1e reageren (en dus toegekend worden) maar uiteindelijk nee zeggen (vanwege omstandigheden).

Daarnaast zou ik voor deze score (de algemene) enkel rekenen in tijdsperiodes van bijv 24 uur. Zodat iemand die bijv part-/fulltime werkt naast het vrijwilligerswerk niet gelijk een lagere score dan iemand die vrij is en inet op zijn mobiel heeft.

Daarnaast zou ik iets van een functionele verdeling maken zodat je ook weet waarop de mensen reageren. Het is heel leuk als de dj als 1e reageert dat hij achter de bar wil gaan staan, maar wellicht zijn er betere barkeepers en je moet dan opeens een dj regelen.

P.s. maar persoonlijk zou ik simpelweg niet kiezen voor een simpele berekening pontificaal tonen. Die gaat imho altijd fout bij vrijwilligers.
Als ik 1 ding echt goed kan en me daar altijd voor opgeef als vrijwilliger (en op de rest antwoord ik eerlijk nee) en mijn inzet wordt door iedereen gewaardeerd en ik zie dan opeens op een website oid een lapzwans 1e klas bovenaan staan omdat die nergens geschikt voor is, maar overal zo snel mogelijk ja op antwoord, tja dan heb je sommige mensen die gekrenkt gaan zijn.

[ Voor 25% gewijzigd door Gomez12 op 13-05-2012 11:29 ]


  • Yoram
  • Registratie: Augustus 2004
  • Laatst online: 05-08 14:22
Wat een reacties! Gaaf. Sorry voor de late reactie, maar ik ga er snel mee aan de slag.

Hallo!


  • jeanj
  • Registratie: Augustus 2002
  • Niet online

jeanj

F5 keeps me alive

Simpel systeem, 3 punten voor ja, 1 punt voor nee, -1 voor geen antwoord.

En ik zou ook zoals hierboven aangegeven kijken of je wel of niet uitvoeren na een ja, ook kan mee nemen door daar punten voor te geven, bv ja gevolgd door uitvoeren +1, ja gevolgd door niet uitvoeren, -5, ja gevolgd door niet opgeroepen 0.

Je kan dus 4, 3,1,-1,-2 punten per keer verdienen, afhankelijk van je antwoord en of je het door zet.
Maar de verdelding hangt natuurlijk af wel gedrag je wilt aanmoedigen of wilt ontmoedigen

Nb ik zou reactie tijd niet meenemen, alleen voor een fun factor, want het gaat er niet hoe snel je reageerd, maar voor de deadline.

[ Voor 22% gewijzigd door jeanj op 22-05-2012 00:59 ]

Everything is better with Bluetooth


  • slopert
  • Registratie: Oktober 2006
  • Laatst online: 10-11 06:34
Ik xou het doen zoals jeanj. Transparante beloning voor het wel of niet uitvoeren.
Uiteraard wel zwaar onderwaarderen voor wel ja zeggen en niet uitvoeren.

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
jeanj schreef op dinsdag 22 mei 2012 @ 00:53:
Simpel systeem, 3 punten voor ja, 1 punt voor nee, -1 voor geen antwoord.
Het nadeel hiervan is dus dat je minpunten oploopt als je op vakantie bent (of je moet er weer een extra complexiteit in aanbrengen met vakantieplanningen etc)
En ik zou ook zoals hierboven aangegeven kijken of je wel of niet uitvoeren na een ja, ook kan mee nemen door daar punten voor te geven, bv ja gevolgd door uitvoeren +1, ja gevolgd door niet uitvoeren, -5, ja gevolgd door niet opgeroepen 0.
Ja, maar niet uitvoeren betekent dus dat je geen 2e keus meer hebt, behalve als je meerdere mensen ja laat stemmen. Maar dan krijgen dus al die 2e keuzes minpunten voor het niet uitvoeren. Of iedereen gaat maar ja antwoorden op alles omdat ze toch weten dat ze niet uitgekozen gaan worden (bijv een 16-jarige kan rustig ja antwoorden op alle baantjes als barkeep, dat mag zij toch niet doen, een willekeurig persoon kan altijd ja antwoorden op baantjes als dj zij weten toch dat zij het niet gaan worden)

Ik ben heel erg bang dat het of heel snel manipuleerbaar wordt of heel snel heel erg complex. En ik ben bang dat je met alletwee de vormen net niet de mensen bovenaan krijgt die je wel het meeste waardeert.

  • jeanj
  • Registratie: Augustus 2002
  • Niet online

jeanj

F5 keeps me alive

Op zich goede punten, echter of vakanties in het wel of niet in systeem komen, is aan de maker. Je kan ook dit aan planner over laten. Die kan geen uitnodiging sturen aan mensen die aangegeven hebben op vakantie te zijn.

Ik begrijp je punt over tweede keus in relatie tot stemmen niet. Uit de ja's (aanmeldingen) maak je een keuze wie wel of niet gaat wordt opgeroepen. Degene die niet is opgeroepen/ingepland krijgt 0 punten.
Volgens mij moeten we eerst en alles goed definiëren, zoals bij elk functioneel ontwerp.
Niet uitvoeren is aangemeld gevolgd door ingepland maar toch afzeggen
Terwijl niet opgeroepen is aangemeld en niet ingepland

Wat niet in mijn systeen zit, is wel aangemeld, niet ingepland maar wel wordt opgeroepen omdat iemand die was ingepland is uit gevallen. Die kan je altijd veranderen van niet opgeroepen naar wel opgeroepen, met de punten.

Verder moet je natuurlijk alleen mensen uitnodigen voor taken die ze kunnen doen

Everything is better with Bluetooth


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
jeanj schreef op zondag 27 mei 2012 @ 22:29:
Wat niet in mijn systeen zit, is wel aangemeld, niet ingepland maar wel wordt opgeroepen omdat iemand die was ingepland is uit gevallen. Die kan je altijd veranderen van niet opgeroepen naar wel opgeroepen, met de punten.

Verder moet je natuurlijk alleen mensen uitnodigen voor taken die ze kunnen doen
Ik denk dat TS dan eerst iets over de grootte van de vrijwilligersorganisatie moet gaan vertellen.

Zoals jij het nu voorstelt vereist het allemaal handwerk van te voren (juiste mensen uitnodigen) en allemaal handwerk achteraf. Het kan, maar ik vermoed dat het hier gaat om een gimmick voor een organisatie met iets van 50 vrijwilligers oid. En dan wordt het opeens erg veel handwerk voor een gimmick.

  • Joris
  • Registratie: Oktober 2008
  • Laatst online: 23-09 09:06
__fred__ schreef op zondag 13 mei 2012 @ 10:43:
[afbeelding]

w_t = wegingsfactor voor tijdsdeel van de formule

t_vrijwilliger = cummulatieve tijd vrijwilliger
t_kortst = tijd van persoon met kortse cummulatieve tijd in DB
t_langst = tijd van persoon met langste cummulatieve tijd in DB

w_j = wegingsfactor voor aantal keer meedoen deel van de formule

j_vrijwilliger = aantal ja vrijwilliger
j_minst = aantal ja persoon met meeste keren ja in DB
j_minst = aantal ja persoon met minste keren ja in DB

Waarbij de nee-tjes niet gebruikt worden, en niet antwoorden dus effectief gelijk is aan nee. Als je zorgt dat de wegingsfactoren samen 10 zijn, komt er altijd een score tussen 0 en 10 uit. Ik zou me kunnen voorstellen dat je bij het optellen van de tijden tot een maximum van 3 dagen van te voren telt. Met andere woorden, als je niet binnen 3 dagen van te voren reageert, heb je er als organisatie ook niets meer aan. dan krijg je dus als vrijwilliger de maxiumum tijd voor dat event toegekend.
Het lijkt mij dat de gegeven formule vrij goed aan de gestelde eisen voldoet. Enige nadeel dat ik me kan bedenken is dat deze formule ook lage scores blijft toekennen als iedereen het beter gaat doen. Zo kan het dus zijn dat je score niet stijgt, terwijl je wel sneller reageert en meer ja zegt, omdat iedereen dit doet.
Pagina: 1