#CHOCOLATES: ENERGY V. SIZE, PRICE, UNIT.PRICE, PROTEIN, FAT, CARBOHYDRATES, SODIUM #USING THE CHOCOLATES DATA SET #Upload and save data set into your working directory CHOC=read.table("chocolates.txt",header=TRUE) #attach the data set into R interpreter attach(CHOC) CHOC #Assign the dependent variable Y to “Energy" and the independent variables Xi to the rest Y=Energy X1=Size X2=Price X3=Unit.Price X4=Protein X5=Fat X6=Carbo X7=Sodium #Test Normality of the data set par(mfcol=c(2,4)) qqnorm(Y,main="Y Normal Q-Q Plot") qqline(Y,lty=2) qqnorm(X1,main="X1 Normal Q-Q Plot") qqline(X1,lty=2) qqnorm(X2,main="X2 Normal Q-Q Plot") qqline(X2,lty=2) qqnorm(X3,main="X3 Normal Q-Q Plot") qqline(X3,lty=2) qqnorm(X4,main="X4 Normal Q-Q Plot") qqline(X4,lty=2) qqnorm(X5,main="X5 Normal Q-Q Plot") qqline(X5,lty=2) qqnorm(X6,main="X6 Normal Q-Q Plot") qqline(X6,lty=2) qqnorm(X7,main="X7 Normal Q-Q Plot") qqline(X7,lty=2) par(mfcol=c(1,1)) #Test the correlations between each Xi to eliminate variables that correlate with each other par(mfcol=c(3,7)) plot(X1,X2) plot(X1,X3) plot(X1,X4) plot(X1,X5) plot(X1,X6) plot(X1,X7) plot(X2,X3) plot(X2,X4) plot(X2,X5) plot(X2,X6) plot(X2,X7) plot(X3,X4) plot(X3,X5) plot(X3,X6) plot(X3,X7) plot(X4,X5) plot(X4,X6) plot(X4,X7) plot(X5,X6) plot(X5,X7) plot(X6,X7) par(mfcol=(1,1)) #Plot X versus Y for correlation par(mfcol=c(2,4)) plot(X1,Y,xlab="Size",ylab="Energy") plot(X2,Y,xlab="Price",ylab="Energy") plot(X3,Y,xlab="Unit.Price",ylab="Energy") plot(X4,Y,xlab="Protein",ylab="Energy") plot(X5,Y,xlab="Fat",ylab="Energy") plot(X6,Y,xlab="Carbo",ylab="Energy") plot(X7,Y,xlab="Sodium",ylab="Energy") par(mfcol=(1,1))) #Simple Linear Regression #Run ANOVA for each X of the simplified model and compare probability values LM=lm(Y~X4) LM Yhat=fitted(LM) e=residuals(LM) RESULTS=data.frame(X4,Y,Yhat,e) anova(LM) #Plot the regression line and points of the correlated variables par(mfcol=c(1,3)) plot(X4,Y) abline(LM4,col="blue") segments(X4,Yhat,X4,Y,col="red") plot(X5,Y) abline(LM5,col="blue") segments(X5,Yhat,X5,Y,col="red") plot(X6,Y) abline(LM6,col="blue") segments(X6,Yhat,X6,Y,col="red") par(mfcol=c(1,1))) #assign X and Y for variables after eliminations Y=Energy X4=Protein X5=Fat X6=Carbo X7=Sodium #full linear model LM=lm(Y~X4+X5+X6+X7) LM #summary to give overall F test p-value and partial t-tests summary(LM) anova(LM) #generate marginal reduced model by removing one variable at a time RM1=lm(Y~X5+X6+X7) RM2=lm(Y~X4+X6+X7) RM3=lm(Y~X4+X5+X7) RM4=lm(Y~X4+X5+X6) #run an Anova on each reduced model Anova(RM1) Anova(RM2) Anova(RM3) Anova(RM4) #restate full linear model, complete with all variables, and command R to perform the automated backwards stepwise regression FM=lm(Y~X4+X5+X6+X7) step(FM,direction="backward") #restate full model as well as reduced model generated in previous step; run anova on the two to determine appropriateness of full or reduced model FM=lm(Y~X4+X5+X6+X7) RM=lm(Y~X4+X5+X6) anova(RM,FM)