Matematik

Simulering af variable i R

27. september 2018 af Kkaplan - Niveau: Universitet/Videregående

Hej SP

Jeg har en poissionfordeling, som jeg arbejder på i R. Som bekendt for en Poissonfordeling, er middelværdien = lambda (som er antalsparameteren)

Men når jeg anvender mean(x) i R får jeg ikke lambda, hvad kan det være?

Takker for hjælpen på forhånd


Brugbart svar (0)

Svar #1
27. september 2018 af swpply (Slettet)

Arbejder du på et givet datasæt eller er dette output data fra en simulering?

Når du skriver at mean ikke giver dig λ, har du da tjekket at mean(DATA) ≠ var(DATA) ? 


Svar #2
27. september 2018 af Kkaplan

Outputtet er data fra en simulering: Kan du uddybe hvorfor mean(DATA) ≠ var(DATA)?


Brugbart svar (0)

Svar #3
27. september 2018 af swpply (Slettet)

I en poissonfordeling har du at middelværdi og varians er identiske (de er begge givet ved λ).

Prøv at beregne middelværdi og varians på din data. Hvis disse ikke er identiske, så kunne alt tyde på at der er en fejl et sted i din kode.

Hvad er det for en/et model/system du simulere?


Svar #4
27. september 2018 af Kkaplan

Mærkeligt, middel er ikke lig empirisk varins i mit tilfælde

Jeg er forholdsvis ny til R, kan du (måske) forklare mig, hvordan jeg beregner mean, når jeg har skabt min PMF? (Jeg har simuleret en PMF, som svar på dit spørgsmål :-))


Brugbart svar (0)

Svar #5
27. september 2018 af swpply (Slettet)

#4

Mærkeligt, middel er ikke lig empirisk varins i mit tilfælde

Så er det ikke nogen Poissonfordeling.

#4

Jeg er forholdsvis ny til R, kan du (måske) forklare mig, hvordan jeg beregner mean, når jeg har skabt min PMF?

Jeg har aldrig selv anvendt R, men jeg er bruger af et utal af andre programmeringssprog (C++, Fortran, MatLab, Python for at nævne de mest brugte). Prøv at tilføje et billed af din kode til denne tråd, så vil jeg gerne tage et kig på den ;-)


Svar #6
27. september 2018 af Kkaplan

Super :-)

Jeg har vedhæftet et billede herunder (jeg har lavet en PMF og tegnet grafen for en poission fordeling), jeg skal til at finde middelværdien :-)


Svar #7
27. september 2018 af Kkaplan

-


Brugbart svar (0)

Svar #8
27. september 2018 af swpply (Slettet)

Hvilken værdier får du ved at tage middelværdi og varians af din Poissonfordelte data?

Hint, du har KUN 101 Poissonfordelte værdier. Hvorfor at du selvfølgelig ikke bør forvente at middelværdi er eksakt ligmed  λ, ligeledes gælder det for varians.

Prøv evt. med 1001 og 10001 Poissonfordelte værdier. Da bør du forvente at se at overensstemmelsen imellem midelværdi, varians og λ bliver bedre og bedre.


Svar #9
27. september 2018 af Kkaplan

Men når jeg beregner middelværdi, hvad skal der stå inde i parentensen? "mean(....)" (i forhold til billedet) - Jeg tror, det er der jeg fejler 


Brugbart svar (1)

Svar #10
27. september 2018 af swpply (Slettet)

Det er dine y-variable som er Poissonfordelte, hvorfor at du bør skrive mean(y, trim = 0, na.rm = FALSE) eller blot mean(y)


Svar #11
27. september 2018 af Kkaplan

Ah, hvad jeg også regnet med, havde blot tastet  (dpois(x,2))

Men når jeg taster x i intervalet [0:1001] får jeg 0,000998

Når jeg taster [0:10001] får jeg 0,00000998 

Hvordan kan det fortolkes?


Brugbart svar (0)

Svar #12
27. september 2018 af VandalS

Er du sikker på, at det ikke er funktionen rpois(n,lambda), du søger? dpois funktionen giver dig sandsynlighedstæthedsfunktionen, som du ikke bruger til at simulere data med, mens rpois giver dig et datasæt med n elementer, der er poissonfordelt omkring \lambda.


