R version 2.13.1 (2011-07-08) Copyright (C) 2011 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. [Previously saved workspace restored] > rm(list=ls()) > ls() character(0) > setwd("d:/vjezbe4") > getwd() [1] "D:/Vjezbe4" > # 1.Učitajmo podatke iz datoteke podaci.dat i spremimo podatke koji se odnose na Etrušćane u vektor etr: > podaci<-read.table("podaci.dat") > podaci V1 V2 1 141 133 2 140 120 3 144 125 4 146 134 5 143 128 6 144 131 7 149 135 8 147 138 9 153 124 10 146 130 11 148 125 12 147 130 13 144 133 14 141 138 15 140 130 16 141 132 17 146 129 18 140 128 19 132 130 20 148 138 21 126 135 22 136 138 23 131 132 24 143 125 25 149 139 26 142 143 1
27 138 133 28 144 138 29 140 134 30 140 125 31 143 136 32 147 132 33 138 144 34 140 137 35 154 127 36 150 139 37 144 131 38 146 130 39 141 137 40 146 140 41 142 128 42 137 127 43 142 132 44 149 132 45 142 140 46 142 130 47 149 138 48 150 133 49 149 127 50 152 128 51 150 136 52 145 137 53 141 136 54 137 136 55 148 129 56 132 139 57 142 135 58 145 134 59 146 131 60 149 121 61 140 132 62 148 135 63 135 126 64 142 130 65 137 126 66 155 131 67 158 116 68 145 133 69 154 139 70 148 148 > etr<-podaci[,1] > # 2.Izračunajmo duljinu, minimalan i maksimalan element, te raspon uzorka: > n_etr<-length(etr) > n_etr [1] 70 > min_etr<-min(etr) > min_etr [1] 126 > max_etr<-max(etr) > max_etr [1] 158 > d_etr<-max_etr-min_etr 2
> d_etr [1] 32 > # 3.Nacrtajmo histogram apsolutnih frekvencija sa 11 razreda: > prva<-min_etr-0.5 > k<-11 > d_etr/k [1] 2.909091 > c<-3 > gr_etr<-numeric(12) > gr_etr [1] 0 0 0 0 0 0 0 0 0 0 0 0 > for (i in 1:(k+1)){ + gr_etr[i]<-prva+(i-1)*c} > gr_etr [1] 125.5 128.5 131.5 134.5 137.5 140.5 143.5 146.5 149.5 152.5 155.5 158.5 > sr_etr<-numeric(k) > for (i in 1:k){ + sr_etr[i]<-(gr_etr[i]+gr_etr[i+1])/2} > sr_etr [1] 127 130 133 136 139 142 145 148 151 154 157 > fr_etr<-numeric(11) > for (i in 1:n_etr){ + for(j in 1:k){ + if (etr[i]>=gr_etr[j] && etr[i]<gr_etr[j+1]){ + fr_etr[j]<-fr_etr[j]+1 > fr_etr [1] 1 1 2 5 9 15 14 14 4 4 1 > sum(fr_etr) [1] 70 > barplot(fr_etr,names.arg=sr_etr,space=c(0.0)) > # 4.Uz pretpostavku da uzorak dolazi iz normalne distribucije, procijenimo parametre µ i sigma: > mikapica_etr<-mean(etr) > sigmakapica_etr<-sd(etr) > mikapica_etr [1] 143.8429 > sigmakapica_etr [1] 5.879554 > # 5.Testirajmo Pearsonovim hi-kvadrat testom hipotezu o pripadnosti podataka normalnoj distribuciji. Izračunajmo prvo vjerojatnosti p_i, te ih popravimo tako da ukupna suma bude 1: > p_etr<-numeric(k) > for (i in 1:k){ + p_etr[i]<-pnorm(gr_etr[i+1],mikapica_etr,sigmakapica_etr)- pnorm(gr_etr[i],mikapica_etr,sigmakapica_etr) > p_etr [1] 0.003628407 0.013362537 0.038129561 0.084313184 0.144490002 0.191920820 [7] 0.197590589 0.157678375 0.097527139 0.046751592 0.017367618 > sum(p_etr) 3
[1] 0.9927598 > p_etr[1]<-pnorm(gr_etr[2],mikapica_etr,sigmakapica_etr) > p_etr[k]<-1-pnorm(gr_etr[k],mikapica_etr,sigmakapica_etr) > p_etr [1] 0.004533367 0.013362537 0.038129561 0.084313184 0.144490002 0.191920820 [7] 0.197590589 0.157678375 0.097527139 0.046751592 0.023702834 > sum(p_etr) [1] 1 > # 6.Izračunajmo očekivane frekvencije i grupirajmo razrede tako da sve očekivane frekvencije budu barem 5: > ofr_etr<-n_etr*p_etr > ofr_etr [1] 0.3173357 0.9353776 2.6690693 5.9019229 10.1143001 13.4344574 [7] 13.8313412 11.0374863 6.8268997 3.2726114 1.6591984 > ofrnove_etr<-c(sum(ofr_etr[1:4]),ofr_etr[5:8],sum(ofr_etr [9:11])) > ofrnove_etr [1] 9.823705 10.114300 13.434457 13.831341 11.037486 11.758710 > # 7.Izračunajmo nove opažene frekvencije uz istu grupaciju razreda i odredimo novi broj razreda: > frnove_etr<-c(sum(fr_etr[1:4]),fr_etr[5:8],sum(fr_etr [9:11])) > frnove_etr [1] 9 9 15 14 14 9 > knovi_etr<-length(ofrnove_etr) > knovi_etr [1] 6 > # 8.Izračunajmo realizaciju test statistike H, broj stupnjeva slobode i P-vrijednost testa: > h_etr<-crossprod((frnove_etr-ofrnove_etr)^2,ofrnove_etr^(- 1)) > h_etr [,1] [1,] 1.818696 > df_etr<-knovi_etr-2-1 > df_etr [1] 3 > pv_etr<-1-pchisq(h_etr,df_etr) > pv_etr [,1] [1,] 0.6108751 > # 9.Odredimo kritično podrucje za razinu znacajnosti 0.05: > alpha<-0.05 > cv_etr<-qchisq(1-alpha,df_etr) > cv_etr [1] 7.814728 > # Kritično područje je [7,814728,+inf>. Budući da je 1.818696<7.814728, zaključujemo da podaci ne podržavaju odbacivanje nul hipoteze na razini značajnosti od 0.05. > # 10.Na temelju uzorka, procijenimo 95% pouzdani interval za očekivanje: > t<-qt(1-alpha/2,n_etr-1) > t 4
[1] 1.994945 > mikapica_u<-mikapica_etr+(t*sigmakapica_etr)/sqrt(n_etr) > mikapica_l<-mikapica_etr-(t*sigmakapica_etr)/sqrt(n_etr) > mikapica_u [1] 145.2448 > mikapica_l [1] 142.4409 > # Dakle, procjena 95% pouzdanog intervala za očekivanje je [142.4409,145.2448] > # 11.Na temelju uzorka, procijenimo 95% pouzdani interval za varijancu: > c2<-qchisq(1-alpha/2,n_etr-1) > c1<-qchisq(alpha/2,n_etr-1) > varkapica_u<-((n_etr-1)/c1)*(sigmakapica_etr^2) > varkapica_l<-((n_etr-1)/c2)*(sigmakapica_etr^2) > varkapica_u [1] 49.77179 > varkapica_l [1] 25.41403 > # Dakle, procjena 95% pouzdanog intervala za varijancu je [25.41403,49.77179] > # 12.Na temelju uzorka, procijenimo 95% pouzdani interval za standardnu devijaciju: > sigmakapica_u<-sqrt(varkapica_u) > sigmakapica_<-sqrt(varkapica_l) > sigmakapica_l<-sqrt(varkapica_l) > sigmakapica_u [1] 7.054913 > sigmakapica_l [1] 5.041233 > # Dakle, procjena 95% pouzdanog intervala za standardnu devijaciju je [5.041233,7.054913] > # 13.Spremimo podatke koji se odnose na Talijane u vektor tal i ponovimo sve napravljeno na tim podacima: > # 14.U radnom direktoriju definirajmo funkcije f_p(p) i g_p (p) (za funkcije f_p i g_p uzmite da su n=11 i t=4, kako je u zadatku zadano): > bin<-function(n,k){ + if (k==0) + var<-1 + else + var<-((n-k+1)/k)*bin(n,k-1) > koef<-numeric(5) > for (i in 1:5) + { + koef[i]<-bin(11,i-1)} > koef [1] 1 11 55 165 330 > f_p<-function(p){ + suma<-(1-p)^11+11*p*(1-p)^10+55*p^2*(1-p)^9+165*p^3*(1-p)^8+ 330*p^4*(1-p)^7} > g_p<-function(p){ + suma<-1-((1-p)^11+11*p*(1-p)^10+55*p^2*(1-p)^9+165*p^3*(1-p) ^8)} > # 15.Provjerimo jesu li ovako definirane funkcije f_p i g_p injekcije: 5
> D(expression((1-p)^11+11*p*(1-p)^10+55*p^2*(1-p)^9+165*p^3* (1-p)^8+330*p^4*(1-p)^7),'p') 11 * (1 - p)^10-11 * p * (10 * (1 - p)^9) - 11 * (1 - p)^10 + (55 * (2 * p) * (1 - p)^9-55 * p^2 * (9 * (1 - p)^8)) + (165 * (3 * p^2) * (1 - p)^8-165 * p^3 * (8 * (1 - p)^ 7)) + (330 * (4 * p^3) * (1 - p)^7-330 * p^4 * (7 * (1 - p)^ 6)) > derf_p<-function(p){ + 11 * (1 - p)^10-11 * p * (10 * (1 - p)^9) - 11 * (1 - p)^ 10 + + (55 * (2 * p) * (1 - p)^9-55 * p^2 * (9 * (1 - p)^8)) + + (165 * (3 * p^2) * (1 - p)^8-165 * p^3 * (8 * (1 - p)^ 7)) + + (330 * (4 * p^3) * (1 - p)^7-330 * p^4 * (7 * (1 - p)^ 6)) > curve(derf_p,0,1) > D(expression(1-((1-p)^11+11*p*(1-p)^10+55*p^2*(1-p)^9+165*p^ 3*(1-p)^8)),'p') -(11 * (1 - p)^10-11 * p * (10 * (1 - p)^9) - 11 * (1 - p)^ 10 + (55 * (2 * p) * (1 - p)^9-55 * p^2 * (9 * (1 - p)^8)) + (165 * (3 * p^2) * (1 - p)^8-165 * p^3 * (8 * (1 - p)^ 7))) > derg_p<-function(p){ + -(11 * (1 - p)^10-11 * p * (10 * (1 - p)^9) - 11 * (1 - p) ^10 + + (55 * (2 * p) * (1 - p)^9-55 * p^2 * (9 * (1 - p)^8)) + + (165 * (3 * p^2) * (1 - p)^8-165 * p^3 * (8 * (1 - p)^ 7)))} > curve(derg_p,0,1) > # Za p iz (0,1) je derivacija od f_p strogo negativna, pa f_p strogo pada, a derivacija od g_p je strogo pozitivna, pa g_p strogo raste. Dakle, f_p i g_p su injekcije na (0,1). > # 16.Procijenimo 90% pouzdani interval za parametar p: > f_ppom<-function(p){ + suma<-(1-p)^11+11*p*(1-p)^10+55*p^2*(1-p)^9+165*p^3*(1-p)^8+ 330*p^4*(1-p)^7-0.1/2} > rj1<-uniroot(f_ppom,c(0.0,1.0))$root > rj1 [1] 0.6502184 > g_ppom<-function(p){ + suma<-1-((1-p)^11+11*p*(1-p)^10+55*p^2*(1-p)^9+165*p^3*(1-p) ^8)-0.1/2} > rj2<-uniroot(g_ppom,c(0.0,1.0))$root > rj2 [1] 0.1350744 > # Budući su f_p i g_p injekcije na (0,1), onda gornje jednadžbe imaju jedinstveno rješenje 0.6502184 i 0.1350744. Dakle procjena 90% pouzdanog intervala za p je [0.1350744, 0.6502184] > 6