-
Notifications
You must be signed in to change notification settings - Fork 5
/
EX2
58 lines (41 loc) · 1.55 KB
/
EX2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
EX 2
1/ pro zvolene rozdeleni a zvoleny parametr odvodte teoreticky vzorecek pro momentovy nebo maximalne verohodny odhad,
2/ pro simulovana data spocitejte navrzeny odhad,
3/ opakovanim simulace z bodu 2/ ziskate simulaci rozdeleni odhadu (vzhledem k odhadovanemu parametru) -- to lze znazornit napriklad pomoci histogramu,
4/ pokuste se odvodit konfidencni interval a pomoci pocitacove simulace overte, ze skutecne funguje.
Priklad pro Exponencialni rozdeleni v R:
## exponencialni rozdeleni
x=rexp(20,rate=10)
curve(dexp(x,rate=10))
odhad=1/mean(x)
simul.x=matrix(rexp(1000*20,rate=10),nrow=20)
odhady=apply(simul.x,2,function(x){1/mean(x)})
par(mfrow=c(2,2))
hist(odhady,prob=TRUE)
curve(dnorm(x,mean=10,sd=10/sqrt(20)),add=TRUE)
hist(log(odhady),pro=TRUE)
curve(dnorm(x,mean=log(10),sd=1/sqrt(20)),add=TRUE)
ci1.l=odhady-qnorm(0.975)*odhady/sqrt(20)
ci1.u=odhady+qnorm(0.975)*odhady/sqrt(20)
ci2.l=odhady/exp(qnorm(0.975)/sqrt(20))
ci2.u=odhady*exp(qnorm(0.975)/sqrt(20))
plot(NULL,ylim=c(0,25),xlim=c(0,100))
for(i in 1:100) {
lines(x=c(i,i),y=c(ci1.l[i],ci1.u[i]))
}
abline(h=10)
pod1=mean(ci1.u<10)
nad1=mean(ci1.l>10)
plot(NULL,ylim=c(0,25),xlim=c(0,100))
for(i in 1:100) {
lines(x=c(i,i),y=c(ci2.l[i],ci2.u[i]))
}
abline(h=10)
pod2=mean(ci2.u<10)
nad2=mean(ci2.l>10)
## verohodnostni a log-verohodnostni fce pro exponencialni rozdeleni (lze numericky maximalizovat napr. funkci mle() v knihovne stats4)
par(mfrow=c(2,1))
verohodnost=function(u){(u^20)*exp(-u*sum(x))}
curve(verohodnost(x),5,15)
logver=function(u){20*log(u)-u*sum(x)}
curve(logver(x),5,15)