### 21/05/2026 insulate<-read.table("Insulate.dat", col.names = c("when", "temp", "cons")) insulate$when<-as.factor(insulate$when) attach(insulate) # modello con interazione "temp*when" contrasts(when) # 1= when:prima # 0= when:dopo ## stima modello lineare con y="cons" e x="temp" ins.lm <- lm(cons ~ temp) # y=beta1+beta2*x ins.lm.w<-lm(cons ~ temp*when) summary(ins.lm.w) ## when=prima (z=1) y=(beta1+beta3)+(beta2+beta4)*x ## when=dopo (z=0) y=beta1+beta2*x # x=4 --> media(Y)|prima = 5.28, media(Y)|dopo = 3.61 plot(temp, cons, pch=19) # when="prima" abline(ins.lm.w$coefficients[1]+ins.lm.w$coefficients[3], ins.lm.w$coefficients[2]+ins.lm.w$coefficients[4], col=2, lwd=2) # when="dopo" abline(ins.lm.w$coefficients[1], ins.lm.w$coefficients[2], col=3, lwd=2) legend("topright", c("prima", "dopo"), lty=1, col=c(2,3), lwd=c(2,2)) anova(ins.lm, ins.lm.w) detach(insulate) ## Esempio dati "orange Juice" oj<-read.csv("oj.csv") View(oj) oj$brand<-as.factor(oj$brand) oj$feat<-as.factor(oj$feat) #str(oj) bcol<-c("green", "red", "cyan") plot(sales~price, data=oj, col=bcol[oj$brand]) #levels(oj$brand) plot(log(sales)~log(price), data=oj, col=bcol[oj$brand]) plot(log(price)~brand,data=oj, col=bcol) # Modello 1: Y=log(sales); x=log(price) ## log(sales)=beta1+beta2*log(price) + epsilon m1<-lm(log(sales)~log(price), data=oj) summary(m1) # Modello 2: Y=log(sales); x2=log(price); x3= brand ## log(sales)=beta1+beta2*log(price) + beta3*brand(MM)+beta4*brand(TR) m2<-lm(log(sales)~log(price)+brand, data=oj) summary(m2) ## DOM. log(sales)=beta1+beta2*log(price) ## MM. log(sales)=(beta1+beta3)+beta2*log(price)