Как найти значения, не указанные в (интерполировать) статистических таблицах?

19

Часто люди используют программы для получения p-значений, но иногда - по какой-либо причине - может потребоваться получить критическое значение из набора таблиц.

Учитывая статистическую таблицу с ограниченным числом уровней значимости и ограниченным числом степеней свободы, как получить приблизительные критические значения при других уровнях значимости или степенях свободы (например, с t , хи-квадрат илитаблиц F ) ?F

То есть как найти значения «между» значениями в таблице?

Glen_b - Восстановить Монику
источник

Ответы:

26

Этот ответ состоит из двух основных частей: во-первых, с использованием линейной интерполяции , а во-вторых, с использованием преобразований для более точной интерполяции. Обсуждаемые здесь подходы подходят для ручного расчета, когда у вас есть ограниченное количество доступных таблиц, но если вы реализуете компьютерную подпрограмму для получения значений p, есть гораздо лучшие подходы (если они утомительны, когда выполняются вручную), которые следует использовать вместо этого.

Если вы знали, что критическое значение 10% (односторонний) для z-теста составляло 1,28, а критическое значение 20% составляло 0,84, приблизительное предположение о критическом значении 15% было бы на полпути между - (1,28 + 0,84) / 2 = 1,06 (фактическое значение 1,0364), и значение 12,5% можно было бы угадать на полпути между этим значением и значением 10% (1,28 + 1,06) / 2 = 1,17 (фактическое значение 1,15+). Это именно то, что делает линейная интерполяция - но вместо «на полпути» она смотрит на любую долю пути между двумя значениями.

Одномерная линейная интерполяция

Давайте посмотрим на случай простой линейной интерполяции.

Итак, у нас есть некоторая функция (скажем, ), которая, по нашему мнению, приблизительно линейна вблизи значения, которое мы пытаемся приблизить, и у нас есть значение функции по обе стороны от значения, которое мы хотим, например, так:x

xy89.316y162015.6

Два значения , у которых мы знаем, находятся на расстоянии 12 (20-8). Посмотрите, как x- значение (то, для которого мы хотим приблизительное значение y ) делит эту разницу на 12 в соотношении 8: 4 (16-8 и 20-16)? То есть это 2/3 расстояния от первого значения x до последнего. Если бы отношения были линейными, соответствующий диапазон значений y был бы в том же соотношении.xyxyx

линейная интерполяция

Так должны быть примерно такими же, как16-8y169.315.69.3 .168208

То есть y169.315.69.3168208

переставляя:

y169.3+(15.69.3)168208=13.5

Пример со статистическими таблицами: если у нас есть t-таблица со следующими критическими значениями для 12 df:

(2-tail)αt0.013.050.022.680.052.180.101.78

Нам нужно критическое значение t с 12 df и альфа с двумя хвостами 0,025. То есть мы интерполируем строки 0,02 и 0,05 этой таблицы:

αt0.022.680.025?0.052.18

Значение в « » - это значение t 0,025, которое мы хотим использовать для приблизительной линейной интерполяции. (Под t 0,025 я на самом деле имею в виду точку 1 - 0,025 / 2 обратной cdf для t 12?t0.025t0.02510.025/2t12 ).

Как и раньше, делит интервал от 0,02 до 0,05 в соотношении ( 0,025 - 0,02 ) до ( 0,05 - 0,025 ) (т.е. 1 : 5 ) и неизвестный т -value следует разделить т диапазон 2,68 до 2,18 в том же соотношении; что то же самое, 0.025 происходит ( 0,025 - 0,02 ) / ( 0,05 - 0,02 ) = 1 /0.0250.020.05(0.0250.02)(0.050.025)1:5tt2.682.180.025 - го пути вдоль х -range, поэтому неизвестной т -значение должно произойти 1 / 6 - ю часть пути вдоль т -range.(0.0250.02)/(0.050.02)=1/6xt1/6t

Это или эквивалентноt0.0252.682.182.680.0250.020.050.02

t0.0252.68+(2.182.68)0.0250.020.050.02=2.680.5162.60

Фактический ответ ... который не особенно близко , так как функция мы аппроксимирующая не очень близка к линейной в этом диапазоне (ближе α = 0,5 это).2.56α=0.5

