Symulacje - ćwiczenia

Nasza ocena:

3
Pobrań: 7
Wyświetleń: 784
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Symulacje - ćwiczenia - strona 1 Symulacje - ćwiczenia - strona 2 Symulacje - ćwiczenia - strona 3

Fragment notatki:

Symulacje zajęcia 2
JEDNORĘKI BANDYTA
k=c(rep(0,10),rep(1:4,5),rep(5,4),rep(6,3),7,7,8,9)
w=c(rep(.5,10),rep(1,20),rep(2,4),rep(3,3),5,5,10,20)
Próba obliczenia jakie jest prawdopodobieństwo wygranej i wartość oczekiwana w jednorękim bandycie. Zakładamy, że chcemy na kole umieścić 10 symboli 0, po 5 symboli 1,2,3,4 itd. Jeżeli w okienku pojawią się dwa 0, to wygrana wynosi 0,5 stawki lub 1 itd. Przy w2 (3 symbole się pojawią) wygrana mnożona jest x3. Obliczyć jaka jest częstotliwość wygrywania i jaka jest wartość oczekiwana wygranej - ile przeciętnie wygramy w jednej grze. Stawka to 1. Sprawdzamy, każde możliwe ustawienie. k=c(rep(0,10),rep(1:4,5),rep(5,4),rep(6,3),7,7,8,9)
w=c(rep(.5,10),rep(1,20),rep(2,4),rep(3,3),5,5,10,20)
iw = 0 #ilość wygranych
sw = 0 #suma wygranych
n = length(k)
for (i1 in 1:n) {
for (i2 in 1:n) {
for (i3 in 1:n) {
# print(c(k[i1],k[i2],k[i3])) wyświetlą się warianty, wszystkie możliwe. }
}
}
print(paste('p=',iw/n^3,' E(1h)=',sw/n^3)) # wydrukujemy ilość wygranych podzieloną przez liczbę wszystkich możliwych ustawień. Sw - też na ilość wszystkich gier - dana wartość oczekiwana
S = wektor trzech wartości logicznych - czy na pierwszym polu jest to samo co na drugim itd.
Jakie są możliwe wartości tego wektora? 0 0 0 - trzy fałsze
1 0 0 - na pierwszym to samo co na drugim
0 1 0 - na drugim to samo co na trzecim
0 0 1 - na trzecim to samo co na pierwszym
1 1 1 - wszędzie jest to samo
Jak odróżnić czy wygrana jest pierwszego czy drugiego stopnia? Suma wartości jest 1 lub 3. Console:
x=c(0,1,0)
x
[1] 0 1 0
y=c(1,0,0)
z=c(0,0,1)
1:3*x
[1] 0 2 0
1:3*y
[1] 1 0 0
1:3*z
[1] 0 0 3
x
[1] 0 1 0
y
[1] 1 0 0
z
[1] 0 0 1
Możliwe wyniki - mnożenie wektorów i sprawdzanie R - nie trzeba tego wprowadzać, do pokazania jak działa
Gotowe?
k=c(rep(0,10),rep(1:4,5),rep(5,4),rep(6,3),7,7,8,9)
w=c(rep(.5,10),rep(1,20),rep(2,4),rep(3,3),5,5,10,20)
iw = 0 #ilość wygranych
sw = 0 #suma wygranych
n = length(k)
for (i1 in 1:n) {
for (i2 in 1:n) {
for (i3 in 1:n) {
s=c(k[i1]==k[i2],k[i2]==k[i3],k[i1]==k[i3]) r=sum(s*(1:3))


(…)

…) #dodaje wektor jedynek, sklejenie x
xtx1=solve(t(x)%*%x) #solve - zwraca macierz odwrotną, do (-1)
beta=xtx1%*%t(x)%*%y
}
Zajęcia 3 mnk=function(y,x,stat=T) {
if (is.vector(y)) dim(y)=c(length(y),1)
if (is.vector(x)) dim(x)=c(length(x),1) # zabezpieczenie, jeśli x lub y podano jako wektor - przerabiamy na macierz
n=nrow(y)
k=ncol(x)
x=cbind(x,1) #dodaje wektor jedynek, sklejenie x
xtx1=solve(t(x)%*%x) #solve - zwraca macierz odwrotną, do (-1)
beta=xtx1%*%t(x)%*%y
# statystyki
e=y-x%*%beta
NSK=t(e)%*%e
Se2=t(e)%*%e/(n-k-1)
Sb=(Se2*diag(xtx1))^.5
stat_t=beta/Sb
p_val_t=2*(1-pt(abs(stat_t),n-k-1))
CSK=t(y)%*%y-mean(y)^2*n
WSK=CSK-NSK
Fi2=NSK/CSK
R2=1-Fi2
stat_F=WSK/k/NSK*(n-k-1)
wynik=list(bety=beta,bledy=Sb,t_Stud=stat_t,p_val_t=p_val_t,
R_kw=R2,Fi_kw=Fi2,Se=Se2^.5,
CSK=CSK,WSK=WSK,NSK=NSK,
F_stat…
… i rozwiązanie problemu. Przykładowo: mamy punkt obsługi klienta - pojawia się losowa liczba klientów w ciągu dnia (np. liczba z rozkładu Poissona z liczbą 60?) Taki klient jest załatwiany w ciągu (liczba stała lub losowa). Punkt startuje o 8 rano i kończu o 16. Klienci pojawiają się losowo w tym przedziale czasowym. I zakładamy, że klient czeka w kolejce jeśli trzeba. I punkt zamykany dopiero, gdy obsłuży…
... zobacz całą notatkę

Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz