Student’s t-distribution Test

This program performs the t-statistic and degrees of freedom for Student’s distribution, in Matlab code. The calculations can be based on any one of these three hypotheses.

The first hypothesis assumes that one population mean is equal to a given value. You must enter the elements of the sample and the value of the mean.

The other hypotheses compare two samples. In both tests the means of the two populations are equal, but the standard deviations may be equal or different. For these hypotheses you must enter the elements of each sample.

We are going to implement the following formulas:

First case: one sample given, one mean assumed

where:
t = t-statistic result
df = degrees of freedom
v = sum of elements
d = sum of squared elements
r = number of elements in sample
m = mean of current sample
gm = assummed mean

This is how we can implement the formulas in Matlab:

function [t, df] = t_test1(gv, gm)
% Inputs: gv = given vector
% gm = assumed mean
% Outputs: t = t-test
% df = degrees of freedom

% number of elements in vector
r = length(gv);
% sum of elements
v = sum(gv);
% sum of squared elements
d = sum(gv.^2);
% mean of current vector
m = mean(gv);

% calculation of t-test and degrees of freedom
% Case 1: one vector with assumed mean

av = (d - v^2 / r) / (r - 1);
t = (m - gm) * sqrt(r/av);
df = r - 1;

Second case: two samples given with equal mean and std. deviation

where:

t = t-statistic result
df = degrees of freedom
v1,2 = sum of elements in samples 1 and 2
d1,2 = sum of squared elements in samples 1 and 2
r1,2 = number of elements in samples 1 and 2
m1,2 = mean of samples 1 and 2

This is how we can implement the second case in Matlab:

function [t, df] = t_test2(gv1, gv2)
% Inputs: gv1 = given sample 1
% gv2 = given sample 2
% Outputs: t = t-test
% df = degrees of freedom

% number of elements in vector 1
r1 = length(gv1);
% sum of elements in vector 1
v1 = sum(gv1);
% sum of squared elements in vector 1
d1 = sum(gv1.^2);
% mean of vector 1
m1 = mean(gv1);

% number of elements in vector 2
r2 = length(gv2);
% sum of elements in vector 2
v2 = sum(gv2);
% sum of squared elements in vector 2
d2 = sum(gv2.^2);
% mean of vector 2
m2 = mean(gv2);

% calculation of t-test and degrees of freedom
% Case 2: two samples, equal mean and std. dev.

av1 = (d1 - v1^2 / r1) /(r1 - 1);
av2 = (d2 - v2^2 / r2) /(r2 - 1);
av3 = (m1 - m2) / sqrt(1/r1 + 1/r2);
df = r1 + r2 - 2;
t = av3 / sqrt(((r1-1)*av1 + (r2-1)*av2) / df);

Third case: two samples given with equal mean but different std. deviation

again:

t = t-test result
df = degrees of freedom
v1,2 = sum of elements in samples 1 and 2
d1,2 = sum of squared elements in samples 1 and 2
r1,2 = number of elements in samples 1 and 2
m1,2 = mean of samples 1 and 2

This is our third case in Matlab code:

function [t, df] = t_test3(gv1, gv2)
% Inputs: gv = given vector
% gm = assumed mean
% Outputs: t = t-test
% df = degrees of freedom

r1 = length(gv1);
v1 = sum(gv1);
d1 = sum(gv1.^2);
m1 = mean(gv1);

r2 = length(gv2);
v2 = sum(gv2);
d2 = sum(gv2.^2);
m2 = mean(gv2);

% calculation of t-test and degrees of freedom
% Case 3: two samples, equal mean but different std. dev.

av1 = (d1 - v1^2 / r1) /(r1 - 1);
av2 = (d2 - v2^2 / r2) /(r2 - 1);
av3 = av1/r1 + av2/r2;
t = (m1 - m2) / sqrt(av3);
df = round(av3^2/((av1/r1)^2/(r1+1) + (av2/r2)^2/(r2+1)) - 2);

Examples:

A sample of children’s IQs was taken, the result being 101, 99, 120, 79, 111, 98, 106, 112, 87, and 97. Calculate the t-statistic assuming the population mean is 100.

A second sample was taken, with a result of
101, 95, 130, 150, 75, 79, 111, 100, 98, and 91. Calculate the t-statistic based on the hypothesis that the two samples have equal means and standard deviations. Calculate again supposing that the std. deviation is different between the groups.

We can create a wrapper for the three functions above. This wrapper is useful to try and drive our code.

clc; clear; close all; format compact

v1 = [101 99 120 79 111 98 106 112 87 97];
m = 100;
[t, df] = t_test1(v1, m)

v2 = [101 95 130 150 75 79 111 100 98 91];
[t, df] = t_test2(v1, v2)
[t, df] = t_test3(v1, v2)

The result for the first case is:

t = 0.2615
df = 9

The result for the second case is:

t = -0.2465
df = 18

The result for the third case is:

t = -0.2465
df = 15

From 'T statistic' to home

From 'T statistic' to 'Probability and Statistics Menu'

 Top Binomial Distribution Poisson Distribution F-distribution Chi-square distribution

Related pages

rate of depreciation calculatorwhat does piecewise meanamorization tablematlab boolean operatorssine series expansionbinary code letter chartwhat is scrap value in accountingonline pythagoras calculatorsmith chart pdf colorscilab functionpascal's triangle exampleexamples of concentric circlesfminbnddecimal to octal converterleast squares polynomial regressionhexadecimal binary tablesingular value decomposition tutorialintegration calculator with limitsascii character lookupcalculator quadratic equationcomplex quadratic equation solverfibonacci codingcalculate permutations and combinationsgrey code to binaryconvert binary to hexaexamples of decimal to binary conversionhigh pass filter in matlabscilab matlabcalc integralgenerate fibonacci seriesconvert cartesian coordinates to polarinterest amortization tablesoctal converterbisection algorithm matlabwhat is heaviside functiontaylors expansionmatlab quadraturetextscan matlab examplefactorial with recursionlagrange interpolation formula with examplerc charging circuitparts of an angle in trigonometryramp function matlab codefree online quadratic equation solverascii binary code table3n 1 conjecturediscount formulasradioactive decay formula half lifeboolean matlab101100 binaryquadratic formula a b cmatlab gui tutorial for beginnersascii for lettersohm's law pie chartdisplay string in matlabtrigonometry matlabmatlab fminsearchhow to determine salvage value of a carmatlab interp2matlab interpwhat is impulse functionpoisson distribution probability calculatorexample of hexadecimalascii code binary tablecollatz fractalradio button in matlab guihow to convert signed binary to decimalxlswrite matlabintegral calculatorsexponential regression modeldecimal to octal converterpolar graph matlabascii chart generatorbooks on matlabhow to write for loop in matlabcalculator for factorialssemilogy matlabcalculating loan payment formulapythagorean triangle calculatorexponential interpolation formulamatlab matrix solver