Program to implement t-test

03 May, 2021
The t test (also called Student’s T Test) compares two averages (means) and tells if they are different from each other. The t-test also tells how significant the differences are. In other words it lets you know if those differences could have happened by chance. t-test can be calculated by using formula : 
where, x̄1 is the mean of first data set x̄2 is the mean of second data set S12 is the standard deviation of first data set S22 is the standard deviation of second data set N1 is the number of elements in the first data set N2 is the number of elements in the second data set
Examples :  
Input : arr1[] = {10, 20, 30, 40, 50}
        arr2[] = {1, 29, 46, 78, 99}
Output : -1.09789

Input : arr1[] = {5, 20, 40, 80, 100, 120}
        arr2[] = {1, 29, 46, 78, 99}
Output : 0.399518
Explanation : In example 1, x̄1 = 30, x̄2 = 50.6, S12 = 15.8114, S12 = 38.8626 using the formula, t-test = -1.09789
Below is the implementation of t-test. 
C++
Java
Python3
C#
PHP
Javascript
// CPP Program to implement t-test.#include <bits/stdc++.h>using namespace std; // Function to find mean.float Mean(float arr[], int n){    float sum = 0;    for (int i = 0; i < n; i++)        sum = sum + arr[i];    return sum / n;} // Function to find standard// deviation of given array.float standardDeviation(float arr[], int n){    float sum = 0;    for (int i = 0; i < n; i++)        sum = sum + (arr[i] - Mean(arr, n)) *                    (arr[i] - Mean(arr, n));     return sqrt(sum / (n - 1));} // Function to find t-test of// two set of statistical data.float tTest(float arr1[], int n,            float arr2[], int m){    float mean1 = Mean(arr1, n);    float mean2 = Mean(arr2, m);    float sd1 = standardDeviation(arr1, n);    float sd2 = standardDeviation(arr2, m);     // Formula to find t-test    // of two set of data.    float t_test = (mean1 - mean2) / sqrt((sd1 * sd1)                              / n + (sd2 * sd2) / m);    return t_test;} // Driver function.int main(){    float arr1[] = { 10, 20, 30, 40, 50 };     // Calculate size of first array.    int n = sizeof(arr1) / sizeof(arr1[0]);    float arr2[] = { 1, 29, 46, 78, 99 };     // Calculate size of second array.    int m = sizeof(arr2) / sizeof(arr2[0]);     // Function call.    cout << tTest(arr1, n, arr2, m);     return 0;}
// Java Program to implement t-test.import java.util.*;import java.io.*; class GFG{    // Function to find mean.    static float Mean(float arr[], int n)    {        float sum = 0;        for (int i = 0; i < n; i++)            sum = sum + arr[i];        return sum / n;    }     // Function to find standard    // deviation of given array.    static float standardDeviation(float arr[], int n)    {        float sum = 0;        for (int i = 0; i < n; i++)            sum = sum + (arr[i] - Mean(arr, n))                  * (arr[i] - Mean(arr, n));         return (float)Math.sqrt(sum / (n - 1));    }     // Function to find t-test of    // two set of statistical data.    static float tTest(float arr1[], int n,                        float arr2[], int m)    {        float mean1 = Mean(arr1, n);        float mean2 = Mean(arr2, m);        float sd1 = standardDeviation(arr1, n);        float sd2 = standardDeviation(arr2, m);         // Formula to find t-test        // of two set of data.        float t_test = (mean1 - mean2) /                       (float)Math.sqrt((sd1 * sd1) /                       n + (sd2 * sd2) / m);        return t_test;    }     // Driver code    public static void main(String args[])    {         float arr1[] = { 10, 20, 30, 40, 50 };         // Calculate size of first array.        int n = arr1.length;        float arr2[] = { 1, 29, 46, 78, 99 };         // Calculate size of second array.        int m = arr2.length;         // Function call.        System.out.print(tTest(arr1, n, arr2, m));    }} // This code is contributed by Sahil_Bansall
# Python 3 Program to implement t-test.from math import sqrt # Function to find mean.def Mean(arr, n):    sum = 0    for i in range(0, n, 1):        sum = sum + arr[i]    return sum / n # Function to find standard# deviation of given array.def standardDeviation(arr, n):    sum = 0    for i in range(0, n, 1):        sum = (sum + (arr[i] - Mean(arr, n)) *                     (arr[i] - Mean(arr, n)))     return sqrt(sum / (n - 1)) # Function to find t-test of# two set of statistical data.def tTest(arr1, n, arr2, m):    mean1 = Mean(arr1, n)    mean2 = Mean(arr2, m)    sd1 = standardDeviation(arr1, n)    sd2 = standardDeviation(arr2, m)     # Formula to find t-test    # of two set of data.    t_test = (mean1 - mean2) / sqrt((sd1 * sd1) / n +                                    (sd2 * sd2) / m)    return t_test # Driver Codeif __name__ == '__main__':    arr1 = [10, 20, 30, 40, 50]     # Calculate size of first array.    n = len(arr1)    arr2 = [1, 29, 46, 78, 99]     # Calculate size of second array.    m = len(arr2)     # Function call.    print('{0:.6}'.format(tTest(arr1, n, arr2, m))) # This code is contributed by# Surendra_Gangwar
// C# Program to implement t-test.using System; class GFG {         // Function to find mean.    static float Mean(float[] arr, int n)    {        float sum = 0;        for (int i = 0; i < n; i++)            sum = sum + arr[i];        return sum / n;    }     // Function to find standard    // deviation of given array.    static float standardDeviation(float[] arr, int n)    {        float sum = 0;        for (int i = 0; i < n; i++)            sum = sum + (arr[i] - Mean(arr, n)) *                        (arr[i] - Mean(arr, n));         return (float)Math.Sqrt(sum / (n - 1));    }     // Function to find t-test of    // two set of statistical data.    static float tTest(float[] arr1, int n,                       float[] arr2, int m)    {        float mean1 = Mean(arr1, n);        float mean2 = Mean(arr2, m);        float sd1 = standardDeviation(arr1, n);        float sd2 = standardDeviation(arr2, m);         // Formula to find t-test        // of two set of data.        float t_test = (mean1 - mean2) /                       (float)Math.Sqrt((sd1 * sd1) /                       n + (sd2 * sd2) / m);        return t_test;    }         // Driver code    static public void Main ()    {        float[] arr1 = {10, 20, 30, 40, 50};         // Calculate size of first array        int n = arr1.Length;        float[] arr2 = { 1, 29, 46, 78, 99 };         // Calculate size of second array        int m = arr2.Length;         // Function calling        Console.Write(tTest(arr1, n, arr2, m));    }} // This code is contributed by Ajit.
<?php// PHP Program to implement t-test. // Function to find mean.function Mean($arr, $n){    $sum = 0;    for ($i = 0; $i < $n; $i++)        $sum = $sum + $arr[$i];    return $sum / $n;} // Function to find standard// deviation of given array.function standardDeviation($arr,$n){    $sum = 0;    for ($i = 0; $i < $n; $i++)        $sum = $sum + ($arr[$i] - Mean($arr, $n)) *                      ($arr[$i] - Mean($arr, $n));     return sqrt($sum / ($n - 1));} // Function to find t-test of// two set of statistical data.function tTest($arr1, $n,               $arr2, $m){    $mean1 = Mean($arr1, $n);    $mean2 = Mean($arr2, $m);    $sd1 = standardDeviation($arr1, $n);    $sd2 = standardDeviation($arr2, $m);     // Formula to find t-test    // of two set of data.    $t_test = ($mean1 - $mean2) /               sqrt(($sd1 * $sd1) /               $n + ($sd2 * $sd2) / $m);    return $t_test;} // Driver Code{    $arr1 = array(10, 20, 30, 40, 50);     // Calculate size of first array.    $n = sizeof($arr1) / sizeof($arr1[0]);         $arr2 = array( 1, 29, 46, 78, 99 );     // Calculate size of second array.    $m = sizeof($arr2) / sizeof($arr2[0]);     // Function call.    echo tTest($arr1, $n, $arr2, $m);     return 0;} // This code is contributed by nitin mittal.?>
<script> // Javascript program to implement t-test. // Function to find mean.function Mean(arr, n){    let sum = 0;    for(let i = 0; i < n; i++)        sum = sum + arr[i];             return sum / n;} // Function to find standard// deviation of given array.function standardDeviation(arr, n){    let sum = 0;    for(let i = 0; i < n; i++)        sum = sum + (arr[i] - Mean(arr, n)) *                    (arr[i] - Mean(arr, n));     return Math.sqrt(sum / (n - 1));} // Function to find t-test of// two set of statistical data.function tTest(arr1, n, arr2, m){    let mean1 = Mean(arr1, n);    let mean2 = Mean(arr2, m);    let sd1 = standardDeviation(arr1, n);    let sd2 = standardDeviation(arr2, m);     // Formula to find t-test    // of two set of data.    let t_test = (mean1 - mean2) /         Math.sqrt((sd1 * sd1) /               n + (sd2 * sd2) / m);    return t_test.toFixed(5);} // Driver codelet arr1 = [ 10, 20, 30, 40, 50 ]; // Calculate size of first arraylet n = arr1.length;let arr2 = [ 1, 29, 46, 78, 99 ]; // Calculate size of second arraylet m = arr2.length; // Function callingdocument.write(tTest(arr1, n, arr2, m)); // This code is contributed by decode2207 </script>
Output: 
-1.09789
 
jit_t
nitin mittal
SURENDRA_GANGWAR
decode2207
statistical-algorithms
Arrays
Arrays
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Maximum and minimum of an array using minimum number of comparisons
Top 50 Array Coding Problems for Interviews
Multidimensional Arrays in Java
Stack Data Structure (Introduction and Program)
Linear Search
Introduction to Arrays
Given an array A[] and a number x, check for pair in A[] with sum as x (aka Two Sum)
K'th Smallest/Largest Element in Unsorted Array | Set 1
Subset Sum Problem | DP-25
Introduction to Data Structures