Essa resposta está dividida em duas partes principais: primeiro, usando interpolação linear e, segundo, usando transformações para obter uma interpolação mais precisa. As abordagens discutidas aqui são adequadas para o cálculo manual quando você tem tabelas limitadas disponíveis, mas se você estiver implementando uma rotina de computador para produzir valores-p, existem abordagens muito melhores (se entediantes quando feitas à mão) que devem ser usadas.
Se você soubesse que o valor crítico de 10% (uma cauda) para um teste z era 1,28 e o valor crítico de 20% era 0,84, uma estimativa aproximada do valor crítico de 15% seria a meio caminho entre - (1,28 + 0,84) / 2 = 1,06 (o valor real é 1,0364) e o valor de 12,5% pode ser calculado a meio caminho entre esse valor e o valor de 10% (1,28 + 1,06) / 2 = 1,17 (valor real 1,15+). É exatamente isso que a interpolação linear faz - mas, em vez de "no meio do caminho", ela olha para qualquer fração do caminho entre dois valores.
Interpolação linear univariada
Vejamos o caso da interpolação linear simples.
Portanto, temos uma função (digamos de ) que achamos que é aproximadamente linear perto do valor que estamos tentando aproximar, e temos um valor da função em ambos os lados do valor que queremos, por exemplo:x
x81620y9,3y1615,6
Os dois valores de cujos sabemos são separados por 12 (20-8). Veja como o valor (aquele para o qual queremos um valor aproximado de ) divide essa diferença de 12 acima na proporção 8: 4 (16-8 e 20-16)? Ou seja, é 2/3 da distância do primeiro valor ao último. Se o relacionamento fosse linear, o intervalo correspondente de valores y estaria na mesma proporção.y x y xxyxyx
Portanto, deve ser o mesmo que . 16-8y16- 9,315,6 - 9,316 - 820 - 8
Isso éy16- 9,315,6 - 9,3≈ 16 - 820 - 8
reorganização:
y16≈ 9,3 + ( 15,6 - 9,3 ) 16 - 820 - 8= 13,5
Um exemplo com tabelas estatísticas: se tivermos uma tabela t com os seguintes valores críticos para 12 df:
( 2 rabos )α0,010,020,050,10t3.052,682,181,78
Queremos o valor crítico de t com 12 df e um alfa bicaudal de 0,025. Ou seja, interpolamos entre as linhas 0,02 e 0,05 dessa tabela:
α0,020,0250,05t2,68?2,18
O valor em " " É o valor que queremos usar para interpolação linear. (Por , na verdade quero dizer o ponto do cdf inverso de uma distribuição .)t 0,025 t 0,025 1 - 0,025 / 2 t 12?t0,025t0,0251 - 0,025 / 2t12
Como antes, divide o intervalo de a na proporção para (ou seja, ) e o valor desconhecido deve dividir o intervalo a na mesma proporção; equivalentemente, ocorre do caminho ao longo da faixa , de modo que o valor desconhecido deve ocorrer da faixa ao longo da faixa .0,02 0,05 ( 0,025 - 0,02 ) ( 0,05 - 0,025 ) 1 : 5 t t 2,68 2,18 0,025 ( 0,025 - 0,02 ) / ( 0,05 - 0,02 ) = 1 / 6 x t 1 / 6 t0,0250,020,05( 0,025 - 0,02 )( 0,05 - 0,025 )1 : 5tt2,682,180,025( 0,025 - 0,02 ) / ( 0,05 - 0,02 ) = 1 / 6xt1 / 6t
Isso é ou equivalentet0,025- 2,682.18 - 2.68≈ 0,025 - 0,020,05 - 0,02
t0,025≈ 2,68 + ( 2,18 - 2,68 ) 0,025 - 0,020,05 - 0,02= 2,68 - 0,5 16≈ 2,60
A resposta real é ... o que não é particularmente próximo, porque a função que estamos aproximando não é muito próxima do linear nesse intervalo (mais próximo de ).α = 0,52,56α = 0,5
Melhores aproximações via transformação
Podemos substituir a interpolação linear por outras formas funcionais; com efeito, transformamos em uma escala em que a interpolação linear funciona melhor. Nesse caso, na cauda, muitos valores críticos tabulados são mais quase lineares o do nível de significância. Depois de tomarmos s, simplesmente aplicamos a interpolação linear como antes. Vamos tentar isso no exemplo acima:logregistroregistro
α0,020,0250,05registro( α )- 3.912- 3,668- 2,996t2,68t0,0252,18
Agora
t0,025- 2,682.18 - 2.68≈=registro( 0,025 ) - log( 0,02 )registro( 0,05 ) - log( 0,02 )- 3,668 - - 3,912- 2,996 - - 3,912
ou equivalente
t0,025≈=2,68 + ( 2,18 - 2,68 ) - 3,689 - - 3,912- 2,996 - - 3,9122,68 - 0,5 ⋅ 0,243 ≈ 2,56
O que é correto para o número citado de figuras. Isso ocorre porque - quando transformamos a escala x logaritmicamente - o relacionamento é quase linear:
De fato, visualmente a curva (cinza) fica bem no topo da linha reta (azul).
Em alguns casos, o logit do nível de significância ( ) pode funcionar bem em uma faixa mais ampla, mas geralmente não é necessário (geralmente nos preocupamos apenas com valores críticos precisos quando é pequeno o suficiente para que funcione muito bem).logit ( α ) = log( α1 - α) = log( 11 - α- 1 )αregistro
Interpolação através de diferentes graus de liberdade
t tabelas , qui-quadrado e também têm graus de liberdade, onde nem todos os valores de df ( -) são tabulados. Os valores críticos na maior parte não estão representados com exactidão por interpolação linear na DF. De fato, geralmente é mais provável que os valores tabulados sejam lineares no inverso de df, .Fν†1 / ν
(Nas tabelas antigas, você costumava ver uma recomendação para trabalhar com - a constante no numerador não faz diferença, mas era mais conveniente nos dias pré-calculadora porque 120 tem muitos fatores, então geralmente é um número inteiro, tornando o cálculo um pouco mais simples.)120 / ν120 / ν
Veja como a interpolação inversa é executada em valores críticos de 5% de entre e . Ou seja, apenas os terminais participam da interpolação em . Por exemplo, para calcular o valor crítico para , tomamos (e observe que aqui representa o inverso do cdf):F4 , vν= 601201 / νν= 80F
F4 , 80 , 0,95≈ F4 , 60 , 0,95+ 1 / 80 - 1 / 601 / 120 - 1 / 60⋅ ( F4 , 120 , 0,95- F4 , 60 , 0,95)
(Compare com o diagrama aqui )
† Principalmente, mas nem sempre. Aqui está um exemplo em que a interpolação linear em df é melhor e uma explicação de como dizer da tabela que a interpolação linear será precisa.
Aqui está um pedaço de uma mesa qui-quadrado
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 que desejamos encontrar o valor crítico de 5% (percentil 95) para 57 graus de liberdade.
Observando atentamente, vemos que os valores críticos de 5% na tabela progridem quase linearmente aqui:
(a linha verde une os valores de 50 e 60 df; você pode ver que ela toca nos pontos de 40 e 70)
Portanto, a interpolação linear fará muito bem. Mas é claro que não temos tempo para desenhar o gráfico; como decidir quando usar a interpolação linear e quando tentar algo mais complicado?
Assim como os valores de ambos os lados do que procuramos, pegue o próximo valor mais próximo (neste caso, 70). Se o valor tabulado do meio (aquele para df = 60) for próximo de linear entre os valores finais (50 e 70), a interpolação linear será adequada. Nesse caso, os valores são equidistantes, portanto é especialmente fácil: é próximo a ?( x50 , 0,95+ x70 , 0,95) / 2x60 , 0,95
Descobrimos que , que quando comparado ao valor real de 60 df, 79.082, podemos ver que é preciso quase três números completos, o que geralmente é muito bom para interpolação, portanto, neste caso, você ficaria com interpolação linear; com o passo mais preciso para o valor que precisamos, esperamos agora ter uma precisão de 3 dígitos.( 67,505 + 90,531 ) / 2 = 79,018
Então obtemos: oux - 67.50579.082 - 67.505≈ 57 - 50 60 - 50
x ≈ 67,505 + ( 79,082 - 67,505 ) ⋅ 57 - 50 60 - 50 ≈ 75,61 .
O valor real é 75.62375, então, de fato, obtivemos 3 números de precisão e ficamos fora apenas por 1 na quarta figura.
Uma interpolação mais precisa ainda pode ser obtida usando métodos de diferenças finitas (em particular, via diferenças divididas), mas isso provavelmente é um exagero para a maioria dos problemas de teste de hipóteses.
Se seus graus de liberdade ultrapassam as extremidades da sua mesa, esta pergunta discute esse problema.