# How to find critical value in Python

In this article, we will learn how to calculate the critical values for different tests like T-test, Z-test, and Chi-squared test in Python. Finding the critical value can be useful in statistical hypothesis testing to determine whether the observed test statistic is statically significant or not.

## Understanding Critical Values in Hypothesis Testing

“In statistical hypothesis testing, the critical values of a statistical test are the boundaries of the acceptance region of the test.The acceptance region is the set of values of the test statistic for which the null hypothesis is not rejected. Depending on the shape of the acceptance region, there can be one or more than one critical value.”

– Source Wikipedia.

Critical values are the cutoff points used in hypothesis testing to determine whether a sample result is statistically significant. They help researchers make decisions based on data and reduce the risk of Type 1 errors. Understanding critical values is essential for anyone conducting hypothesis testing.

Before diving into the T-test, Z-test, and Chi-squared test, let’s first understand the concepts of left-tailed, right-tailed, and two-tailed tests, which are essential for hypothesis testing.

### Understanding the Left-tailed Test

In the left-tailed test , we reject the null hypothesis if the test statistic is small. Thus we consider one side of the region i.e. the left corner.

### Understanding the Right-tailed Test

In the right-tailed test, we reject the null hypothesis if the test statistic is too large. For this, we consider one part of the region which would be the right corner.

### Understanding the Two-tailed Test

In this test the null hypothesis is rejected when the test statistic is too small or too large therefore both the corners are considered.

### An Overview of the T-test

The t-test is a statistical method used to determine if the mean of a sample is significantly different from a known value or the mean of another sample. It is widely used in hypothesis testing, especially in situations where the sample size is small or the population variance is unknown. By comparing the means of two samples, researchers can draw conclusions about the differences between them and make informed decisions about the population from which they were drawn.

### An Overview of the Z-test

This test is used when the sample size is large enough for the sample standard deviation given the population standard deviation is known.

### An Overview of the Chi-Squared Test

Used to test whether there is a significant association between two categorical variables, based on the difference between the observed frequencies and the expected frequencies under null hypothesis.

Now that we have a basic understanding of T-test, Z-test, and Chi-squared test, let’s see how we can calculate their critical values using Python

## Implementation

In the following sections, we will go through examples to demonstrate calculating critical values for T-test, Z-test, and Chi-squared Test using Python.

To calculate critical values for T-test, Z-test, and Chi-squared test in Python, you can use the scipy.stats library functions t.ppf(), norm.ppf(), and chi2.ppf(), respectively. These functions help you determine the critical values for different hypothesis testing scenarios, such as left-tailed, right-tailed, and two-tailed tests.

### Example 1: Calculating Critical Values For T-test

• degree of freedom: the number of independent values that can differ in an analysis without breaking any constraints. Read more here.
• level of significance: Parameter which measures the strength of the proof that must be available in the input sample before rejecting the null hypothesis. Read more here.
```from scipy.stats import t

alpha = 0.05  # significance level
df = 20   # degrees of freedom

t_critical_left = t.ppf(alpha, df)

t_critical_right = t.ppf(1-alpha, df)

t_critical_two = t.ppf(1-alpha/2, df)

print(f"Left-tailed critical t-value: {t_critical_left}")
print(f"Right-tailed critical t-value: {t_critical_right}")
print(f"Two-tailed critical t-value: {t_critical_two}")

```

From `scipy.stats` we import `t` , significance level and degrees of freedom are stored in variables alpha and df. In this code, we calculate the left, right, and two-tailed t critical values and later print the output.

Output:

### Example 2: Calculating Critical Values For z-test

```from scipy.stats import norm

alpha = 0.05  # significance level

z_critical_left = norm.ppf(alpha)
z_critical_right = norm.ppf(1 - alpha)

print(f"Left-tailed critical t-value: {z_critical_left}")
print(f"Right-tailed critical t-value: {z_critical_right}")
```

In the above code, we calculate the left and right-tailed critical values of the z-test by importing `norm` from `scipy.stats` and using the `norm.ppf()` function.

Output:

```from scipy.stats import norm

alpha = 0.05  # significance level

# calculate the critical values for a two-tailed test
crit_val_left = norm.ppf(alpha/2)
crit_val_right = norm.ppf(1 - alpha/2)

print(f"Critical values for a two-tailed z-test with {alpha:.0%} significance level: {crit_val_left:.4f}, {crit_val_right:.4f}")

```

Output:

To calculate two-tailed test critical value we consider the z-scores that have cumulative probabilities of `alpha/2` in left tail and `1 - alpha/2` in the right tail of distribution.

### Example 3: Calculating Critical Values For Chi-squared test

```from scipy.stats import chi2

df = 3
alpha = 0.05

# calculate the critical value for a chi-squared test
crit_val = chi2.ppf(1 - alpha, df)

print(f"Critical value : {crit_val:.4f}")
```

After importing `chi2` from `scipy.stats` we define the significance level and degree of freedom in `alpha` and `df` and `chi2.ppf()` assist in calculating the critical value.

Output:

## Calculating Critical Values: Summary

In this article, we have demonstrated how to calculate critical values for T-test, Z-test, and Chi-squared Test using Python. We provided an overview of each test and essential terminology to enhance understanding. With these methods, you can tackle various hypothesis testing scenarios and make data-driven decisions based on your results. Are you ready to apply these techniques to your own research and hypothesis testing? What other statistical tests would you like to learn?