#### REGRESSIONE LINERARE E STIMATORE DI CALIBRAZIONE ## ### REGRESSIONE LINEARE # library(spdep) data(baltimore) str(baltimore) #struttura del data set attach(baltimore) plot(X,Y) #disposizione delle case nello spazio #OLS: primo modello #è valida anche senza funzione "attach" OLS<-lm(PRICE~NROOM+DWELL+NBATH+PATIO+FIREPL+AC+BMENT+NSTOR+GAR+AGE+CITCOU+LOTSZ+SQFT,data=baltimore) summary.lm(OLS) #oppure la funzione più generica summary(OLS) OLS<-lm(PRICE~NROOM+DWELL+NBATH+PATIO+FIREPL+AC+as.factor(BMENT)+NSTOR+GAR+AGE+CITCOU+LOTSZ+SQFT,data=baltimore) #as.factor() per variabili qualitative summary.lm(OLS) #OLS: secondo modello OLS2<-lm(PRICE~DWELL+NBATH+PATIO+FIREPL+AC+BMENT+GAR+CITCOU+LOTSZ+SQFT,data=baltimore) summary.lm(OLS2) #OLS: terzo modello OLS3<-lm(PRICE~DWELL+NBATH+PATIO+FIREPL+AC+BMENT+GAR+CITCOU+LOTSZ,data=baltimore) summary.lm(OLS3) #WLS: sulla base del terzo modello w<-runif(nrow(baltimore)) WLS<-lm(PRICE~DWELL+NBATH+PATIO+FIREPL+AC+BMENT+GAR+CITCOU+LOTSZ,data=baltimore,weights=w) summary.lm(WLS) ### STIMATORE DI CALIBRAZIONE # load("disegni.rdata") library(sampling) library(survey) data(swissmunicipalities) totpop<-c("intercept"=nrow(swissmunicipalities),colSums(swissmunicipalities[,13:15])) #totale variabili: intercetta, Pop020, Pop2040, Pop4065 #intercetta serve per costringere i pesi a rispettare il totale di popolazione #per la rappresentatività delle unità campionarie alla popolazione. #calibrate aggiusta i pesi a partire da un qualsiasi disegno campionario d_CAL<-calibrate(d_STRAT,~Pop020+Pop2040+Pop4065,totpop) #variabili ausiliarie Pop020, Pop2040, Pop4065 totest_CAL<-svytotal(~H00P01+H00P02+H00P03+H00P04,d_CAL,deff=TRUE) totest_CAL cv(totest_CAL) d_CAL2<-calibrate(d_STRAT,~Pop020+Pop2040+Pop4065,bounds=c(0.9,1.1),calfun="logit",epsilon=1e-10,totpop) d_CAL3<-calibrate(d_STRAT,~Pop020+Pop2040+Pop4065,bounds=c(0.5,2),calfun="logit",epsilon=1e-10,totpop) totest_CAL3<-svytotal(~H00P01+H00P02+H00P03+H00P04,d_CAL3,deff=TRUE) totest_CAL3 cv(totest_CAL3)