7. Из популације са вредностима обележја {1,2,…,100} извадити 15 простих случајних узорака без понављања обима 20. На сваком од њих наћи оцену укупне суме обележја и испитати који од узорака је најрепрезентативнији, тј. где је реализована вредност статистике \(T = N\overline{X_n}\) најближа стварној вредности.
vrednosti_obelezja = 1:100
N = length(vrednosti_obelezja) # obim populacije
k = 15 # broj uzoraka
n = 20 # obimi uzoraka
# 15 puta vadimo psu bp obima n, smestamo ih u listu
uzorci = list()
for(i in 1:15) {
uzorci[[i]] = sample(vrednosti_obelezja, n, replace = F)
}
uzorci## [[1]]
## [1] 92 57 18 47 62 60 30 43 58 41 71 1 44 54 83 5 93 19 39 32
##
## [[2]]
## [1] 48 99 41 7 39 70 59 65 8 58 57 45 27 100 22 38 18 74 28
## [20] 49
##
## [[3]]
## [1] 25 50 16 92 46 60 71 80 64 83 21 17 14 72 45 91 20 18 19
## [20] 100
##
## [[4]]
## [1] 93 53 6 72 83 95 46 25 77 98 67 48 13 36 30 31 73 85 92 34
##
## [[5]]
## [1] 98 94 69 85 72 33 82 10 16 24 3 23 2 61 59 27 73 62 68 18
##
## [[6]]
## [1] 73 54 93 32 5 85 8 76 89 96 100 68 60 15 1 80 46 31 61
## [20] 11
##
## [[7]]
## [1] 57 11 60 70 83 67 42 62 44 68 95 61 54 90 37 98 29 87 2 33
##
## [[8]]
## [1] 36 73 48 69 81 60 46 56 29 99 100 7 67 68 89 94 38 41 59
## [20] 20
##
## [[9]]
## [1] 83 18 74 20 13 39 64 33 26 1 24 89 87 51 63 34 50 46 49 55
##
## [[10]]
## [1] 39 57 54 60 50 15 95 96 38 90 66 30 51 93 87 45 13 7 11 53
##
## [[11]]
## [1] 53 45 74 38 29 30 12 72 10 83 76 35 52 49 69 28 63 20 36 2
##
## [[12]]
## [1] 17 43 47 62 76 86 79 31 49 61 73 55 64 12 26 7 29 84 38 83
##
## [[13]]
## [1] 58 56 7 98 45 91 85 72 67 71 93 92 79 76 46 52 8 36 26 16
##
## [[14]]
## [1] 61 44 65 67 97 95 54 16 48 47 100 30 71 31 26 58 73 94 2
## [20] 25
##
## [[15]]
## [1] 97 38 88 53 27 72 2 8 61 64 29 49 79 91 52 65 51 14 100
## [20] 55
# realizovane vrednosti statistike t_ocena = N*Xn na uzorcima
t_ocene = c()
for(i in 1:length(uzorci)) {
t_ocene[i] = N*mean(uzorci[[i]])
}
t_ocene## [1] 4745 4760 5020 5785 4895 5420 5750 5900 4595 5250 4380 5110 5870 5520 5475
## [1] 5050
# which.min(abs(t_ocene - t)) - vraca indeks vrednosti iz vektora t_ocene gde je apsoulutna vrednost razlike t_ocene-t najmanja
t_najbliza = t_ocene[which.min(abs(t_ocene - t))]
t_najbliza## [1] 5020
# which(t_ocene == t_najbliza) - vraca indeks vrednosti iz vektora t_ocene koja je jednaka vrednosti t_najbliza
najreprezentativniji = which(t_ocene == t_najbliza)
najreprezentativniji_uzorak = uzorci[[najreprezentativniji]]
najreprezentativniji_uzorak## [1] 25 50 16 92 46 60 71 80 64 83 21 17 14 72 45 91 20 18 19
## [20] 100
Прост случајан узорак
4. У кутији се налази 100 папирића на којима се налазе каро, пик, херц и треф. Десет пута се извлачи папирић, забележи се знак, а затим се папирић врати у кутију. Добијен је узорак (К, П, П, Х, К, Т, Т, П, Х, Х).
- Ако каро има вредност 1 динар, пик 2, херц 3, а треф 4, оценити укупну суму новца која се налази у кутији.
б) Одредити оцену броја пикова.
в) Одредити непристрасне оцене дисперзија ових оцена.
N = 100
x = 1:4 # karo 1, pik 2, herc 3, tref 4
uzorak = c(1, 2, 2, 3, 1, 4, 4, 2, 3, 3)
n = length(uzorak)
t_ocena = N*mean(uzorak)
t_ocena## [1] 250
# A - broj pikova od 100 papirica
br_pikova_u_uzorku = sum(uzorak==2)
pn = br_pikova_u_uzorku/n
A_ocena = N*pn
A_ocena## [1] 30
## [1] 1166.667
## [1] 233.3333
5. За који од следећих планова простог слуучајног узорковања без понављања ће бити добијена најпрецизнија оцена средње вредности обележја на популацији? Претпоставимо да обележје на свакој од популација има дисперзију 100.
а) Узорак обима 400, добијен из популације обима 4000.
б) Узорак обима 30, добијен из популације обима 200.
в) Узорак обима 3000, добијен из популације обима 300000000.
# trazimo gde je D(Xn) najmanja
s2 = 100
D_xn = function(N,n) {
(N-n)*s2/(N*n)
}
D_xn_1 = D_xn(4000, 400)
D_xn_2 = D_xn(200, 30)
D_xn_3 = D_xn(300000000, 3000)
D = c(D_xn_1, D_xn_2, D_xn_3)
which.min(D)## [1] 3
8. Оцењује се број дивљих животиња у неком региону који је подељен на 286 области. Изабран је прост случајан узорак без понављања од 15 области и дат је број животиња у њима: 1, 50, 21, 98, 2, 36, 4, 29, 7, 15, 86, 10, 21, 5, 4.
а) Наћи узорачку дисперзију, оцену просечног броја животиња по области, оцену дисперзије те оцене, као и оцену стандардне грешке.
б) Наћи 90% интервал поверења за укупан број животиња.
в) Коју величину узорка треба узети за оцењивање укупног броја животиња тако да одступање не буде веће од 2000 животиња са вероватноћом 0.9.
N = 286
n = 15
uzorak = c(1, 50, 21, 98, 2, 36, 4, 29, 7, 15, 86, 10, 21, 5, 4)
sn2 = var(uzorak)
sn2## [1] 919.0667
## [1] 25.93333
## [1] 58.05759
# xn je nepristrasna ocena, pa je MSE(xn) = D(xn), pa je standardna greska
# koren iz disperzije, i ocena standardne greske = koren iz ocene disperzije
st_greska_xn_ocena = sqrt(D_xn_ocena)
st_greska_xn_ocena## [1] 7.619553
## [1] 1.76131
t_ocena = N*mean(uzorak)
I_poverenja_za_t_90 = c(t_ocena - z_student*sqrt((N-n)*N*var(uzorak)/n),
t_ocena + z_student*sqrt((N-n)*N*var(uzorak)/n))
I_poverenja_za_t_90## [1] 3578.70 11255.17
## [1] 44
10. Посматрамо популацију обима 15 са вредностима обележја 3, 4, 12, 9, 8, 2, 6, 15, 14, 17, 1, 7, 12, 0, 1 и 5. Размотримо принцип простог случајног узорковања без понављања за узорак обима 4.
а) Одредити све могуће узорке и вероватноће да сваки од тих узорака буде изабран.
б) За сваки узорак израчунати узорачку средњу вредност, узорачку дисперзију, оцену дисперзије узорачке средине и медијану.
в) Показати да је средња вредност обележја на узорку непристрасна оцена средње вредности обележја популације и да је узорачка дисперзија непристрасна оцена дисперзије обележја на популацији.
obelezje = c(3, 4, 12, 9, 8, 2, 6, 15, 14, 17, 1, 7, 12)
N = length(obelezje)
n = 4
br_uzoraka = choose(N, n)
br_uzoraka## [1] 715
uzorak = list()
s = 1
for(i in 1:N) {
for(j in 1:N) {
for(k in 1:N) {
for(l in 1:N) {
if((i < j) & (j < k) & (k < l)) {
uzorak[[s]] = c(obelezje[i], obelezje[j],
obelezje[k], obelezje[l])
s = s+1
}
}
}
}
}
length(uzorak)## [1] 715
# verovatnoca svakog od uzoraka je jednaka 1/br_uzoraka
xn = c()
sn2 = c()
D_xn_ocena = c()
medijana = c()
for(i in 1:br_uzoraka) {
xn[i] = mean(uzorak[[i]])
sn2[i] = var(uzorak[[i]])
D_xn_ocena[i] = (N-n)*sn2[i]/(N*n)
medijana[i] = median(uzorak[[i]])
}
xn[1:10] # prikazujemo prvih 10## [1] 7.00 6.75 5.25 6.25 8.50 8.25 9.00 5.00 6.50 7.75
## [1] 18.00000 16.91667 20.91667 16.25000 35.00000 30.91667 44.66667 23.33333
## [9] 16.33333 24.25000
## [1] 3.115385 2.927885 3.620192 2.812500 6.057692 5.350962 7.730769 4.038462
## [9] 2.826923 4.197115
## [1] 6.5 6.0 3.5 5.0 8.0 8.0 8.0 3.5 5.5 8.0
## [1] 8.461538
## [1] 8.461538
## [1] 27.26923
## [1] 27.26923
Узорковање са неједнаким вероватноћама
3. Популација се састоји од 15 јединки чије су величине 23, 30, 41, 26, 53, 60, 28, 52, 113, 72, 80, 35, 42, 38 и 52. Изабрати узорак са понављањем и узорак без понављања обима 5 са вероватноћама пропорционалним величинама користећи Лахиријев метод.
velicine = c(32, 21, 24, 81, 29, 22, 62, 3, 56, 65, 100, 87, 68, 83, 77, 51, 76, 67, 38, 97)
N = length(velicine)
sum(velicine)## [1] 1139
## [1] 100
# u svakom koraku biramo uredjeni par (i, R)
# ako R <= Mi - biramo i-tu jedinku u uzorak
# ako R > Mi - nista, nastavljamo postupak
# uzorak sp - dok ne izaberemo n
# uzorak bp - dok ne izaberemo n razlicitih
uzorak_sp = c()
while(length(uzorak_sp) < n) {
i = sample(1:N, 1)
R = sample(1:K, 1)
if(R <= velicine[i]) {
uzorak_sp = c(uzorak_sp, i)
}
}
uzorak_sp## [1] 11 20 11 12 11 18 20 9 18 10 9 1 12 12 13
uzorak_bp = c()
while(length(uzorak_bp) < n) {
i = sample(1:N, 1)
R = sample(1:K, 1)
if(R <= velicine[i] & !(i %in% uzorak_bp)) {
uzorak_bp = c(uzorak_bp, i)
}
}
uzorak_bp## [1] 4 15 16 5 11 18 12 10 13 17 1 20 19 3 14
7. У датотеци populacija налазе се величине 120 јединки из популације. Извадити узорак са понављањем и узорак без понављања обима 90 користећи метод кумуланти.
populacija = read.table("populacija.txt")
M = sum(populacija$velicine)
n = 90
# formiramo kumulante
kumulante = cumsum(velicine)
kumulante = c(0, kumulante)
# biramo slucajan broj B: 0 < B <= M
# ako M1 + ... + Mi < B <= M1 + ... + M{i+1} biramo jedinku (i+1) u uzorak
# uzorak sa ponavljanjem - sprovodimo postupak n puta
uzorak = c()
while(length(uzorak) < n) {
B = sample(0:M, 1)
for(i in 1:(length(kumulante) - 1)) {
if((kumulante[i] < B) & (B <= kumulante[i+1])) {
uzorak = c(uzorak, i)
break
}
}
}
uzorak## [1] 21 105 77 22 116 67 21 6 98 38 59 67 22 16 82 20 84 77 58
## [20] 33 109 16 114 70 35 100 24 79 60 88 71 104 81 9 66 16 116 90
## [39] 23 26 105 58 34 20 6 119 103 79 34 18 98 38 1 25 18 23 63
## [58] 1 29 112 21 12 82 92 120 53 36 59 64 102 93 15 67 46 95 86
## [77] 53 26 102 44 106 117 51 20 1 82 99 53 34 63
## [1] 59
# uzorak bez ponavljanja - sprovodimo postupak dok ne dobijemo n razlicitih
uzorak = c()
while (length(uzorak) < n) {
B = sample(0:M, 1)
for(i in 1:(length(kumulante) - 1)) {
if((kumulante[i]<B) & (B<=kumulante[i+1]) & (!(i %in% uzorak))) {
uzorak = c(uzorak, i)
break
}
}
}
uzorak## [1] 13 100 114 51 95 85 112 33 53 118 74 69 21 32 8 119 54 72 73
## [20] 113 23 6 16 101 10 39 18 120 48 98 36 77 105 20 56 67 61 9
## [39] 75 94 12 84 63 58 14 109 15 71 66 3 17 108 46 19 70 106 62
## [58] 93 115 78 89 104 26 29 111 35 38 99 22 59 81 31 37 11 1 87
## [77] 117 30 40 7 43 47 82 90 60 102 86 64 88 91
## [1] 90
8. Из популације коју чине три поља на којима се узгаја пшеница бира се узорак обима 2 са вероватноћама пропорционалним величинама, са понављањем. Дати су подаци о количини произведене пшенице на сваком пољу и вероватноће избора сваког поља.
- i: 1 | 2 | 3
- x_i: 11 | 6 | 25
- p_i: 0.3 | 0.2 | 0.5
Налажењем свих могућих узорака одредити вероватноће укључења сваког елемента, као и Хансен-Хурвицову и Хорвиц-Томпсонову оцену за укупну производњу пшенице за сваки узорак.
N = 3
n = 2
i = 1:3
xi = c(11, 6, 25)
pi = c(0.3, 0.2, 0.5)
uzorci = list()
obelezje_na_uzorku = list()
i = 1
for (j in 1:N) {
for (k in 1:N) {
uzorci[[i]] = c(j, k)
obelezje_na_uzorku[[i]] = c(xi[j], xi[k])
i = i+1
}
}
length(uzorci)## [1] 9
## [1] 9
# v-ca uzorka (1,1) je p1*p1, (1,2) p1*p2, itd.
p_uzorka = c()
t_hh = c()
for(i in 1:length(uzorci)) {
p_uzorka[i] = prod(pi[uzorci[[i]]])
t_hh[i] = sum(xi[uzorci[[i]]]/pi[uzorci[[i]]])/n
}
p_uzorka## [1] 0.09 0.06 0.15 0.06 0.04 0.10 0.15 0.10 0.25
## [1] 1
## [1] 36.66667 33.33333 43.33333 33.33333 30.00000 40.00000 43.33333 40.00000
## [9] 50.00000
## [1] 0.51 0.36 0.75
# ili zbir verovatnoca svih uzoraka koji sadrze i
pii1 = rep(0, N)
for(i in 1:N) {
for(s in 1:length(uzorci)) {
if(i %in% uzorci[[s]]) {
pii1[i] = pii1[i] + p_uzorka[s]
}
}
}
pii1## [1] 0.51 0.36 0.75
## [1] 0.51 0.36 0.75
# realizovane vrednosti ocene t_ht
t_ht = c()
for(i in 1:length(uzorci)) {
if(uzorci[[i]][1] == uzorci[[i]][2]) { # ako ista jedinka odabrana 2 puta
t_ht[i] = obelezje_na_uzorku[[i]][1]/pii[uzorci[[i]][1]]
}
else { # ako dve razlicite jedinke u uzorku
t_ht[i] = sum(obelezje_na_uzorku[[i]]/pii[uzorci[[i]]])
}
}
t_ht## [1] 21.56863 38.23529 54.90196 38.23529 16.66667 50.00000 54.90196 50.00000
## [9] 33.33333
## [1] 42
## [1] 42
## [1] 42
10. Дата је популација од четири прашуме, њихове површине и бројеви тигрова који живе у њима:
Прашума: 1 | 2 | 3 | 4
Површина (у km2): 100 | 200 | 300 | 500
Број тигрова: 11 | 20 | 23 | 54
Вади се узорак од 2 прашуме. Оценити укупан број тигрова, одредити дисперзију те оцене и наћи непристрасну оцену те дисперзије ако је узорковање вршено:
а) Са понављањем (користити Хансен-Хурвицову оцену),
б) Без понављања (користити Хорвиц-Томпсонову оцену),
и извучен је узорак (1,2).
N = 4
n = 2
br_tigrova = c(11, 20, 23, 54)
Mi = c(100, 200, 300, 500)
M = sum(Mi)
uzorak = br_tigrova[c(1, 2)]
pi = Mi/M
pi## [1] 0.09090909 0.18181818 0.27272727 0.45454545
## [1] 1
## [1] 115.5
## [1] 108
## [1] 110.9333
## [1] 30.25
# bez ponavljanja
# za HT ocenu potrebne su nam verovatnoce ukljucenja
# uzorak bp -> ne vazi pii = (1 - pi)^n u opstem slucaju!
# pii = suma verovatnoca svih uzoraka koji sadrze i-tu jedinku
uzorci = list()
i = 1
for(j in 1:N) {
for(k in 1:N) {
if(j < k) {
uzorci[[i]] = c(j, k)
i = i + 1
}
}
}
# v-ca uzorka (i,j) =
# P(odaberemo i)P(odaberemo j|odabrali smo i) + P(odaberemo j)P(odaberemo i|odabrali smo j) =
# (Mi/M)*(Mj/(M-Mi)) + (Mj/M)*(Mi/(M-Mj))
vca_uzorka = function(i, j) {
(Mi[i]/M)*(Mi[j]/(M - Mi[i])) + (Mi[j]/M)*(Mi[i]/(M - Mi[j]))
}
p_uzorka = c()
for(i in 1:length(uzorci)) {
p_uzorka[i] = vca_uzorka(uzorci[[i]][1], uzorci[[i]][2])
}
p_uzorka## [1] 0.03838384 0.06136364 0.12121212 0.12878788 0.25252525 0.39772727
## [1] 1
pii = rep(0,N)
for(i in 1:N) {
for(j in 1:length(uzorci)) {
if(i %in% uzorci[[j]]) {
pii[i] = pii[i] + p_uzorka[j]
}
}
}
pii## [1] 0.2209596 0.4196970 0.5878788 0.7714646
# provera - sum(pii) == n, za uzorak bez ponavljanja
# (nekad moze da vrati FALSE iako zapravo jeste =, zbog zaokruzivanja)
sum(pii) == n## [1] TRUE
## [1] 97.43629
## [1] 108
D_t_ht = sum((1 - pii)*br_tigrova^2/pii)
for(i in 1:N) {
for(j in 1:N) {
if(i != j) {
pij = vca_uzorka(i, j)
D_t_ht = D_t_ht + (pij - pii[i]*pii[j])*(br_tigrova[i]*br_tigrova[j])/(pii[i]*pii[j])
}
}
}
D_t_ht## [1] 125.4964
D_t_ht_ocena = sum((1 - pii[c(1, 2)])*uzorak^2/(pii[c(1, 2)]^2))
for(i in c(1, 2)) {
for(j in c(1, 2)) {
if(i != j) {
pij = vca_uzorka(i, j)
D_t_ht_ocena = D_t_ht_ocena + (pij - pii[i]*pii[j])*(uzorak[i]*uzorak[j])/(pii[i]*pii[j]*pij)
}
}
}
D_t_ht_ocena## [1] -3470.008
D_t_ht_ocena_syg = 0
for (i in c(1, 2)) {
for(j in c(1, 2)) {
if(i < j) {
pij = vca_uzorka(i, j)
D_t_ht_ocena_syg = D_t_ht_ocena_syg + (pii[i]*pii[j] - pij)*((uzorak[i]/pii[i] - uzorak[j]/pii[j])^2)/pij
}
}
}
D_t_ht_ocena_syg## [1] 6.420883
Стратификовано узорковање
1. Испитује се колико су метара претрчали ученици једног разреда на часу физичког васпитања. У разреду има 112 ученика, од чега 59 девојчица и 53 дечака. Посматрано је 7 дечака и 8 девојчица. Забележено је:
Дечаци: 879, 810, 789, 567, 900, 870, 777.
Девојчице: 450, 234, 679, 456, 239, 555, 560, 467.
Оценити колико су просечно метара претрчала деца тог разреда и оценити дисперзију те оцене. Затим урадити исто коришћењем оцена предложених код простог случајног узорковања без `понављања.
N = 112
N_dec = 53
N_dev = 59
n_dec = 7
n_dev = 8
# broj pretrcanih metara za decake i devojcice
uzorak_decaci = c(879, 810, 789, 567, 900, 870, 777)
uzorak_devojcice = c(450, 234, 679, 456, 239, 555, 560, 467)
x_str = (N_dec*mean(uzorak_decaci) + N_dev*mean(uzorak_devojcice))/N
x_str## [1] 617.7181
# ne mozemo da odredimo disperziju ocene jer nemamo vrednosti obelezja za celu populaciju
# racunamo nepristrasnu ocenu disperzije
D_x_str_ocena = (N_dec^2*var(uzorak_decaci)*(1-n_dec/N_dec)/n_dec
+ N_dev^2*var(uzorak_devojcice)*(1-n_dev/N_dev)/n_dev)/(N^2)
D_x_str_ocena## [1] 1067.26
# PSU BP
n = n_dec + n_dev
uzorak = c(uzorak_decaci, uzorak_devojcice)
xsr_ocena = mean(uzorak)
xsr_ocena## [1] 615.4667
## [1] 2822.814
## [1] 1067.26
3. У датотеци stratumi налазе се подаци о вредностима обележја на популацији која се састоји из 2 стратума (стратуми су различитих величина - да би могли да се сместе у две колоне базе, мањи стратум је допуњен NA вредностима до величине већег стратума. Избацити их при рачунању.). Бира се стратификован узорак обима 500, тако што се из мањег стратума бира прост случајан узорак са понављањем обима 200, а из већег обима 300.
а) Оценити укупну суму обележја популације, израчунати дисперзију те оцене и оцену те дисперзије.
## [1] 198
## [1] 0
strat = list()
# uzimamo samo vrednosti koje nisu NA
strat[[1]] = na.exclude(stratumi$str1)
strat[[2]] = stratumi$str2
# velicine stratuma
Ni = sapply(strat,length)
Ni## [1] 690 888
# obim populacije
N = sum(Ni)
n = 500
uzorak = list()
# vadimo PSU SP obima 200 iz prvog, a 300 iz drugog stratuma
uzorak[[1]] = sample(strat[[1]], 200, replace = T)
uzorak[[2]] = sample(strat[[2]], 300, replace = T)
uzorak## [[1]]
## [1] 477 933 48 484 1 68 795 103 945 735 376 749 125 33 976 209 600 376
## [19] 368 246 64 9 895 945 651 465 763 275 708 23 274 413 524 438 895 125
## [37] 719 338 747 341 646 794 868 452 902 801 980 226 48 423 933 604 367 338
## [55] 737 439 793 101 536 234 696 654 227 394 649 934 441 653 307 263 241 422
## [73] 885 15 380 632 404 64 474 10 860 397 36 64 544 74 438 477 238 846
## [91] 529 274 113 604 270 674 980 377 895 491 332 9 438 729 29 202 508 112
## [109] 558 69 671 472 124 698 154 302 334 772 938 962 712 28 911 397 164 931
## [127] 483 719 657 934 945 460 312 318 114 334 536 205 513 457 957 6 860 651
## [145] 312 677 147 441 940 32 740 190 456 649 311 592 957 774 63 27 768 354
## [163] 227 397 792 965 151 367 449 349 226 1 89 700 124 679 35 768 517 530
## [181] 787 363 712 477 870 155 969 602 226 602 387 938 962 832 486 337 602 949
## [199] 956 341
##
## [[2]]
## [1] 366 196 865 923 536 477 39 590 513 401 621 598 48 740 577 385 714 535
## [19] 699 387 756 931 869 713 877 577 411 19 401 786 360 594 203 474 48 366
## [37] 827 108 156 746 656 776 411 865 170 101 668 411 40 647 289 903 54 236
## [55] 668 292 417 674 350 499 993 358 496 636 310 146 278 339 496 875 664 240
## [73] 99 898 228 835 715 168 992 608 934 541 169 549 886 916 951 58 394 940
## [91] 209 594 974 257 951 46 320 639 302 365 547 636 438 437 448 376 667 715
## [109] 453 390 83 814 815 152 382 345 891 866 470 673 201 312 82 379 46 814
## [127] 699 511 368 109 107 46 609 658 790 617 652 537 498 271 879 882 119 107
## [145] 949 743 809 365 273 219 402 436 688 244 978 843 465 654 205 409 217 281
## [163] 72 668 28 651 11 663 219 281 241 134 696 162 72 271 315 430 324 198
## [181] 938 473 226 711 733 97 458 146 821 909 903 175 852 993 208 245 869 825
## [199] 581 577 289 499 314 374 125 475 950 639 105 778 143 416 201 353 14 511
## [217] 734 389 984 363 608 663 935 879 496 365 553 60 156 859 156 292 884 658
## [235] 170 538 458 836 181 618 487 79 44 430 108 51 859 569 278 110 147 289
## [253] 461 751 553 306 114 40 491 210 368 991 651 539 740 143 774 261 569 635
## [271] 927 203 711 82 156 416 830 594 395 780 611 851 46 905 733 362 360 756
## [289] 473 158 508 119 913 293 747 406 577 618 173 788
# obimi uzoraka
ni = sapply(uzorak, length)
# racunamo uzoracke srednje vrednosti
xni = sapply(uzorak, mean)
t_str = sum(Ni*xni)
t_str## [1] 762282.4
## [1] 785903
## [1] 420368534
## [1] 412517409
4. а) Популација је подељена на три стратума чије су величине 123, 102 и 180, a одговарајуће дисперзије обележја су 116, 143 и 170, редом. Ако се бира стратификован случајан узорак обима 100, одредити величину узорка који се бира из сваког стратума користећи пропорционални избор.
б) Извести формулу за одређивање обима узорака који се узимају из сваког стратума ако се користи Нејманова метода, а затим одредити величину узорка који се узима из сваког стратума за популацију и дати обим узорка из дела а).
Ni = c(123, 102, 180)
si2 = c(116, 143, 170)
n = 100
N = sum(Ni)
# proporcionalni izbor
n_prop = round(n*Ni/N)
n_prop## [1] 30 25 44
## [1] 99
while(sum(n_prop) > n) { # ako je > n, smanjujemo slucajno odabrani za 1 dok ne bude n
pom = sample(1:length(n_prop), 1)
n_prop[pom] = n_prop[pom] - 1
}
while(sum(n_prop) < n) { # ako je < n, povecavamo slucajno odabrani za 1 dok ne bude n
pom = sample(1:length(n_prop), 1)
n_prop[pom] = n_prop[pom] + 1
}
sum(n_prop)## [1] 100
# Nejmanov izbor
n_nejman = Ni*sqrt(si2)*n / sum(Ni*sqrt(si2))
n_nejman = round(n_nejman)
sum(n_nejman)## [1] 100
8. У датотеци netflix_titles налазе се подаци о филмовима и серијама додатим на платформу Netflix у периоду од 2008. до 2021. године.
- Поделити наслове у стратуме по годинама када су додати, али тако да се сви наслови додати пре 2015. године налазе у једном стратуму. Изабрати стратификован случајан узорак без понављања обима 500 користећи Нејманов избор, па оценити удео серија у насловима.
б) Поделити серије у стратуме по рејтингу (постоји само једна серија са рејтингом TV-Y7-FV, њу сместити у стратум са серијама са рејтингом R). Изабрати стратификован случајан узорак без понављања обима 200 серија користећи Нејманов избор, па оценити просечан број сезона.
## [1] 10
## [1] 0
indeksi = which(netflix_titles$date_added == "")
netflix_titles_full = netflix_titles[-indeksi, ] # izbacujemo opservacije gde nemamo datum dodavanja na netflix
sum(netflix_titles_full$date_added == "")## [1] 0
## [1] "September 25, 2021"
# zelimo godinu -> koristimo strsplit da razdvojimo string
strsplit(netflix_titles_full$date_added[1], ", ")## [[1]]
## [1] "September 25" "2021"
year_added = sapply(strsplit(netflix_titles_full$date_added, ", "), function(x) {x[2]}) # uzimamo godine
year_added = as.numeric(year_added)
netflix_titles_full = cbind(netflix_titles_full, year_added)
unique(netflix_titles_full$year_added)## [1] 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2009 2008 2010
# formiramo stratume
stratumi = list()
s = 1
for (i in unique(netflix_titles_full$year_added)[unique(netflix_titles_full$year_added) > 2014]) {
stratumi[[s]] = netflix_titles_full[netflix_titles_full$year_added == i, ]
s = s + 1
}
stratumi[[s]] = netflix_titles_full[netflix_titles_full$year_added <= 2014, ]
Ni = sapply(stratumi, function(x) {length(x[, 1])})
sum(Ni) == length(netflix_titles_full$show_id)## [1] TRUE
n = 500
si = sapply(stratumi, function(x) {sd(x$type == "TV Show")})
ni = round(Ni*si*n / sum(Ni*si))
sum(ni)## [1] 501
## [1] 500
uzorak = list(); xni = c()
s = 1
for (i in 1:length(stratumi)) {
uzorak[[s]] = stratumi[[s]][sample(1:Ni[s], ni[s]), ]
xni[s] = mean(uzorak[[s]]$type == "TV Show")
}
(pstr = sum(Ni*xni) / N)## [1] 0.3863636
# b)
TVS = netflix_titles[netflix_titles$type == "TV Show", ] # biramo samo TV serije
sum(TVS$rating == "")## [1] 2
## [1] 0
## [1] 0
Ns = length(TVS_full$show_id)
# zelimo da izvucemo broj sezona iz Duration -> koristimo strsplit
TVS_full$duration[1]## [1] "2 Seasons"
## [[1]]
## [1] "2" "Seasons"
seasons = sapply(strsplit(TVS_full$duration, " "), function(x) {x[1]})
seasons = as.numeric(seasons)
TVS_full = cbind(TVS_full, seasons)
unique(TVS_full$rating)## [1] "TV-MA" "TV-14" "TV-Y7" "TV-PG" "TV-Y" "TV-G" "R"
## [8] "NR" "TV-Y7-FV"
## [1] 1
# stavljamo u stratum sa "R"
stratumi = list()
s = 1
for (i in unique(TVS_full$rating)[unique(TVS_full$rating) != "TV-Y7-FV"]) {
stratumi[[s]] = TVS_full[TVS_full$rating == i, ]
s = s + 1
}
# ubacujemo opservacije sa rejtingom "TV-Y7-FV" u stratum sa rejtingom "R"
for (i in 1:length(stratumi)) {
if (stratumi[[i]]$rating[1] == "R") { # svi imaju isti rejting, dovoljno je da pogledamo prvi element
stratumi[[i]] = rbind(stratumi[[i]], TVS_full[TVS_full$rating == "TV-Y7-FV", ])
}
}
Ni = sapply(stratumi, function(x) {length(x[, 1])})
sum(Ni) == Ns## [1] TRUE
ns = 200
si = sapply(stratumi, function(x) {sd(x$seasons)})
ni = round(Ni*si*n / sum(Ni*si))
sum(ni)## [1] 500
uzorak = list(); xni = c()
s = 1
for (i in 1:length(stratumi)) {
uzorak[[s]] = stratumi[[s]][sample(1:Ni[s], ni[s]), ]
xni[s] = mean(uzorak[[s]]$seasons)
}
(xstr = sum(Ni*xni) / N)## [1] 0.5008372
Количничко оцењивање
3. Дата је популација обима 4 и вредности обележја које се испитује (x) и помоћног обележја (y):
x: 3, 5, 7, 9
y: 1, 2, 2, 3
На основу простих случајних узорака без понављања обима 2 и 3 испитати да ли је количничка оцена количника популације непристрасна.
N = 4
x = c(3, 5, 7, 9)
y = c(1, 2, 2, 3)
# formiramo sve uzorke bez ponavljanja obima 2
uzorci_2 = list()
i = 1
for(j in 1:N) {
for(k in 1:N) {
if(j < k) {
uzorci_2[[i]] = rbind(c(x[j], x[k]),
c(y[j], y[k])
)
i = i + 1
}
}
}
uzorci_2## [[1]]
## [,1] [,2]
## [1,] 3 5
## [2,] 1 2
##
## [[2]]
## [,1] [,2]
## [1,] 3 7
## [2,] 1 2
##
## [[3]]
## [,1] [,2]
## [1,] 3 9
## [2,] 1 3
##
## [[4]]
## [,1] [,2]
## [1,] 5 7
## [2,] 2 2
##
## [[5]]
## [,1] [,2]
## [1,] 5 9
## [2,] 2 3
##
## [[6]]
## [,1] [,2]
## [1,] 7 9
## [2,] 2 3
# racunamo vrednosti koje uzima slucajna velicina R_ocena = xn/yn na uzorcima
# posto je u pitanju prosto slucajno uzorkovanje, svaki od uzoraka ima jednaku verovatnocu 1/length(uzorci_2)
# (1/broj uzoraka)
# Dakle, sl.velicina R_ocena uzima vrednosti iz vektora R_ocena_2, svaku sa istom verovatnocom 1/length(uzorci_2)
R_ocena_2 = c()
for(i in 1:length(uzorci_2)) {
R_ocena_2[i] = mean(uzorci_2[[i]][1, ]/uzorci_2[[i]][2, ])
}
ER_ocena_2 = sum(R_ocena_2 * 1/length(uzorci_2))
ER_ocena_2## [1] 3
## [1] 3
# ispostavlja se da jeste nepristrasna u ovom slucaju
# n = 3
uzorci_3 = list()
i = 1
for(j in 1:N) {
for(k in 1:N) {
for(s in 1:N) {
if(j < k && k < s) {
uzorci_3[[i]] = rbind(c(x[j],x[k],x[s]),
c(y[j],y[k],y[s])
)
i = i + 1
}
}
}
}
uzorci_3## [[1]]
## [,1] [,2] [,3]
## [1,] 3 5 7
## [2,] 1 2 2
##
## [[2]]
## [,1] [,2] [,3]
## [1,] 3 5 9
## [2,] 1 2 3
##
## [[3]]
## [,1] [,2] [,3]
## [1,] 3 7 9
## [2,] 1 2 3
##
## [[4]]
## [,1] [,2] [,3]
## [1,] 5 7 9
## [2,] 2 2 3
R_ocena_3 = c()
for(i in 1:length(uzorci_3)) {
R_ocena_3[i] = mean(uzorci_3[[i]][1, ]/uzorci_3[[i]][2, ])
}
ER_ocena_3 = sum(R_ocena_3 * 1/length(uzorci_3))
ER_ocena_3## [1] 3
4. Дате су следеће вредности:
Школа | 1 | 2 | 3 | 4
Број деце која имају 5 из математике | 200 | 300 | 100 | 250
Број посматраних разреда | 4 | 5 | 3 | 4
Истраживач жели да посматрањем прве и треће школе донесе закључак о укупном броју деце која имају пет из математике. Испитати да ли је количничка оцена која се користи непристрасна (ако се користи просто случајно узорковање без понављања), одредити њену вредност на датом узорку, а затим упоредити са оценом добијеном на основу простог случајног узорка без понављања. Која је боља?
br_petica = c(200, 300, 100, 250)
br_razreda = c(4, 5, 3, 4)
# uzorak koji je odabran
indeks = c(1, 3)
uzorak_br_petica = br_petica[indeks]
uzorak_br_razreda = br_razreda[indeks]
# kolicnicka ocena na osnovu odabranog uzorka
R_ocena = mean(uzorak_br_petica) / mean(uzorak_br_razreda)
t_r = R_ocena * sum(br_razreda)
t_r## [1] 685.7143
N = 4
# nepristrasnost kolicnicke ocene
uzorci = list()
i = 1
for(j in 1:N) {
for(k in 1:N) {
if(j < k) {
uzorci[[i]] = rbind(c(br_petica[j], br_petica[k]),
c(br_razreda[j], br_razreda[k])
)
i = i + 1
}
}
}
# vrednosti koje uzima slucajna velicina t_r
t_r_ocene = c()
for(i in 1:length(uzorci)) {
R_ocena = mean(uzorci[[i]][1, ]) / mean(uzorci[[i]][2, ])
t_r_ocene[i] = R_ocena * sum(br_razreda)
}
t_r_ocene## [1] 888.8889 685.7143 900.0000 800.0000 977.7778 800.0000
## [1] 842.0635
## [1] 850
## [1] 8721.55
## [1] 600
## [1] 29166.67
## [1] 8721.55
8. Дати су подаци за два стратума из популације величине 14:
I | x: 2, 2, 3, 4, 6, 7, 7, 3 | y: 6, 6, 7, 7, 8, 8, 6, 5
II | x: 10, 11, 12, 14, 15, 16 | y: 10, 11, 16, 17, 18, 18
Из првог стратума одабране су у узорак 4, а из другог 3 јединке. Вредности јединки одабраних у узорак су:
I | x: 2, 3, 7, 3 | y: 6, 7, 8, 5
II | x: 10, 14, 15 | y: 10, 17, 18
Наћи комбиновану и посебну количничку оцену средње вредности обележја популације, а затим одредити дисперзије тих оцена.
N = 14
stratumi = list()
stratumi[[1]] = rbind(c(2, 2, 3, 4, 6, 7, 7, 3),
c(6, 6, 7, 7, 8, 8, 6, 5))
stratumi[[2]] = rbind(c(10, 11, 12, 14, 15, 16),
c(10, 11, 16, 17, 18, 18))
uzorak = list()
uzorak[[1]] = rbind(c(2, 3, 7, 3),
c(6, 7, 8, 5))
uzorak[[2]] = rbind(c(10, 14, 15),
c(10, 17, 18))
Ni = sapply(stratumi, ncol)
ni = sapply(uzorak, ncol)
xni = sapply(uzorak, function(x) {mean(x[1, ])})
yni = sapply(uzorak, function(x) {mean(x[2, ])})
xstr = sum(Ni*xni)
ystr = sum(Ni*yni)
Rc = xstr / ystr
Rc## [1] 0.7605634
## [1] 7.768612
x = c(stratumi[[1]][1, ], stratumi[[2]][1, ])
Ri = xni / yni
ty = sapply(stratumi, function(x) {sum(x[2, ])})
xrs = sum(Ri * ty) / N
xrs## [1] 7.755495
si2x = sapply(stratumi, function(x) {var(x[1, ])})
si2y = sapply(stratumi, function(x) {var(x[2, ])})
rho = sapply(stratumi, function(x) {cor(x[1, ], x[2, ])})
R = mean(x)/mean(y)
Dxrc = sum(Ni^2*(1-ni/Ni) * (si2x + R^2*si2y - 2*R*rho*sqrt(si2x)*sqrt(si2y))/ni) / (N^2)
Dxrs = sum(Ni^2*(1-ni/Ni) * (si2x + Ri^2*si2y - 2*Ri*rho*sqrt(si2x)*sqrt(si2y))/ni) / (N^2)Регресионо оцењивање
2. У квалификацијама за европско првенство у кошарци учествовало је 40 екипа. Одабран је прост случајан узорак од 6 екипа. Дати су подаци о броју постигнутих поена на свих 10 утакмица, као и број кошаркаша у тиму виших од 2 метра.
Број поена: 851, 945, 844, 978, 999, 821.
Број кошаркаша виших од 2m: 6, 4, 4, 6, 5, 7.
Познато је да је укупно на турниру било 211 играча виших од 2m. Регресионом методом оценити укупан број постигнутих поена у квалификацијама, ако је помоћно обележје број кошаркаша виших од 2 метра и ако је регресиони коефицијент:
а) Непознат, и оцењује се из узорка;
б) Познат, b0 = 20. У овом случају одредити оцену дисперзије оцене укупног броја поена.
N = 40
n = 6
br_poena = c(851, 945, 844, 978, 999, 821)
br_visih_od_2m = c(6, 4, 4, 6, 5, 7)
# suma pomocnog obelezja
t_visih_od_2m = 211
rho_ocena = cor(br_poena, br_visih_od_2m)
rho_ocena## [1] -0.2811843
## [1] -17.81818
# ili
sum((br_poena - mean(br_poena)) * (br_visih_od_2m - mean(br_visih_od_2m))) / sum((br_visih_od_2m-mean(br_visih_od_2m))^2)## [1] -17.81818
## [1] 36294.91
# b)
b0 = 20
x_lr_b0 = mean(br_poena) + b0 * (t_visih_od_2m/N - mean(br_visih_od_2m))
t_lr_b0 = N * x_lr_b0
t_lr_b0## [1] 36206.67
D_x_lr_ocena = (1 - n/N) * (var(br_poena) + b0^2 * var(br_visih_od_2m) - 2 * b0 * rho_ocena * sqrt(var(br_poena)) * sqrt(var(br_visih_od_2m))) / n
D_x_lr_ocena## [1] 1065.541
## [1] 1704866
5. Дата је популација од 12 јединки која је подељена на три стратума. Вредности обележја од интереса и помоћног обележја су:
I | x: 4, 3, 2, 1, 6 | y: 5, 5, 1, 2, 7
II | x: 2, 3 | y: 4, 5
III | x: 5, 3, 1, 7, 5 | y: 6, 3, 3, 2, 8
У узорак су одабрани елементи:
I | x: 4, 1, 6 | y: 5, 2, 7
II | x: 2 | y: 4
III | x: 5, 3 | y: 6, 3
а) Ако је познато да је b0 = 2, наћи комбиновану оцену средње вредности обележја x, а затим одредити дисперзију те оцене.
б) Ако је познато да је b10 = 2, b20 = 1, b30 = 3, наћи посебну оцену средње вредности обележја x, а затим одредити дисперзију те оцене и упоредити је са оценом из дела а).
N = 12
stratumi = list()
stratumi[[1]] = rbind(c(4, 3, 2, 1, 6),
c(5, 5, 1, 2, 7))
stratumi[[2]] = rbind(c(2, 3),
c(4, 5))
stratumi[[3]] = rbind(c(5, 3, 1, 7, 5),
c(6, 3, 3, 2, 8))
stratumi## [[1]]
## [,1] [,2] [,3] [,4] [,5]
## [1,] 4 3 2 1 6
## [2,] 5 5 1 2 7
##
## [[2]]
## [,1] [,2]
## [1,] 2 3
## [2,] 4 5
##
## [[3]]
## [,1] [,2] [,3] [,4] [,5]
## [1,] 5 3 1 7 5
## [2,] 6 3 3 2 8
uzorak = list()
uzorak[[1]] = rbind(c(4, 1, 6),
c(5, 2, 7))
uzorak[[2]] = rbind(c(2),
c(4))
uzorak[[3]] = rbind(c(5, 3),
c(6, 3))
uzorak## [[1]]
## [,1] [,2] [,3]
## [1,] 4 1 6
## [2,] 5 2 7
##
## [[2]]
## [,1]
## [1,] 2
## [2,] 4
##
## [[3]]
## [,1] [,2]
## [1,] 5 3
## [2,] 6 3
b0 = 2
Ni = sapply(stratumi, ncol)
ni = sapply(uzorak, ncol)
y_sr = mean(c(stratumi[[1]][2, ], stratumi[[2]][2, ],stratumi[[3]][2, ]))
y_sr## [1] 4.25
xni = sapply(uzorak, function(x) {mean(x[1, ])})
yni = sapply(uzorak, function(x) {mean(x[2, ])})
x_str = sum(Ni * xni) / N
y_str = sum(Ni * yni) / N
x_lr_c = x_str + b0 * (y_sr - y_str)
x_lr_c## [1] 3.055556
# vektor koji sadrzi koeficijente korelacije po stratumima
rho = sapply(stratumi, function(x) {cor(x[1, ],x[2, ])})
rho## [1] 0.9020123 1.0000000 0.1572427
# vektor disperzija obelezja x po stratumima
s2_x = sapply(stratumi, function(x) {var(x[1, ])})
# vektor disperzija obelezja y po stratumima
s2_y = sapply(stratumi, function(x) {var(x[2, ])})
D_x_lr_c = sum(Ni^2 * (1 - ni/Ni) * (s2_x + b0^2 * s2_y - 2 * b0 * rho * sqrt(s2_x) * sqrt(s2_y)) / ni)
D_x_lr_c = D_x_lr_c / N^2
D_x_lr_c## [1] 1.650463
# b)
b0_i = c(2, 1, 3)
y_sr_i = sapply(stratumi, function(x) {mean(x[2, ])})
x_lr_s = sum(Ni * (xni + b0_i * (y_sr_i - yni))) / N
x_lr_s## [1] 2.930556
# srednja vrednost obelezja x na populaciji (vrednost koju ocenjujemo)
x_sr = mean(c(stratumi[[1]][1, ], stratumi[[2]][1, ], stratumi[[3]][1, ]))
x_sr## [1] 3.5
## [1] 3.055556
## [1] 2.930556
D_x_lr_s = sum(Ni^2 * (1 - ni/Ni) * (s2_x + b0_i^2 * s2_y - 2 * b0_i * rho * sqrt(s2_x) * sqrt(s2_y)) / ni)
D_x_lr_s = D_x_lr_s / N^2
D_x_lr_s## [1] 3.190394
## [1] TRUE
Кластер узорковање
1. Популација од 12 елемената подељена је на три кластера. Вредности обележја су:
I | 2, 4, 6
II | 3, 3, 4, 5, 5
III | 1, 1, 2, 4
Методом простог случајног узорковања без понављања у узорак су одабрани први и трећи кластер.Наћи непристрасну оцену суме обележја популације, дисперзију те оцене,а затим и количничку оцену суме обележја популације и дисперзију те оцене.
N = 3 # broj primarnih jedinica
klasteri = list()
klasteri[[1]] = c(2, 4, 6)
klasteri[[2]] = c(3, 3, 4, 5, 5)
klasteri[[3]] = c(1, 1, 2, 4)
# klasteri izabrani u uzorak
indeks = c(1, 3)
# sume obelezja po klasterima
ti = sapply(klasteri, sum)
n = 2
# ocena za t
t_ocena = N * sum(ti[indeks]) / n
t_ocena## [1] 30
## [1] 40
# disperzija ocene t_ocena
D_t_ocena = N^2 * (1 - n/N) * sum((ti - t/N)^2) / (n * (N - 1))
D_t_ocena## [1] 56
# velicine klastera
Mi = sapply(klasteri, length)
Mu = sum(Mi)
# kolicnicka ocena
t_r = sum(ti[indeks]) * Mu / sum(Mi[indeks])
t_r## [1] 34.28571
## [1] 32.66667
4. Популација која садржи 250 елемената, издељена је на 20 скупина. Изабран је узорак од 5 скупина са вероватноћама пропорционалним величинама скупина (са понављањем), чије су величине и суме обележја дате:
Mi | 5 | 17 | 10 | 12 | 22
ti | 4 | 11 | 7 | 11 | 23
Наћи Хорвиц-Томпсонову оцену средње вредности обележја и оценити дисперзију те оцене.
Mu = 250
N = 20
n = 5
Mi = c(5, 17, 10, 12, 22)
ti = c(4, 11, 7, 11, 23)
# verovatnoce izbora u jednom biranju za klastere odabrane u uzorak
pi = Mi / Mu
# verovatnoce ukljucenja 1.reda za klastere odabrane u uzorak
pii = 1 - (1 - pi)^n
pii## [1] 0.0960792 0.2967989 0.1846273 0.2180396 0.3690801
## [1] 0.9175012
D_x_ht_ocena = sum((1 - pii) * ti^2 / (pii^2))
for(i in 1:n) {
for(j in 1:n) {
if(i != j) {
pij = pii[i] + pii[j] - 1 + (1 - pi[i] - pi[j])^n
D_x_ht_ocena = D_x_ht_ocena + (pij - pii[i]*pii[j]) * (ti[i]*ti[j]) / (pii[i]*pii[j]*pij)
}
}
}
D_x_ht_ocena = D_x_ht_ocena / (Mu^2)
D_x_ht_ocena## [1] 0.005581875
5. Дати су подаци о оценама из математике за 12 ученика који су подељени у 3 групе:
I | 2, 4, 5
II | 3, 3, 4, 5, 2
III| 1, 3, 5, 1
Бирањем пропорционалним величини групе, са понављањем, у узорак су одабране прва и трећа група. Наћи Хансен-Хурвицову оцену просечне оцене из математике и дисперзију те оцене.
klasteri = c()
klasteri[[1]] = c(2, 4, 5)
klasteri[[2]] = c(3, 3, 4, 5, 2)
klasteri[[3]] = c(1, 3, 5, 1)
Mi = c() # broj sekundarnih jedinica u klasteru
ti = c() # suma obelezja u klasteru
for(i in 1:length(klasteri)) {
Mi[i] = length(klasteri[[i]])
ti[i] = sum(klasteri[[i]])
}
Mu = 12
N = 3
n = 2
indeks = c(1, 3)
# HH ocena srednje vrednosti obelezja
x_hh = sum(ti[indeks] / Mi[indeks]) / n
x_hh## [1] 3.083333
## [1] 3.166667
## [1] 0.1166667
Систематско узорковање
1. Популација се састоји од 20 јединки, чије су вредности обележја 1, 12, 4, 23, 23, 13, 15, 6, 16, 18, 35, 31, 23, 26, 19, 21, 32, 3, 27, 22. Формирати систематске узорке обима 5, а затим одредити дисперзију средине систематског узорка.
obelezje = c(1, 12, 4, 23, 23, 13, 15, 6, 16, 18, 35, 31, 23, 26, 19, 21, 32, 3, 27, 22)
N = length(obelezje)
n = 5
k = N / n
k## [1] 4
# moguci uzorci obima n su dati po kolonama (ima ih k)
indeksi = matrix(1:N, n, k, byrow = T)
indeksi## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
## [4,] 13 14 15 16
## [5,] 17 18 19 20
## [,1] [,2] [,3] [,4]
## [1,] 1 12 4 23
## [2,] 23 13 15 6
## [3,] 16 18 35 31
## [4,] 23 26 19 21
## [5,] 32 3 27 22
# disperzija
s2 = 0
s_sis = 0
for(i in 1:k) {
for (j in 1:n) {
s2 = s2 + (uzorci[j, i] - mean(uzorci))^2
s_sis = s_sis + (uzorci[j, i] - mean(uzorci[, i]))^2
}
}
s2 = s2 / (N-1)
s2## [1] 95.94737
## [1] TRUE
## [1] 106.525
## [1] 5.93
## [1] 5.93
2. Популација се састоји од 900 јединки. Одабрати узорак обима 200 користећи систематско узорковање.
## [1] 4.5
## [1] 5
# na slucajan nacin odaberemo jedan element od prvih k
r = sample(1:k, 1)
r # biramo u uzorak r, r + k, r + 2k, ...## [1] 1
## [1] 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86
## [19] 91 96 101 106 111 116 121 126 131 136 141 146 151 156 161 166 171 176
## [37] 181 186 191 196 201 206 211 216 221 226 231 236 241 246 251 256 261 266
## [55] 271 276 281 286 291 296 301 306 311 316 321 326 331 336 341 346 351 356
## [73] 361 366 371 376 381 386 391 396 401 406 411 416 421 426 431 436 441 446
## [91] 451 456 461 466 471 476 481 486 491 496 501 506 511 516 521 526 531 536
## [109] 541 546 551 556 561 566 571 576 581 586 591 596 601 606 611 616 621 626
## [127] 631 636 641 646 651 656 661 666 671 676 681 686 691 696 701 706 711 716
## [145] 721 726 731 736 741 746 751 756 761 766 771 776 781 786 791 796 801 806
## [163] 811 816 821 826 831 836 841 846 851 856 861 866 871 876 881 886 891 896
## [1] 180
## [1] 20
## [1] 896
## [1] 901
# dopunjavamo do uzorka obima 200
dodatak = cumsum(c(max(uzorak) + k - N, rep(k, n - length(uzorak) - 1)))
dodatak## [1] 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
## [1] TRUE
## [1] 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86
## [19] 91 96 101 106 111 116 121 126 131 136 141 146 151 156 161 166 171 176
## [37] 181 186 191 196 201 206 211 216 221 226 231 236 241 246 251 256 261 266
## [55] 271 276 281 286 291 296 301 306 311 316 321 326 331 336 341 346 351 356
## [73] 361 366 371 376 381 386 391 396 401 406 411 416 421 426 431 436 441 446
## [91] 451 456 461 466 471 476 481 486 491 496 501 506 511 516 521 526 531 536
## [109] 541 546 551 556 561 566 571 576 581 586 591 596 601 606 611 616 621 626
## [127] 631 636 641 646 651 656 661 666 671 676 681 686 691 696 701 706 711 716
## [145] 721 726 731 736 741 746 751 756 761 766 771 776 781 786 791 796 801 806
## [163] 811 816 821 826 831 836 841 846 851 856 861 866 871 876 881 886 891 896
## [181] 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86
## [199] 91 96
## [1] 200