install.packages("foreign") library(foreign) dati_slides <- data.frame(eta=c(30,30,30,40,40,40,50,50,50), reddito=c(2000,2100,2200,3000,3100,3200,4000,4100,4200)) mean(dati_slides$reddito) campioneCS <- dati_slides[sample(9,3),] mean(campioneCS$reddito) trentenni <- subset(dati_slides,eta==30) quarantenni <- subset(dati_slides,eta==40) cinquantenni <- subset(dati_slides,eta==50) campioneStrat <- c(trentenni[sample(3,1),]$reddito,quarantenni[sample(3,1),]$reddito, cinquantenni[sample(3,1),]$reddito) mean(campioneStrat) mediaCS <- 0 mediaSTR <- 0 for(i in 1:1000){ campioneCS <- dati_slides[sample(9,3),] mediaCS[i] <- mean(campioneCS$reddito) campioneStrat <- c(trentenni[sample(3,1),]$reddito,quarantenni[sample(3,1),]$reddito, cinquantenni[sample(3,1),]$reddito) mediaSTR[i] <- mean(campioneStrat) } mean(mediaCS) mean(mediaSTR) sd(mediaCS) sd(mediaSTR) par(mfrow=c(1,2)) hist(mediaCS) hist(mediaSTR) ### DATI GENERAL SOCIAL SURVEY ?read.spss POP <- read.spss("gss.sav", to.data.frame=TRUE) # data frame View(POP) dim(POP) n=100 N=nrow(POP) POP$HHSIZE_numeric <- as.numeric(POP$HHSIZE) #trasformo in vettore numerico la dimensione familiare mean(POP$HHSIZE_numeric) #media vera nella popolazione ?sample index <- sample(1:32019, size=100, replace = TRUE, prob = NULL) campione<- POP[index, ] View(campione) dim(campione) table(campione$GENDER)/length(campione$GENDER)*100 table(POP$GENDER)/length(POP$GENDER)*100 # Stima di una % (ad esempio Female) # Parametro pi = 50,84 # piHat = 55 # pihat - 1.96*erroreStdrd # piHat - 1.96*sqrt((pi*(1-pi))/n) 0.55 - 1.96*sqrt((0.55*(1-0.55))/100) 0.55 + 1.96*sqrt((0.55*(1-0.55))/100) table(POP$GENDER)/length(POP$GENDER) # Camp Stratificato # married # No Yes # 12833 19186 # create le sottourne con subset ?subset Sposati <- subset(POP, subset=POP$MARRIED=="Yes") dim(Sposati) nrow(Sposati) # quanti sono gli sposati nella popolazione NonSposati <- subset(POP, subset=POP$MARRIED=="No") dim(NonSposati) nrow(NonSposati) # quanti sono gli sposati nella popolazione # STRA con Allocazione proporzionale (strato degli sposati) nYes=(19186/(12833+19186))*n nYes = round(n/N * 19186) # con round arrotondiamo la numersoit? nello strato campionatiDaYes <- sample(1:19186, size=nYes, replace = TRUE, prob = NULL) # campionatiDaYes devono essere estratti dall'urna dei soli sposati campioneSposati <- Sposati[campionatiDaYes, ] # STRA con Allocazione proporzionale (strato dei non sposati) nNo=(12833/(12833+19186))*n nNo = round(n/N * 12833) # con round arrotondiamo campionatiDaNo <- sample(1:12833, size=nNo, replace = TRUE, prob = NULL) # campionatiDaNo devono essere estratti dall'urna dei non sposati campioneNonSposati <- NonSposati[campionatiDaNo, ] # Campione Stratificato complessivo campioneSTRA <- rbind(campioneSposati, campioneNonSposati) # rbind mette insieme dataframe per riga (uno sotto l'altro) nrow(campioneSTRA) mean(campioneSTRA$HHSIZE_numeric, na.rm=T) # valore medio stimato con campione stra mean(campione$HHSIZE_numeric, na.rm=T) # valore medio stimato con campione ccs mean(POP$HHSIZE_numeric) #media vera nella pop