Update Przewodnik_studenta_lab/02LRAP_przewodnik.ipynb

This commit is contained in:
xcjajx 2024-10-17 14:52:53 +02:00
parent a08b3a01a8
commit e2bacc7675

View File

@ -218,9 +218,9 @@
"\n", "\n",
"Losujemy wielokrotnie ze zwracaniem jedną kartę z talii $52$ kart do momentu wylosowania pierwszego kiera. Ile wynosi prawdopodobieństwo, że wykonamy:\n", "Losujemy wielokrotnie ze zwracaniem jedną kartę z talii $52$ kart do momentu wylosowania pierwszego kiera. Ile wynosi prawdopodobieństwo, że wykonamy:\n",
"\n", "\n",
"* dokładnie 6 losowań,\n", "* dokładnie $6$ losowań,\n",
"* co najwyżej 6 losowań,\n", "* co najwyżej $6$ losowań,\n",
"* co najmniej 7 losowań.\n", "* co najmniej $7$ losowań.\n",
"\n", "\n",
"**Uwaga:** Poniższy przykład wymaga zainstalowania i załadowania pakietu `stats`." "**Uwaga:** Poniższy przykład wymaga zainstalowania i załadowania pakietu `stats`."
] ]
@ -265,16 +265,16 @@
"source": [ "source": [
"# Podobnie, jak w poprzednim przykładzie mamy do czynienia z niezależnymi powtórzeniami tego samego eksperymentu losowego, a sukcesem jest wylosowanie kiera\n", "# Podobnie, jak w poprzednim przykładzie mamy do czynienia z niezależnymi powtórzeniami tego samego eksperymentu losowego, a sukcesem jest wylosowanie kiera\n",
"# Zwróćmy uwagę, że w poleceniu dgeom podajemy liczbę porażek przed pierwszym sukcesem\n", "# Zwróćmy uwagę, że w poleceniu dgeom podajemy liczbę porażek przed pierwszym sukcesem\n",
"p1=dgeom(5,1/4)\n", "p1 = dgeom(5, 1/4)\n",
"print(paste('Prawdopodobieństwo dokładnie 6 losowań: ', p1))\n", "print(paste('Prawdopodobieństwo dokładnie 6 losowań: ', p1))\n",
"# W przypadku zdarzenia ,,wykonamy co najwyżej 6 losowań'' jako x podamy wektor zawierający wszystkie interesujące nas liczby porażek\n", "# W przypadku zdarzenia ,,wykonamy co najwyżej 6 losowań'' jako x podamy wektor zawierający wszystkie interesujące nas liczby porażek\n",
"y=dgeom(0:5,1/4)\n", "y = dgeom(0:5, 1/4)\n",
"print(y)\n", "print(y)\n",
"# Zwróćmy uwagę, że zostanie zwrócony wektor prawdopodobieństw odpowiadający wszystkim możliwym liczbom wykonanych losowań. Aby uzyskać odpowiedź musimy je zsumować\n", "# Zwróćmy uwagę, że zostanie zwrócony wektor prawdopodobieństw odpowiadający wszystkim możliwym liczbom wykonanych losowań. Aby uzyskać odpowiedź musimy je zsumować\n",
"p2=sum(y)\n", "p2 = sum(y)\n",
"print(paste('Prawdopodobieństwo co najwyżej 6 losowań: ', p2))\n", "print(paste('Prawdopodobieństwo co najwyżej 6 losowań: ', p2))\n",
"# W przypadku zdarzenia ,,wykonamy co najmniej 7 losowań'' nie będziemy tego rozbijać na wszystkie możliwe przypadki (bo byłoby ich nieskończenie wiele). Zamiast tego skorzystamy ze zdarzenia przeciwnego\n", "# W przypadku zdarzenia ,,wykonamy co najmniej 7 losowań'' nie będziemy tego rozbijać na wszystkie możliwe przypadki (bo byłoby ich nieskończenie wiele). Zamiast tego skorzystamy ze zdarzenia przeciwnego\n",
"p3=1-p2\n", "p3 = 1-p2\n",
"print(paste('Prawdopodobieństwo co najmniej 7 losowań: ', p3))" "print(paste('Prawdopodobieństwo co najmniej 7 losowań: ', p3))"
] ]
}, },
@ -287,11 +287,11 @@
"source": [ "source": [
"### Ogólne przestrzenie produktowe\n", "### Ogólne przestrzenie produktowe\n",
"\n", "\n",
"Na koniec pokażemy, jak możemy modelować przestrzenie produktowe w przypadku, gdy łączymy wyniki kilku różnych eksperymentów losowych. Wiemy już, że w takim przypadku zbiór zdarzeń elementarnych $\\Omega$ jest iloczynem kartezjańskim zbiorów zdarzeń elementarnych odpowiadających poszczególnym eksperymentom losowym. W programie R do generowania iloczynu kartezjańskiego wektorów możemy użyć polecenia `expand.grid`. Jako argumenty należy podać wektory, których iloczyn kartezjański chcemy wyznaczyć. Jeśli podamy je w formie `tag=v`, to kolumna odpowiadająca wektorowi `v` będzie miała nazwę `tag`.\n", "Na koniec pokażemy, jak możemy modelować przestrzenie produktowe w przypadku, gdy łączymy wyniki kilku różnych eksperymentów losowych. Wiemy już, że w takim przypadku zbiór zdarzeń elementarnych $\\Omega$ jest iloczynem kartezjańskim zbiorów zdarzeń elementarnych odpowiadających poszczególnym eksperymentom losowym. W języku R do generowania iloczynu kartezjańskiego wektorów możemy użyć polecenia `expand.grid`. Jako argumenty należy podać wektory, których iloczyn kartezjański chcemy wyznaczyć. Jeśli podamy je w formie `tag=v`, to kolumna odpowiadająca wektorowi `v` będzie miała nazwę `tag`.\n",
"\n", "\n",
"**Przykład 5**\n", "**Przykład 5**\n",
"\n", "\n",
"Rzucamy jednokrotnie sześcienną sześcienną kostką i symetryczną monetą. Wygeneruj przestrzeń probabilistyczną odpowiadającą temu doświadczeniu losowemu.\n" "Rzucamy jednokrotnie sześcienną kostką i symetryczną monetą. Wygeneruj przestrzeń probabilistyczną odpowiadającą temu doświadczeniu losowemu.\n"
] ]
}, },
{ {
@ -313,9 +313,9 @@
], ],
"source": [ "source": [
"# Najpierw generujemy zbiór zdarzeń elementarnych\n", "# Najpierw generujemy zbiór zdarzeń elementarnych\n",
"Omega=expand.grid(k=1:6,m=c('O','R'))\n", "Omega = expand.grid(k = 1:6, m = c('O', 'R'))\n",
"# Następnie na tej podstawie generujemy przestrzeń probabilistyczną. W tym przypadku możemy przyjąć, że mamy do czynienia z modelem klasycznym\n", "# Następnie na tej podstawie generujemy przestrzeń probabilistyczną. W tym przypadku możemy przyjąć, że mamy do czynienia z modelem klasycznym\n",
"X=probspace(Omega)" "X = probspace(Omega)"
] ]
}, },
{ {
@ -325,11 +325,11 @@
"collapsed": false "collapsed": false
}, },
"source": [ "source": [
"Należ zwrócić uwagę, że jeśli definiujemy w R produktową przestrzeń probabilistyczną opierając się na przestrzeniach probabilistycznych, w których prawdopodobieństwo nie jest definiowane w sposób klasyczny, to musimy dodatkowo zdefiniować w odpowiedni sposób wektor prawdopodobieństw.\n", "Należy zwrócić uwagę, że jeśli definiujemy w R produktową przestrzeń probabilistyczną opierając się na przestrzeniach probabilistycznych, w których prawdopodobieństwo nie jest definiowane w sposób klasyczny, to musimy dodatkowo zdefiniować w odpowiedni sposób wektor prawdopodobieństw.\n",
"\n", "\n",
"**Przykład 6** \n", "**Przykład 6** \n",
"\n", "\n",
"Rzucamy jednokrotnie sześciokrotną kostką i monetą. Zakładamy, że na kostce jedno oczko wypada z prawdopodobieństwem 1/2, a pozostałe liczby oczek wypadają z prawdopodobieństwem 1/10. Wygeneruj przestrzeń probabilistyczną odpowiadającą temu doświadczeniu losowemu. Następnie oblicz prawdopodobieństwo zdarzenia A \\- wypadł orzeł i nieparzysta liczba oczek.\n" "Rzucamy jednokrotnie kostką i monetą. Zakładamy, że na kostce jedno oczko wypada z prawdopodobieństwem $1/2$, a pozostałe liczby oczek wypadają z prawdopodobieństwem $1/10$. Wygeneruj przestrzeń probabilistyczną odpowiadającą temu doświadczeniu losowemu. Następnie oblicz prawdopodobieństwo zdarzenia $A$ \\- wypadł orzeł i nieparzysta liczba oczek.\n"
] ]
}, },
{ {
@ -345,23 +345,23 @@
"# Możemy wykorzystać zbiór zdarzeń elementarnych Omega wygenerowany w poprzednim przykładzie\n", "# Możemy wykorzystać zbiór zdarzeń elementarnych Omega wygenerowany w poprzednim przykładzie\n",
"# Zgodnie z definicją przestrzeni produktowej aby znaleźć prawdopodobieństwo zdarzenia elementarnego (x,y) należy pomnożyć prawdopodobieństwa tych zdarzeń w pierwotnych przestrzeniach probabilistycznych\n", "# Zgodnie z definicją przestrzeni produktowej aby znaleźć prawdopodobieństwo zdarzenia elementarnego (x,y) należy pomnożyć prawdopodobieństwa tych zdarzeń w pierwotnych przestrzeniach probabilistycznych\n",
"\n", "\n",
"p=rep(0,12)\n", "p = rep(0, 12)\n",
"for (i in 1:12) {\n", "for (i in 1:12) {\n",
" if (Omega[i,1]==1) {\n", " if (Omega[i,1] == 1) {\n",
" p[i]=0.5*0.5} else {p[i]=0.1*0.5\n", " p[i] = 0.5*0.5} else {p[i] = 0.1*0.5\n",
"}}\n", "}}\n",
"# Generujemy przestrzeń probabilistyczną\n", "# Generujemy przestrzeń probabilistyczną\n",
"X2=probspace(Omega,p)\n", "X2 = probspace(Omega,p)\n",
"print(X2)\n", "print(X2)\n",
"# Możemy teraz obliczyć prawdopodobieństwo zdarzenie A\n", "# Możemy teraz obliczyć prawdopodobieństwo zdarzenie A\n",
"A=subset(Omega,(k %in% seq(1,6,by=2)) & (m=='O'))\n", "A = subset(Omega,(k %in% seq(1, 6, by=2)) & (m == 'O'))\n",
"print(Prob(A))\n", "print(Prob(A))\n",
"# Alternatywnie, można by wyznaczyć prawdopodobieństwo wypadnięcia nieparzystej liczby oczek w przestrzeni rzutu kostką i prawdopodobieństwo wypadnięcia orła w przestrzeni rzutu monetą i pomnożyć przez siebie te dwa prawdopodobieństwa\n", "# Alternatywnie, można by wyznaczyć prawdopodobieństwo wypadnięcia nieparzystej liczby oczek w przestrzeni rzutu kostką i prawdopodobieństwo wypadnięcia orła w przestrzeni rzutu monetą i pomnożyć przez siebie te dwa prawdopodobieństwa\n",
"kostka=probspace(1:6,c(0.5,rep(0.1,5))) # Definiujemy przestrzeń związaną z rzutem kostką\n", "kostka = probspace(1:6, c(0.5, rep(0.1,5))) # Definiujemy przestrzeń związaną z rzutem kostką\n",
"A1=subset(kostka,(x %in% seq(1,6,by=2)))\n", "A1 = subset(kostka, (x %in% seq(1, 6, by=2)))\n",
"moneta=probspace(c('O','R')) # Definiujemy przestrzeń związaną z rzutem monetą\n", "moneta = probspace(c('O', 'R')) # Definiujemy przestrzeń związaną z rzutem monetą\n",
"A2=subset(moneta,x=='O')\n", "A2 = subset(moneta, x=='O')\n",
"pA=Prob(A1)*Prob(A2)\n", "pA = Prob(A1) * Prob(A2)\n",
"print(pA)" "print(pA)"
] ]
} }