Reta de melhor ajuste: inclinação, intercepto e previsões
Uma reta de melhor ajuste resume a relação linear entre observações numéricas pareadas.
Executar grátis
Forneça um array de valores x e outro array de valores y com o mesmo tamanho; a calculadora retorna a inclinação por mínimos quadrados ordinários, o intercepto e um y previsto para cada x. Ela ajuda você a conferir exercícios, montar tendências, validar planilhas e automatizar resultados reproduzíveis. O cálculo é determinístico, não consulta serviços externos e rejeita claramente arrays com tamanhos diferentes ou uma série x sem variação.
Como a reta de ajuste é calculada
A calculadora ajusta uma reta escrita como y previsto igual à inclinação vezes x mais o intercepto. Ela usa mínimos quadrados ordinários, método padrão que escolhe os coeficientes capazes de minimizar a soma dos quadrados das diferenças verticais entre os valores y observados e previstos. Primeiro são calculadas as médias aritméticas dos dois arrays. Em seguida, mede-se a distância de cada x até a média de x e a mudança do y correspondente em relação à média de y. A soma dos produtos desses desvios é dividida pela soma dos desvios quadráticos de x para obter a inclinação. O intercepto é a média de y menos a inclinação multiplicada pela média de x. Por fim, cada x original é substituído na equação, gerando previsões na mesma ordem da entrada. Como a solução usa uma fórmula fechada, e não aproximações iterativas, entradas finitas iguais sempre geram a mesma resposta. Valores muito afastados podem exercer grande influência porque os erros são elevados ao quadrado.
Como preparar corretamente os arrays x e y
Informe x e y como arrays JSON contendo apenas números finitos. As posições definem os pares: o primeiro x corresponde ao primeiro y, o segundo x ao segundo y e assim por diante. Os arrays precisam ter o mesmo tamanho e pelo menos dois elementos. Preserve a ordem se você pretende comparar previsões e observações, pois a resposta acompanha exatamente a sequência de x. Decimais, valores negativos e zero são aceitos. Valores ausentes, strings numéricas, null, NaN e Infinity devem ser tratados antes do envio. Também é necessário haver variação real em x. Quando todos os valores x são iguais, o denominador da fórmula da inclinação é zero e nenhuma função linear finita de x pode ser definida. A calculadora sinaliza entrada inválida, em vez de devolver zero, Infinity ou NaN de forma enganosa. Para medidas enormes ou escalas extremas, considere mudar as unidades a fim de reduzir limitações comuns da aritmética de ponto flutuante e facilitar a leitura dos coeficientes.
Como interpretar e usar o resultado
A inclinação mostra quanto o y previsto muda quando x aumenta uma unidade. Um valor positivo indica associação crescente; um valor negativo indica associação decrescente; e um valor próximo de zero aponta pouca mudança linear no intervalo observado. O intercepto é o y previsto quando x vale zero. Ele pode ser significativo se zero estiver dentro ou perto dos dados, mas talvez seja apenas uma referência matemática quando estiver distante. O array predicted contém o y ajustado para cada x enviado, facilitando a criação de tendências, tabelas e resíduos obtidos ao subtrair cada previsão do y observado. Uma reta de ajuste descreve associação, mas não prova que x cause alterações em y. Também não é prudente extrapolar muito além do intervalo observado sem conhecimento do contexto. Examine um gráfico de dispersão para identificar curvatura, agrupamentos e valores atípicos influentes. O cálculo no navegador é gratuito; solicitações automatizadas pela API custam US$ 0,002 por item.
Casos de uso
Conferir exercícios de estatística
Verifique inclinação e intercepto calculados manualmente e compare cada ajuste com a observação correspondente.
Criar uma linha de tendência
Gere previsões na ordem original de x e coloque-as ao lado dos valores medidos em um gráfico.
Validar um pipeline analítico
Use coeficientes e previsões determinísticos como dados de teste de importações ou relatórios.
Perguntas frequentes
O que significa reta de melhor ajuste?
É a reta que minimiza a soma dos quadrados das diferenças verticais entre os valores y observados e previstos.
Por que x e y devem ter o mesmo tamanho?
Cada posição representa uma observação pareada; um valor sem par não pode entrar no cálculo.
Por que x constante gera um erro?
Se todos os valores x forem iguais, a variância será zero e a fórmula dividirá por zero; não existe inclinação finita.
As previsões mantêm a ordem da entrada?
Sim. Cada previsão corresponde ao valor x localizado no mesmo índice.
Quanto custa um cálculo pela API?
Cada solicitação bem-sucedida custa US$ 0,002 por item. A ferramenta no navegador executa gratuitamente o mesmo cálculo determinístico.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/stat/line-of-best-fit \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":[1,2,3,4,5],"y":[2,4,5,4,5]}'const res = await fetch("https://api.kit.forhosting.com/stat/line-of-best-fit", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": [
1,
2,
3,
4,
5
],
"y": [
2,
4,
5,
4,
5
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/line-of-best-fit",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": [
1,
2,
3,
4,
5
],
"y": [
2,
4,
5,
4,
5
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/line-of-best-fit", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":[1,2,3,4,5],"y":[2,4,5,4,5]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":[1,2,3,4,5],"y":[2,4,5,4,5]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/line-of-best-fit", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"x": [
1,
2,
3,
4,
5
],
"y": [
2,
4,
5,
4,
5
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.line_of_best_fit",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_items | 100000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |