fFtest | R Documentation |

`fFtest`

computes an R-squared based F-test for the exclusion of the variables in `exc`

, where the full (unrestricted) model is defined by variables supplied to both `exc`

and `X`

. The test is efficient and designed for cases where both `exc`

and `X`

may contain multiple factors and continuous variables. There is also an efficient 2-part formula method.

```
fFtest(...) # Internal method dispatch: formula if is.call(..1) || is.call(..2)
## Default S3 method:
fFtest(y, exc, X = NULL, w = NULL, full.df = TRUE, ...)
## S3 method for class 'formula'
fFtest(formula, data = NULL, weights = NULL, ...)
```

`y` |
a numeric vector: the dependent variable. |

`exc` |
a numeric vector, factor, numeric matrix or list / data frame of numeric vectors and/or factors: variables to test / exclude. |

`X` |
a numeric vector, factor, numeric matrix or list / data frame of numeric vectors and/or factors: covariates to include in both the restricted (without |

`w` |
numeric. A vector of (frequency) weights. |

`formula` |
a 2-part formula: |

`data` |
a named list or data frame. |

`weights` |
a weights vector or expression that results in a vector when evaluated in the |

`full.df` |
logical. If |

`...` |
other arguments passed to |

Factors and continuous regressors are efficiently projected out using `fhdwithin`

, and the option `full.df`

regulates whether a degree of freedom is subtracted for each used factor level (equivalent to dummy-variable estimator / expanding factors), or only one degree of freedom per factor (treating factors as variables). The test automatically removes missing values and considers only the complete cases of `y, exc`

and `X`

. Unused factor levels in `exc`

and `X`

are dropped.

*Note* that an intercept is always added by `fhdwithin`

, so it is not necessary to include an intercept in data supplied to `exc`

/ `X`

.

A 5 x 3 numeric matrix of statistics. The columns contain statistics:

the R-squared of the model

the numerator degrees of freedom i.e. the number of variables (k) and used factor levels if

`full.df = TRUE`

the denominator degrees of freedom: N - k - 1.

the F-statistic

the corresponding P-value

The rows show these statistics for:

the Full (unrestricted) Model (

`y ~ exc + X`

)the Restricted Model (

`y ~ X`

)the Exclusion Restriction of

`exc`

. The R-squared shown is simply the difference of the full and restricted R-Squared's, not the R-Squared of the model`y ~ exc`

.

If `X = NULL`

, only a vector of the same 5 statistics testing the model (`y ~ exc`

) is shown.

`flm`

, `fhdwithin`

, Data Transformations, Collapse Overview

```
## We could use fFtest as a simple seasonality test:
fFtest(AirPassengers, qF(cycle(AirPassengers))) # Testing for level-seasonality
fFtest(AirPassengers, qF(cycle(AirPassengers)), # Seasonality test around a cubic trend
poly(seq_along(AirPassengers), 3))
fFtest(fdiff(AirPassengers), qF(cycle(AirPassengers))) # Seasonality in first-difference
## A more classical example with only continuous variables
fFtest(mpg ~ cyl + vs | hp + carb, mtcars)
fFtest(mtcars$mpg, mtcars[c("cyl","vs")], mtcars[c("hp","carb")])
## Now encoding cyl and vs as factors
fFtest(mpg ~ qF(cyl) + qF(vs) | hp + carb, mtcars)
fFtest(mtcars$mpg, lapply(mtcars[c("cyl","vs")], qF), mtcars[c("hp","carb")])
## Using iris data: A factor and a continuous variable excluded
fFtest(Sepal.Length ~ Petal.Width + Species | Sepal.Width + Petal.Length, iris)
fFtest(iris$Sepal.Length, iris[4:5], iris[2:3])
## Testing the significance of country-FE in regression of GDP on life expectancy
fFtest(log(PCGDP) ~ iso3c | LIFEEX, wlddev)
fFtest(log(wlddev$PCGDP), wlddev$iso3c, wlddev$LIFEEX)
## Ok, country-FE are significant, what about adding time-FE
fFtest(log(PCGDP) ~ qF(year) | iso3c + LIFEEX, wlddev)
fFtest(log(wlddev$PCGDP), qF(wlddev$year), wlddev[c("iso3c","LIFEEX")])
# Same test done using lm:
data <- na_omit(get_vars(wlddev, c("iso3c","year","PCGDP","LIFEEX")))
full <- lm(PCGDP ~ LIFEEX + iso3c + qF(year), data)
rest <- lm(PCGDP ~ LIFEEX + iso3c, data)
anova(rest, full)
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.