1 2 3 4 5 6 7 8 9 | public int GetAmountForUnit(int maxX, int x, int totalSurfaceArea) { ??? } //50 eenheden breed //wil ik weten wat de hoogte is van de 10e staaf //Als ik 1000 items met standaardverdeling er in smijt GetAmountForUnit(50, 10, 1000); |
Ik bedoel de oppervlakte van 1 staaf. Niet van het geheel. En als 1 gelijk staat aan 1000 dan vind ik het prima om die vermenigvuldiging te doen.quote:Op zaterdag 6 juni 2020 17:18 schreef Isdatzo het volgende:
Ik begrijp niet zo goed wat je bedoeling is.
De oppervlakte onder een (standaard normale) verdeling is per definitie één; het is immers een probability density function ('kansdichtheid') en een kans van meer dan 1 kan niet.
Omdat ik per eenheid op de x-as wil weten hoeveel items ik moet pakken uit de stapel.quote:De hoogte van de staaf op X is dan gewoon een kwestie van X invullen in de PDF van de standaard normale verdeling X ~ N(0,1): f(x) = exp(-0.5x2) / sqrt (2*pi)
Maar waarom wil je de hoogte weten?
Klopt. Het plaatje is een andere functie maar dat maakt verder niet uit voor mijn vraag denk ik.quote:Het plaatje in jouw voorbeeld laat overigens ook geen normale verdeling zien,
Ik wil dus juist niet schuiven en platdrukken. Ik wil andersom.quote:maar wat je met een normale verdeling kan doen is hem verschuiven over de x-as en/of hem platdrukken/uitrekken langs de x-as (het is dan niet meer een *standaard* normale verdeling). Dat laatste is gedefinieerd als een normale verdeling met gemiddelde μ = 0 en variantie σ2; = 1. Voor andere gevallen krijg je X ~ N(μ,σ2) met PDF
[ afbeelding ]
Je hebt dus data, en je weet dat die normaal verdeeld is, alleen je weet nog niet hoe die normale verdeling eruit ziet (dus wat het gemiddelde en de variantie is)? Vervolgens wil je die verdeling in 50 stukken hakken om te kijken hoeveel punten er in bin X vallen? Begrijp ik het goed zo?quote:Op zaterdag 6 juni 2020 18:07 schreef SpecialK het volgende:
Omdat ik per eenheid op de x-as wil weten hoeveel items ik moet pakken uit de stapel.
[knip]
Ik wil dus juist niet schuiven en platdrukken. Ik wil andersom.
Kan ik dus een standaardverdeling plotten met als input de min en max X
Dank je.. deze grafieken en je post hiervoor hebben even wat dingen in mijn hoofd laten klikkenquote:Op zaterdag 6 juni 2020 18:08 schreef Isdatzo het volgende:
Om het een beetje inzichtelijk te maken, hier 3 verschillende normale verdelingen, "50 eenheden breed" zoals je stelt in de OP, allemaal met μ = 25 maar met een verschillende standaardafwijking σ.
σ=10
[ afbeelding ]
Hoogte staaf 10:0.008598284
Oppervlakte staaf 10: 0.0129585
σ=8
[ afbeelding ]
Hoogte staaf 10: 0.005215123
Oppervlakte staaf 10: 0.00861236
σ=5
[ afbeelding ]
Hoogte staaf 10: 0.0008863697
Oppervlakte staaf 10: 0.000898210
Waarbij ik staaf 10 heb ik gedefinieerd als 9.5<x<10.5
Ja exact.. maar wat ik dus eigenlijk moet doen is een grafiek plotten met bepaalde sigma, .. en als ik die mooi vind... vervolgens de X-as waarden opsplitsen zodat er bijvoorbeeld 50 eenheden ontstaan...quote:Op zaterdag 6 juni 2020 18:29 schreef Isdatzo het volgende:
[..]
Je hebt dus data, en je weet dat die normaal verdeeld is, alleen je weet nog niet hoe die normale verdeling eruit ziet (dus wat het gemiddelde en de variantie is)? Vervolgens wil je die verdeling in 50 stukken hakken om te kijken hoeveel punten er in bin X vallen? Begrijp ik het goed zo?
Grafiek plotten tot je 'm mooi vindt? Dat is een beetje het paard achter de wagen spannen: die mu en sigma kan je gewoon uit je data halen natuurlijk.quote:Op zaterdag 6 juni 2020 20:00 schreef SpecialK het volgende:
[..]
Ja exact.. maar wat ik dus eigenlijk moet doen is een grafiek plotten met bepaalde sigma, .. en als ik die mooi vind... vervolgens de X-as waarden opsplitsen zodat er bijvoorbeeld 50 eenheden ontstaan...
Ho, let op hè. De Y-waarden kan je niet zomaar gebruiken om percentages van te maken. Je moet dan de oppervlakte (van je 'staaf') onder de grafiek gebruiken. Dat wat ik in mijn voorbeelden grijs gekleurd had.quote:Ik moet simpel transformeren.. ook met de Y-as... omdat de totale oppervlakte 1 is kan ik die Y-as cijfers kan gebruiken om percentages van de eenheden van de plank te pakken per X-eenheid.... ik hoef helemaal niks om te draaien.
Super bedankt ik denk dat ik verder kan
yess.. dank je die oppervlakte tip had ik nog even nodig idd..quote:Op zaterdag 6 juni 2020 20:20 schreef Isdatzo het volgende:
[..]
Grafiek plotten tot je 'm mooi vindt? Dat is een beetje het paard achter de wagen spannen: die mu en sigma kan je gewoon uit je data halen natuurlijk.
[ afbeelding ]
Waarbij mu de gemiddelde waarde is.
[..]
Ho, let op hè. De Y-waarden kan je niet zomaar gebruiken om percentages van te maken. Je moet dan de oppervlakte (van je 'staaf') onder de grafiek gebruiken. Dat wat ik in mijn voorbeelden grijs gekleurd had.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public static float StandardDeviation(float x, float stddev) { var mean = 0; var one_over_2pi = (float)(1.0 / (stddev * Math.Sqrt(2 * Math.PI))); var var = stddev * stddev; return (float)(one_over_2pi * Math.Exp(-(x - mean) * (x - mean) / (2 * var))); } public static int GetAmountOfUnitsForStandardDeviationAtX(int totalX, int x, int unitCount) { var startX = -2F; var endX = 2F; var transformedXWidth = ((endX - startX) / (float)totalX); var transformedX = ((float)x * transformedXWidth) + startX; var y = StandardDeviation(transformedX, 1F); return (int)Math.Round(((float)unitCount * (y * transformedXWidth)) * (1.03F)); } |
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |