Hierarchical method of regression in R We are looking to use a "hierarchical" method of regression in order to input predictor variables in three steps. From what we can tell, the default method of regression is "stepwise," but we can't seem to find out how to fit a model hierarchically or with forced entry. Note that we are not trying to fit a Hierarchical Linear Model (HLM) / Multi-level Model (MLM), but are trying to change the method of regression to specify the order variables are entered into the model.
Specifically, we are trying to fit the following three models, with the two-way interactions in m2ai, and the three-way interaction in m3ai, being input as 2nd and 3rd steps, respectively:
m1ai <- lm(PostValUVAve ~ cPreValUVAve + Int + Gender + SciTeacher + cPreEff + cPreInt)
m2ai <- lm(PostValUVAve ~ cPreValUVAve + Int + Gender + SciTeacher + cPreEff + cPreInt +
                          cPreEff*Int + cPreInt*Int)
m3ai <- lm(PostValUVAve ~ cPreValUVAve + Int + Gender + SciTeacher + cPreEff + cPreInt +
                          cPreEff*Int + cPreInt*Int + cPreEff*Int*cPreInt)

 A: No, the default method is Forced Entry. Hierarchical Regression can be done manually as follows (I'm not sure if you are using "*" when you mean to use ":" for the interaction and I'm going to mention "I" as a modeling tool in R, so here's a review:
m1 <- lm(formula = outcome ~ predictor1, data = data) # copy and paste for the next line
m2 <- lm(formula = outcome ~ predictor1 + predictor2, data = data) # edited version of above line
m3 <- lm(formula = outcome ~ predictor1 + predictor2 + predictor1:predictor2, data = data) # added an interaction to the equation
anova(m1, m2, m3) # this compares the output of your model fit

You can also use the update() function as follows:
m1 <- lm(formula = outcome ~ predictor1, data = data) # same as above
m2 <- update(m1, . ~ . + predictor2)
m3 <- update(m2, . ~ . + predictor1:predictor2)
anova(m1, m2, m3)

Now, try this code and see if it gives you the output you're looking for.
m1ai <- lm(PostValUVAve ~ cPreValUVAve + Int + Gender + SciTeacher + cPreEff + cPreInt)
m2ai <- update(m1ai, . ~ . + cPreEff:Int + cPreInt:Int)
m3ai <- update(m2ai, . ~ . + + IcPreEff:Int:cPreInt)
anova(m1ai, m2ai, m3ai)