linear interpolation of critical value in t-tables

Лучшие приближения через преобразование

Мы можем заменить линейную интерполяцию другими функциональными формами; по сути, мы преобразуем в масштаб, где линейная интерполяция работает лучше. В этом случае, в хвосте, многие табличные критические значения более близки к линейному уровня значимости. После того, как мы берем log s, мы просто применяем линейную интерполяцию, как и раньше. Давайте попробуем это на примере выше:loglog

αlog(α)t0.023.9122.680.0253.689t0.0250.052.9962.18

Сейчас

t0.0252.682.182.68log(0.025)log(0.02)log(0.05)log(0.02)=3.6893.9122.9963.912

or equivalently

t0.0252.68+(2.182.68)3.6893.9122.9963.912=2.680.50.2432.56

Which is correct to the quoted number of figures. This is because - when we transform the x-scale logarithmically - the relationship is almost linear:

linear interpolation in log alpha
Indeed, visually the curve (grey) lies neatly on top of the straight line (blue).

In some cases, the logit of the significance level (logit(α)=log(α1α)=log(11α1)) may work well over a wider range but is usually not necessary (we usually only care about accurate critical values when α is small enough that log works quite well).

Interpolation across different degrees of freedom

t, chi-square and F tables also have degrees of freedom, where not every df (ν-) value is tabulated. The critical values mostly aren't accurately represented by linear interpolation in the df. Indeed, often it's more nearly the case that the tabulated values are linear in the reciprocal of df, 1/ν.

(In old tables you'd often see a recommendation to work with 120/ν - the constant on the numerator makes no difference, but was more convenient in pre-calculator days because 120 has a lot of factors, so 120/ν is often an integer, making the calculation a bit simpler.)

Here's how inverse interpolation performs on 5% critical values of F4,ν between ν=60 and 120. That is, only the endpoints participate in the interpolation in 1/ν. For example, to compute the critical value for ν=80, we take (and note that here F represents the inverse of the cdf):

F4,80,.95F4,60,.95+1/801/601/1201/60(F4,120,.95F4,60,.95)

inverse interp in df

(Compare with diagram here)


Mostly but not always. Here's an example where linear interpolation in df is better, and an explanation of how to tell from the table that linear interpolation is going to be accurate.

Here's a piece of a chi-squared table

            Probability less than the critical value
 df           0.90      0.95     0.975      0.99     0.999
______   __________________________________________________

 40         51.805    55.758    59.342    63.691    73.402
 50         63.167    67.505    71.420    76.154    86.661
 60         74.397    79.082    83.298    88.379    99.607
 70         85.527    90.531    95.023   100.425   112.317

Imagine we wish to find the 5% critical value (95th percentiles) for 57 degrees of freedom.

Looking closely, we see that the 5% critical values in the table progress almost linearly here:

enter image description here

(the green line joins the values for 50 and 60 df; you can see it touches the dots for 40 and 70)

So linear interpolation will do very well. But of course we don't have time to draw the graph; how to decide when to use linear interpolation and when to try something more complicated?

As well as the values either side of the one we seek, take the next nearest value (70 in this case). If the middle tabulated value (the one for df=60) is close to linear between the end values (50 and 70), then linear interpolation will be suitable. In this case the values are equispaced so it's especially easy: is (x50,0.95+x70,0.95)/2 close to x60,0.95?

We find that (67.505+90.531)/2=79.018, which when compared to the actual value for 60 df, 79.082, we can see is accurate to almost three full figures, which is usually pretty good for interpolation, so in this case, you'd stick with linear interpolation; with the finer step for the value we need we would now expect to have effectively 3 figure accuracy.

So we get: x67.50579.08267.50557506050 or

x67.505+(79.08267.505)5750605075.61.

The actual value is 75.62375, so we indeed got 3 figures of accuracy and were only out by 1 in the fourth figure.

More accurate interpolation still may be had by using methods of finite differences (in particular, via divided differences), but this is probably overkill for most hypothesis testing problems.

If your degrees of freedom go past the ends of your table, this question discusses that problem.

Glen_b -Reinstate Monica
источник