Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

These tables give the classic critical values for the three distributions this book uses over and over: the t distribution (inference for a single slope or mean), the F distribution (the ANOVA table, the general linear test, comparing full and reduced models), and the chi-square distribution (goodness-of-fit style tests, some variance-comparison and categorical-data procedures, and the reference distribution behind the deviance in Chapters 13 and 14). Every number below was computed directly by calling scipy.stats in Python, not copied from an older printed table. Because table lookup only ever finds you approximate df values, R and Python compute the exact critical value for any df you actually have. The one line calls that replace each table appear under each section, so you never need to interpolate between rows again.

When you need each table

Software has replaced the printed table

Every value in these tables can be reproduced, for any df or any tail area, not just the ones printed here, with one line of code. In words: instead of rounding your degrees of freedom to the nearest tabled row, you ask the software for the exact critical value at your exact df.

qt(0.975, df = 23)      # t critical value, two-sided alpha = 0.05, df = 23
qf(0.95, df1 = 3, df2 = 20)   # F critical value, alpha = 0.05, 3 and 20 df
qchisq(0.95, df = 5)    # chi-square critical value, alpha = 0.05, df = 5
from scipy import stats
stats.t.ppf(0.975, df=23)       # t critical value, two-sided alpha = 0.05, df = 23
stats.f.ppf(0.95, dfn=3, dfd=20)     # F critical value, alpha = 0.05, 3 and 20 df
stats.chi2.ppf(0.95, df=5)      # chi-square critical value, alpha = 0.05, df = 5

These printed tables remain useful for a quick sanity check by hand, for exams where you work without a computer, and for seeing at a glance how a critical value shrinks as df grows. Use the software call whenever you have an exact df in front of you.

t table

Two-sided critical values t* such that P(|T| > t*) equals the stated alpha, for a t random variable on the given degrees of freedom. In words: this is the multiplier you attach to a standard error to build a two-sided confidence interval, or the cutoff you compare |t| against in a two-sided test. The one-sided value at alpha = 0.05 is the column headed t(.05, one-sided); for a one-sided test at alpha = 0.01, use the t(.01, one-sided) column. The last row (df = inf) is the standard normal z, the limit as df grows without bound.

dft(.05, one-sided) / t(.10, two-sided)t(.025, one-sided) / t(.05, two-sided)t(.01, one-sided) / t(.02, two-sided)t(.005, one-sided) / t(.01, two-sided)
16.31412.70631.82163.657
22.9204.3036.9659.925
32.3533.1824.5415.841
42.1322.7763.7474.604
52.0152.5713.3654.032
61.9432.4473.1433.707
71.8952.3652.9983.499
81.8602.3062.8963.355
91.8332.2622.8213.250
101.8122.2282.7643.169
111.7962.2012.7183.106
121.7822.1792.6813.055
131.7712.1602.6503.012
141.7612.1452.6242.977
151.7532.1312.6022.947
161.7462.1202.5832.921
171.7402.1102.5672.898
181.7342.1012.5522.878
191.7292.0932.5392.861
201.7252.0862.5282.845
211.7212.0802.5182.831
221.7172.0742.5082.819
231.7142.0692.5002.807
241.7112.0642.4922.797
251.7082.0602.4852.787
261.7062.0562.4792.779
271.7032.0522.4732.771
281.7012.0482.4672.763
291.6992.0452.4622.756
301.6972.0422.4572.750
401.6842.0212.4232.704
501.6762.0092.4032.678
601.6712.0002.3902.660
801.6641.9902.3742.639
1001.6601.9842.3642.626
1201.6581.9802.3582.617
2001.6531.9722.3452.601
5001.6481.9652.3342.586
10001.6461.9622.3302.581
inf (z)1.6451.9602.3262.576

Software. qt(1 - alpha, df) in R, stats.t.ppf(1 - alpha, df) in Python, where alpha is the one-tailed area (0.025 for a two-sided 95 percent interval, 0.05 for the first column above).

F table, alpha = 0.05

Upper 5 percent critical values F*, indexed by numerator degrees of freedom df1 (across the top, the model or extra-parameter df) and denominator degrees of freedom df2 (down the side, the error df). In words: if your computed F statistic exceeds the value in the cell matching your df1 and df2, you reject at alpha = 0.05.

