# R Programming/Estimation utilities

This page deals with methods which are available for most estimation commands. This can be useful for all kind of regression models.

## Contents

## Formulas[edit]

Most estimation commands use a formula interface. The outcome is left of the `~`

and the covariates are on the right.

```
y ~ x1 + x2
```

It is easy to include multinomial variable as predictive variables in a model. If the variable is not already a factor, one just need to use the `as.factor()`

function. This will create a set of dummy variables.

y ~ as.factor(x)

For instance, we can use the Star data in the **Ecdat** package :

library("Ecdat") data(Star) summary(lm(tmathssk ~ as.factor(classk), data = Star))

`I()`

takes arguments "as is". For instance, if you want to include in your equation a modified variable such as a squarred term or the addition of two variables, you may use `I()`

.

lm(y ~ x1 + I(x1^2) + x2) lm(y ~ I(x1 + x2)) lm(I(y-100) ~ I(x1-100) + I(x2 - 100))

It is easy to include interaction between variables by using `:`

or `*`

. `:`

adds all interaction terms whereas `*`

adds interaction terms and individual terms.

lm(y~x1:x2) # interaction term only lm(y~x1*x2) # interaction and individual terms

It is also possible to generate polynomials using the `poly()`

function with option `raw = TRUE`

.

lm(y ~ poly(x, degree = 3, raw = TRUE))

There is also an advanced formula interface which is useful for instrumental variables models and mixed models. For instance `ivreg()`

(**AER**) uses this advanced formulas interface. The instrumental variables are entered after the `|`

. See the Instrumental Variables section if you want to learn more.

library("AER") ivreg(y ~ x | z)

## Output[edit]

In addition to the `summary()`

and `print()`

functions which display the output for most estimation commands, some authors have developed simplified output functions. One of them is the `display()`

function in the **arm** package. Another one is the `coefplot()`

in the **arm** package which displays the coefficients with confidence intervals in a plot. According to the standards defined by Nathaniel Beck^{[1]}, Jeff Gill developped `graph.summary()`

^{[2]}. This command does not show useless auxiliary statistics.

R code | Output |
---|---|

source("http://artsci.wustl.edu/~jgill/Models/graph.summary.R") N <- 1000 u <- rnorm(N) x1 <- 1 + rnorm(N) x2 <- 1 + rnorm(N) + x1 y <- 1 + x1 + x2 + u graph.summary(lm(y ~ x1 + x2)) |
Family: gaussian Link function: identity Coef Std.Err. 0.95 Lower 0.95 Upper CIs:ZE+RO (Intercept) 0.980 0.056 0.871 1.089 |o| x1 1.040 0.043 0.955 1.125 |o| x2 0.984 0.031 0.923 1.045 |o| N: 1000 Estimate of Sigma: 0.998 |

library("arm") display(lm(y ~ x1 + x2)) |
lm(formula = y ~ x1 + x2) coef.est coef.se (Intercept) 0.89 0.05 x1 1.05 0.04 x2 1.02 0.03 --- n = 1000, k = 3 residual sd = 0.96, R-Squared = 0.86 |

## Weights[edit]

This section is a stub.You can help Wikibooks by expanding it. |

## Tests[edit]

This section is a stub.You can help Wikibooks by expanding it. |

## Confidence intervals[edit]

This section is a stub.You can help Wikibooks by expanding it. |

## Delta Method[edit]

- If you want to know the standard error of a transformation of one of your parameter, you need to use the
**delta method** `deltamethod()`

in the**msm**package^{[3]}.`delta.method()`

in the**alr3**package.`deltaMethod`

in the**car**package.

## Zelig : the pseudo-bootstrap method[edit]

**Zelig**^{[4]} is a postestimation package which simulates in the distribution of the estimated parameters and computes the quantities of interest such as marginal effects or predicted probabilities. This is especially useful for non-linear models. **Zelig** comes with a set of *vignettes* which explain how to deal with each kind of model. There are three commands.

`zelig()`

estimates the model and draws from the distribution of estimated parameters.`setx()`

fixes the values of explanatory variables.`sim()`

computes the quantities of interest.

## References[edit]

- ↑ Nathaniel Beck "Making regression and related output more helpful to users" The Political Methodologist 2010 http://politics.as.nyu.edu/docs/IO/2576/beck_tpm_edited.pdf
- ↑ Jeff Gill
`graph.summary()`

http://artsci.wustl.edu/~jgill/Models/graph.summary.s - ↑ See the example on the UCLA Statistics webpage : http://www.ats.ucla.edu/stat/r/faq/deltamethod.htm
- ↑ Kosuke Imai, Gary King and Olivia Lau (2009). Zelig: Everyone's Statistical Software. R package version 3.4-5. http://CRAN.R-project.org/package=Zelig