###### 1) Sia $X_1, \ldots, X_n$ un campione i.i.d. da $N(\theta,2)$ di dimensione $n=10$. Considerare il $\textit{midrange campionario}$: # $$M(\textbf{X}_n)= \frac{X_{(n)}+X_{(1)}}{2}$$ # Supporre che $\theta=2$ e utilizzare un numero sufficiente di simulazioni della statistica campionaria per approssimare stat.camp <- function(x.oss, n){ M.x <- (max(x.oss)-min(x.oss))/2 return(M.x) } n.1=10 nrep=1000 matrice.norm <- matrix(rnorm(n*nrep, mean=2, sd=sqrt(2)), ncol=n.1) sim.stat <- apply(matrice, 1, stat.camp) View(sim.stat) # a) la distribuzione della statistica campionaria $M(\textbf{X}_n)$ per $\theta=2$ hist(sim.stat, freq=F) # b) il valore atteso di $M(\textbf{X}_n)$; val.atteso <- mean(sim.stat) # c) la varianza di $M(\textbf{X}_n)$; sd.stat <- sd(sim.stat) varianza <- (sd.stat)^2 # d) il quantile di livello 0.75 delle distribuzione campionaria di $M(\textbf{X}_n)$; quantile(sim.stat, probs=0.75) # e) la probabilità $\Pr(M(\textbf{X}_n)<1)$. p.stat.min.1 <- sum(sim.stat<1)/nrep # ###### 2) # Sia $X_1, \ldots, X_n$ un campione i.i.d. da $Cauchy(\mbox{posizione}=2,\mbox{scala}=\theta)$ di dimensione $n=15$. # Si consideri il sistema di ipotesi # $$H_0: \theta=1 \qquad H_1: \theta=2.$$ # Si consideri la regione di accettazione del test # $$A=\left\{ \textbf{x}_n \in \mathcal{X}^n: \frac 1n \sum_{i = 1}^nx_i^2 < 1.8 \right\} $$ n.2=15 theta.0 <- 1 theta.1 <- 2 matrice.cauchy.0 <- matrix(rcauchy(n.2*nrep, location=2, scale=1)) stat.test <- function(x.oss){ stat <- sum((x.oss)^2)/length(x.oss) return(stat) } # a) Rappresentare graficamente la funzione di densità di $X_i$ curve(dcauchy(x, location=2, scale=1), from=0, to=5, col="red") curve(dcauchy(x, location=2, scale=2), from=0, to=5, col="blue", main="distribuzione Cauchy con scale =1 col red /n distribuzione di Cauchy con scale=2 col blue", add=T) # b) Utilizzare un numero sufficiente di simulazioni della statistica campionaria # per approssimare la probabilità di errore di I tipo; sim.stat.test <-apply(matrice.cauchy.0, 1, stat.test) count=0 for(i in 1:nrep){ if(sim.stat.test[i] <= 1.8){ count=count+1 }else{ count=count } } prob.1.specie <- count/nrep # c) Utilizzare un numero sufficiente di simulazioni della statistica campionaria # per approssimare la probabilità di errore di II tipo; matrice.cauchy.1 <- matrix(rcauchy(n.2*nrep, location=2, scale=2)) sim.stat.test <-apply(matrice.cauchy.1, 1, stat.test) count=1 for(i in 1:nrep){ if(sim.stat.test[i] <= 1.8){ count=count+1 }else{ count=count } } pot.test <- count/nrep prob.2.specie <- 1-pot.test # d) Utilizzare un numero sufficiente di simulazioni della statistica campionaria per approssimare la potenza del test. pot.test # ###### 3) Sia $X_1, \ldots, X_n$ un campione i.i.d. da $Exp(\theta)$ di dimensione $n=20$. # Si consideri l'intervallo aleatorio basato sulla mediana campionaria: # $$ C(\textbf{X}_n)=\left[\frac{1}{2}Med(\textbf{X}_n), 2 Med(\textbf{X}_n)\right].$$ # Valutare approssimativamente attraverso simulazioni la probabilità di copertura dell'intervallo assumendo $\theta=1$. n=20 nrep=1000 matrice.exp <- matrix(rexp(n*nrep, rate=1), ncol=n) sim.med <- apply(matrice.exp, 1, median) IC <- matrix(NA, nrow=nrep, ncol=2) copre.si.no <- rep(NA, nrep) for(i in 1:nrep){ IC[i,1] <- sim.med[i]*0.5 IC[i,2] <- sim.med[i]*2 ifelse(1>=IC[i,1] & 1<=IC[i,2], copre.si.no[i]<-1, copre.si.no[i]<-0) } mean(copre.si.no) # Seconda Parte # Modello Normale vincolato # I seguenti dati indicano il numero di azioni vendute in un giorno per alcune aziende sul mercato di Londra: # xoss = c(140, 210, 200, 315, 350, 500, 156, 240, 120, 123, 280, 120, 135, 187, 155) # Assumendo che si tratti di un campione casuale da $N(\theta, \sigma^2)$, risolvere i seguenti quesiti: # # a) Calcolare l'intervallo di confidenza all' 90$\%$ per $\theta$. x.oss = c(140, 210, 200, 315, 350, 500, 156, 240, 120, 123, 280, 120, 135, 187, 155) oo <- t.test(x.oss, alternative="two.sided", conf.level=0.90) str(oo) int.conf <- oo$conf.int # b) Stabilire se si può accettare l'ipotesi nulla che $\theta=150$ contro ipotesi alternativa bilaterale per un test di ampiezza 0.1. ifelse(0.10 > oo$p.value, "rifiuto H0", "accetto H0") #rifiuto H0 # c) Calcolare il p-value per il suddetto test. oo$p.value # d) Calcolare il valore della statistica test. oo$statistic # e) Condurre un test con ipotesi alternativa $\theta<150$ e stabilire se si può accettare l'ipotesi nulla assumendo $\alpha=0.1$. bb <- t.test(x.oss, alternative="less", conf.level=0.99)