Svar #13
27. september 2018 af Kkaplan

-


Svar #14
27. september 2018 af Kkaplan

Men faktisk, hvis jeg anvender rpois, så passer det også med det der blev nævnt i #8 Mit opgave går ud på, at jeg skal plotte PMF for possionfordelingen-


Brugbart svar (0)

Svar #15
27. september 2018 af VandalS

Så er det rigtigt nok dpois, du vil have fat i - men så skal du være opmærksom på, at mean(x) eller mean(y) ikke har nogen direkte kopling til \lambda; x er en mere eller mindre arbitrær liste af kvantiler (0 till 100 i dit tilfælde), som givetvis ikke har middelværdi \lambda, og y er en liste af sandsynligheder, hvis værdi under alle omstændigheder ikke overskrider 1, og derfor ikke har middelværdi \lambda.

Du kan også prøve at lege med følgende kodesnippet:

n<-1000000

t<-rpois(n,7)

v<-min(t):max(t)

for (i in v){ v[i] = sum(t==i) }

plot(v/sum(v))

og sammenligne med outputtet fra dpois.


Brugbart svar (0)

Svar #16
27. september 2018 af swpply (Slettet)

Ja, det er vist syntaksen (link) der lidt snørklet.

Ja, du kan enten bruge rpois(n, lambda) eller dpois(n, lambda, log = FALSE). Det er åbenbart fordi at dpois som default giver logaritmen af Poissonfordelingen


Brugbart svar (0)

Svar #17
27. september 2018 af swpply (Slettet)

#15

 y er en liste af sandsynligheder, hvis værdi under alle omstændigheder ikke overskrider 1, og derfor ikke har middelværdi \lambda.

Det er korrekt at der for smatlige k\in\mathbb{N}\cup\{0\} gælder at P(k)\in[0,1] men dette implicere ikke (som du antyder) at middelværdien, altså

                                             \mu = \sum_{k=0}^{\infty}kP(k)

ikke kan overskride 1. 

Jeg tror at du forveklser middelværdi med normalisering.

Det ses trods alt nemt at

                                 \begin{align*} \sum_{k=0}^{\infty}\frac{\lambda^k}{k!}e^{-\lambda} &= e^{-\lambda}\sum_{k=0}^{\infty}\frac{\lambda^k}{k!} \\ &= e^{-\lambda}e^{\lambda} \\ &= 1 \end{align*}

og at 

\begin{align*} \sum_{k=0}^{\infty}k\frac{\lambda^k}{k!}e^{-\lambda} &= e^{-\lambda}\sum_{k=0}^{\infty}k\frac{\lambda^k}{k!} \\ &= e^{-\lambda}\sum_{k=1}^{\infty}\frac{\lambda^k}{(k-1)!} \\ &= e^{-\lambda}\lambda\sum_{k=1}^{\infty}\frac{\lambda^{k-1}}{(k-1)!} \\ &= e^{-\lambda}\lambda\sum_{k=0}^{\infty}\frac{\lambda^{k}}{(k)!} \\ &= \lambda e^{-\lambda}e^{\lambda} \\ &= \lambda \end{align*}


Brugbart svar (0)

Svar #18
27. september 2018 af VandalS

#16 Nej, log = FALSE er default værdien for dpois. Med y<-dpois(0:100,7) som i #7 er sum(y)=1.


Brugbart svar (0)

Svar #19
27. september 2018 af VandalS

#17 Jeg forveksler ikke noget - jeg påpeger plot, at mean(y), hvor y er en liste af elementer mellem 0 og 1, ikke kan overstige 1. Jeg taler ikke om middelværdien af datasættet eller overhovedet om sandsynlighedsregning generelt i den kommentar.


Brugbart svar (0)

Svar #20
27. september 2018 af swpply (Slettet)

#17 Korrekt, jeg ser hvad du mener nu.


Forrige 1 2 Næste

Der er 31 svar til dette spørgsmål. Der vises 20 svar per side. Spørgsmålet kan besvares på den sidste side. Klik her for at gå til den sidste side.