# READ A STRUCTURED DATA TABLE
K=read.table("c:/2008LinearModelsData/bankR.txt")
K

# ASSIGNING VARIABLES
X=K$deposit
Y=K$newacc
B=factor(K$bin)

# FINDING N & C
n=length(X)
n
c=nlevels(B)
c

# ANOVA OF FITTED MODELS
anova(lm(Y~B)) #FULL MODEL
anova(lm(Y~X)) #REDUCED MODEL

# CALCULATING SUM OF SQUARES ERROR 
# FOR FULL MODEL
MF=summary(lm(Y~B),digits=10)
MSEF=MF$sigma^2
dfF=MF$df[2]
SSEF=dfF*MSEF
SSEF

# CALCULATING SUM OF SQUARES ERROR 
# FOR REDUCED MODEL
MR=summary(lm(Y~X),digits=10)
MSER=MR$sigma^2
dfR=MR$df[2]
SSER=dfR*MSER
SSER

# CALCULATING GLM F STATISTIC
F=((SSER-SSEF)/(dfR-dfF))/(SSEF/dfF)
F

# FINDING CRITICAL VALUE
alpha=0.01
CV=qf(1-alpha,c-2,n-c)
CV

# PROBABILITY VALUE
P=1-pf(F,c-2,n-c)
P

# THE EFFICIENT WAY TO DO THIS
# SPECIFY FULL VS REDUCED MODELS:
FM=lm(Y~B)
RM=lm(Y~X)
# CALCULATE ANOVA TABLE OF COMPARISON
anova(RM,FM)