df2 / df11234567891012152024304060120
1161.45199.50215.71224.58230.16233.99236.77238.88240.54241.88243.91245.95248.01249.05250.10251.14252.20253.25
218.5119.0019.1619.2519.3019.3319.3519.3719.3819.4019.4119.4319.4519.4519.4619.4719.4819.49
310.139.559.289.129.018.948.898.858.818.798.748.708.668.648.628.598.578.55
47.716.946.596.396.266.166.096.046.005.965.915.865.805.775.755.725.695.66
56.615.795.415.195.054.954.884.824.774.744.684.624.564.534.504.464.434.40
65.995.144.764.534.394.284.214.154.104.064.003.943.873.843.813.773.743.70
75.594.744.354.123.973.873.793.733.683.643.573.513.443.413.383.343.303.27
85.324.464.073.843.693.583.503.443.393.353.283.223.153.123.083.043.012.97
95.124.263.863.633.483.373.293.233.183.143.073.012.942.902.862.832.792.75
104.964.103.713.483.333.223.143.073.022.982.912.852.772.742.702.662.622.58
124.753.893.493.263.113.002.912.852.802.752.692.622.542.512.472.432.382.34
154.543.683.293.062.902.792.712.642.592.542.482.402.332.292.252.202.162.11
204.353.493.102.872.712.602.512.452.392.352.282.202.122.082.041.991.951.90
244.263.403.012.782.622.512.422.362.302.252.182.112.031.981.941.891.841.79
304.173.322.922.692.532.422.332.272.212.162.092.011.931.891.841.791.741.68
404.083.232.842.612.452.342.252.182.122.082.001.921.841.791.741.691.641.58
604.003.152.762.532.372.252.172.102.041.991.921.841.751.701.651.591.531.47
1203.923.072.682.452.292.182.092.021.961.911.831.751.661.611.551.501.431.35
10003.853.002.612.382.222.112.021.951.891.841.761.681.581.531.471.411.331.24

F table, alpha = 0.01

Same layout, upper 1 percent critical values.

df2 / df11234567891012152024304060120
14052.184999.505403.355624.585763.655858.995928.365981.076022.476055.856106.326157.286208.736234.636260.656286.786313.036339.39
298.5099.0099.1799.2599.3099.3399.3699.3799.3999.4099.4299.4399.4599.4699.4799.4799.4899.49
334.1230.8229.4628.7128.2427.9127.6727.4927.3527.2327.0526.8726.6926.6026.5026.4126.3226.22
421.2018.0016.6915.9815.5215.2114.9814.8014.6614.5514.3714.2014.0213.9313.8413.7513.6513.56
516.2613.2712.0611.3910.9710.6710.4610.2910.1610.059.899.729.559.479.389.299.209.11
613.7510.929.789.158.758.478.268.107.987.877.727.567.407.317.237.147.066.97
712.259.558.457.857.467.196.996.846.726.626.476.316.166.075.995.915.825.74
811.268.657.597.016.636.376.186.035.915.815.675.525.365.285.205.125.034.95
910.568.026.996.426.065.805.615.475.355.265.114.964.814.734.654.574.484.40
1010.047.566.555.995.645.395.205.064.944.854.714.564.414.334.254.174.084.00
129.336.935.955.415.064.824.644.504.394.304.164.013.863.783.703.623.543.45
158.686.365.424.894.564.324.144.003.893.803.673.523.373.293.213.133.052.96
208.105.854.944.434.103.873.703.563.463.373.233.092.942.862.782.692.612.52
247.825.614.724.223.903.673.503.363.263.173.032.892.742.662.582.492.402.31
307.565.394.514.023.703.473.303.173.072.982.842.702.552.472.392.302.212.11
407.315.184.313.833.513.293.122.992.892.802.662.522.372.292.202.112.021.92
607.084.984.133.653.343.122.952.822.722.632.502.352.202.122.031.941.841.73
1206.854.793.953.483.172.962.792.662.562.472.342.192.031.951.861.761.661.53
10006.664.633.803.343.042.822.662.532.432.342.202.061.901.811.721.611.501.35

