# Test - Variance - F-Test to Compare Two Variances

Perform an F test to compare the variances of two samples, which are assumed to be normally distributed

Performs an F test to compare the variances of two samples, which are assumed to be normally distributed.

## How to run this test

1. In Displayr, go to Insert > More > Test > Variance > F-Test to Compare Two Variances. In Q, go to Create > Test > Variance > F-Test to Compare Two Variances
2. Specify the two input variables under Inputs > F-Test to Compare Two Variances > Outcome and Inputs > F-Test to Compare Two Variances > Group. The Group variable should be categorical, but if it's numeric it will be converted.

## Example

An example output is shown below:

## Options

Outcome The variable to analyse.
Group Variable specifying the group that each observation comes from. Where this variable is numeric, it is automatically grouped into two approximately-equally-sized groups, using the median.

## Acknowledgements

Uses the var.test function from the stats R package.

## Code

var heading_text = "F-Test to Compare Two Variances";
if (!!form.setObjectInspectorTitle)
else

form.dropBox({label: "Outcome", types:["Variable: Numeric, Date, Money, Categorical, OrderedCategorical"],
name: "formOutcomeVariable", prompt: "Select the Variable to analyse"});
form.dropBox({label: "Group", types:["Variable: Numeric, Date, Money, Categorical, OrderedCategorical"],
name: "formGroupVariable", prompt: "Select the Variable specifying the group that each observation comes from"});
var formOutput = form.comboBox({label: "Output", alternatives: ["Summary", "R"],
name: "formOutput", default_value: "Summary", prompt: "Select the output type"});
if (formOutput.getValue() == "Summary")
{
form.checkBox({label: "Variable names", name: "formNames", default_value: false,
prompt: "Display names instead of labels"});
form.checkBox({label: "More decimal places", name: "formDecimals", default_value: false,
prompt: "Display numeric values with eight decimal places"});
}

library(flipTransformations)
library(flipFormat)

if (length(formOutcomeVariable) != length(formGroupVariable))
stop("The outcome and group variables have different lengths. Please ensure that the variables are from the same data set or have the same length.")

data <- ProcessQVariables(QDataFrame(formOutcomeVariable, formGroupVariable))
if (is.factor(formOutcomeVariable))
data[,1] <- AsNumeric(data[,1], binary=FALSE)
data[,2] <- CreatingBinaryVariableIfNecessary(data, names(data)[2])
data$subset <- QFilter if (!is.null(QCalibratedWeight)) data <- AdjustDataToReflectWeights(data, QCalibratedWeight) formula <- QFormula(formOutcomeVariable ~ formGroupVariable) test.output <- var.test(formula, alternative='two.sided', conf.level=.95, data=data, subset = subset) variance.f.test <- if (formOutput == "Summary") { test.output$estimate <- NULL
decimal.places <- if (formDecimals) 8 else NULL
SignificanceTest(test.output, "F-Test to Compare Two Variances",
list(formOutcomeVariable, formGroupVariable),
filter = QFilter, weight = QCalibratedWeight,
show.labels = !formNames, decimal.places = decimal.places,
resample = TRUE)
} else
test.output