#---------------------------------------------------------
#  inferenza di mu della normale con successiva previsione
#  (con sigma nota!)
#
# GdA, maggio 2025 
#---------------------------------------------------------

sigma  = 1  
xp     = 5  

E.mu  <- xp
sd.mu <-  sigma
cat(sprintf("\n E(mu) = %0.2f,   std(mu) = %.2f\n", E.mu, sd.mu))


N = 1000000
# valori di mu estratti secondo f(mu|E.mu,sd.mu) 
mur <- rnorm(N, E.mu, sd.mu)

# valori di xf che tengono conto di 'tutti i possibili 'mu'
xf    <- rnorm(N, mur, sd.mu)
E.xf  <- mean(xf)
sd.xf <- sd(xf)
cat(sprintf("\n E(x.f) = %0.2f,   std(x.f) = %.2f\n", E.xf, sd.xf))

par(mfrow= c(2,1) )
hist(mur, nc=100, col='cyan',  prob=TRUE,
     xlab='mu', ylab='f ( mu )', xlim=c(E.mu-4*sd.mu, E.mu+4*sd.mu))
m <- seq(E.mu-4*sd.mu, E.mu+4*sd.mu, len=101)
points(m, dnorm(m, E.mu, sd.mu), ty='l',  col='blue')

hist(xf, nc=100, col='cyan',  prob=TRUE,
     xlab='x.f', ylab='f ( x.f )',  xlim=c(xp-4*sigma, xp+4*sigma))
points(m, dnorm(m, E.mu, sd.mu*sqrt(2)), ty='l',  col='blue')
     
par(mfrow= c(1,1) )