Software. qf(1 - alpha, df1, df2) in R, stats.f.ppf(1 - alpha, dfn=df1, dfd=df2) in Python, for any pair of df you have, including values not printed above.

Chi-square table

Right-tail critical values chi-square* such that P(X > chi-square*) equals the column heading, for a chi-square random variable on the given df. In words: this is the cutoff you compare a chi-square statistic or a likelihood ratio statistic against; the small-area columns on the left (0.995, 0.99) matter mainly for two-sided variance tests, and the columns on the right (0.05, 0.025, 0.01, 0.005) are the ones you use most often for a one-sided goodness-of-fit or deviance test.

dfchi2(.995)chi2(.99)chi2(.975)chi2(.95)chi2(.90)chi2(.10)chi2(.05)chi2(.025)chi2(.01)chi2(.005)
10.0000.0000.0010.0040.0162.7063.8415.0246.6357.879
20.0100.0200.0510.1030.2114.6055.9917.3789.21010.597
30.0720.1150.2160.3520.5846.2517.8159.34811.34512.838
40.2070.2970.4840.7111.0647.7799.48811.14313.27714.860
50.4120.5540.8311.1451.6109.23611.07012.83315.08616.750
60.6760.8721.2371.6352.20410.64512.59214.44916.81218.548
70.9891.2391.6902.1672.83312.01714.06716.01318.47520.278
81.3441.6462.1802.7333.49013.36215.50717.53520.09021.955
91.7352.0882.7003.3254.16814.68416.91919.02321.66623.589
102.1562.5583.2473.9404.86515.98718.30720.48323.20925.188
112.6033.0533.8164.5755.57817.27519.67521.92024.72526.757
123.0743.5714.4045.2266.30418.54921.02623.33726.21728.300
133.5654.1075.0095.8927.04219.81222.36224.73627.68829.819
144.0754.6605.6296.5717.79021.06423.68526.11929.14131.319
154.6015.2296.2627.2618.54722.30724.99627.48830.57832.801
165.1425.8126.9087.9629.31223.54226.29628.84532.00034.267
175.6976.4087.5648.67210.08524.76927.58730.19133.40935.718
186.2657.0158.2319.39010.86525.98928.86931.52634.80537.156
196.8447.6338.90710.11711.65127.20430.14432.85236.19138.582
207.4348.2609.59110.85112.44328.41231.41034.17037.56639.997
218.0348.89710.28311.59113.24029.61532.67135.47938.93241.401
228.6439.54210.98212.33814.04130.81333.92436.78140.28942.796
239.26010.19611.68913.09114.84832.00735.17238.07641.63844.181
249.88610.85612.40113.84815.65933.19636.41539.36442.98045.559
2510.52011.52413.12014.61116.47334.38237.65240.64644.31446.928
2611.16012.19813.84415.37917.29235.56338.88541.92345.64248.290
2711.80812.87914.57316.15118.11436.74140.11343.19546.96349.645
2812.46113.56515.30816.92818.93937.91641.33744.46148.27850.993
2913.12114.25616.04717.70819.76839.08742.55745.72249.58852.336
3013.78714.95316.79118.49320.59940.25643.77346.97950.89253.672
4020.70722.16424.43326.50929.05151.80555.75859.34263.69166.766
5027.99129.70732.35734.76437.68963.16767.50571.42076.15479.490
6035.53437.48540.48243.18846.45974.39779.08283.29888.37991.952
7043.27545.44248.75851.73955.32985.52790.53195.023100.425104.215
8051.17253.54057.15360.39164.27896.578101.879106.629112.329116.321
9059.19661.75465.64769.12673.291107.565113.145118.136124.116128.299
10067.32870.06574.22277.92982.358118.498124.342129.561135.807140.169

Software. qchisq(1 - alpha, df) in R, stats.chi2.ppf(1 - alpha, df) in Python, for any df, including values well beyond the last row printed here.

How these tables were produced

Every value above came from a script that calls scipy.stats.t.ppf, scipy.stats.f.ppf, and scipy.stats.chi2.ppf and formats the result as Markdown; the script is book-myst/appendix/_gen_tables.py. No value was typed by hand or copied from another book.