Regressione cubica
Questo calcolatore di regressione cubica adatta un polinomio di terzo grado a osservazioni numeriche appaiate con il metodo dei minimi quadrati ordinari.
Esegui gratis nel browser
Fornisca array x e y della stessa lunghezza: riceverà i quattro coefficienti dei termini costante, lineare, quadratico e cubico, in quest’ordine. Il calcolo è deterministico, non usa la rete e accetta sia dati cubici esatti sia misure affette da rumore. Servono almeno quattro punti appaiati e quattro valori x distinti affinché il modello di terzo grado sia identificabile in modo univoco.
Come opera la regressione cubica ai minimi quadrati
Un modello cubico ha la forma y = a0 + a1x + a2x² + a3x³. Per ogni valore x fornito, il calcolatore costruisce quattro valori di base: uno, x, x al quadrato e x al cubo. I minimi quadrati scelgono i coefficienti che rendono minima la somma delle differenze verticali al quadrato fra i valori y osservati e quelli previsti dal polinomio. Con esattamente quattro punti idonei, una cubica può interpolare tutte le osservazioni. Con più di quattro punti, lo stesso metodo bilancia i residui e trova l’unico adattamento migliore secondo il criterio dell’errore quadratico. Internamente, x viene centrata e scalata prima di risolvere il piccolo sistema lineare. Questo passaggio riduce la sensibilità aritmetica quando i valori x sono molto grandi o raggruppati lontano da zero. I coefficienti vengono poi riconvertiti nella scala x originale, così Lei può applicarli direttamente ai dati inviati. Si tratta di regressione ordinaria non pesata: ogni coppia contribuisce allo stesso modo e non intervengono inizializzazioni casuali né addestramento iterativo.
Come preparare i due array di ingresso
Fornisca x come array della variabile indipendente e y come array della variabile dipendente. L’associazione dipende dalla posizione: il primo x corrisponde al primo y, il secondo x al secondo y e così via. Entrambi gli array devono contenere esclusivamente numeri JSON finiti e avere esattamente la stessa lunghezza. Un modello cubico possiede quattro coefficienti incogniti; meno di quattro coppie non possono quindi identificare il modello richiesto e producono un errore di input non valido. Anche l’array x deve includere almeno quattro valori distinti. È possibile ripetere misure allo stesso x se rimangono almeno quattro posizioni diverse, ma quattro righe distribuite su sole tre posizioni non offrono informazioni indipendenti sufficienti per un polinomio cubico univoco. La risposta contiene l’array coefficients ordinato come [costante, lineare, quadratico, cubico]. In altre parole, [a0, a1, a2, a3] rappresenta y = a0 + a1x + a2x² + a3x³. Mantenga esplicito quest’ordine quando trasferisce il risultato in un foglio elettronico, una libreria grafica o un altro programma, perché alcuni pacchetti matematici mostrano prima la potenza più alta.
Come interpretare il risultato e i suoi limiti
Il coefficiente cubico governa la curvatura di terzo grado, quello quadratico la flessione di secondo grado, quello lineare l’andamento di primo grado, mentre la costante è il valore adattato quando x = 0. Le loro grandezze dipendono dalle unità e dalla scala di x; non confronti coefficienti ottenuti da scale diverse senza prima convertire le unità. Un adattamento stretto non dimostra che il processo reale sia cubico e non stabilisce un rapporto causale. I termini di grado elevato possono seguire il rumore, soprattutto con poche osservazioni, e l’estrapolazione oltre l’intervallo osservato può crescere rapidamente in una direzione poco plausibile. Se la qualità del modello è importante, esamini anche un grafico e i residui nel Suo flusso di analisi. Questa capacità restituisce intenzionalmente i coefficienti adattati, non statistiche inferenziali, intervalli di confidenza, pesi o previsioni. È utile per relazioni cubiche note, approssimazioni di curve, calibrazioni di laboratorio e test software riproducibili. Il calcolo nel browser è gratuito; una chiamata API automatizzata costa $0.002 per elemento riuscito. Gli array non validi vengono rifiutati prima di produrre un risultato.
Casi d'uso
Adattare una relazione curva di calibrazione
Trasformi letture strumentali e valori di riferimento appaiati in un’equazione cubica di calibrazione per i calcoli successivi.
Approssimare un andamento osservato regolare
Riassuma una serie non lineare con un solo polinomio quando una retta o una curva quadratica non ne descrive bene la forma.
Creare casi di prova deterministici
Generi coefficienti da array appaiati noti e li usi come asserzioni stabili in software numerico ed esercizi didattici.
Domande frequenti
In quale ordine vengono restituiti i coefficienti?
L’ordine è [costante, lineare, quadratico, cubico], cioè a0, a1, a2 e a3 in y = a0 + a1x + a2x² + a3x³.
Perché servono almeno quattro punti?
Un polinomio di terzo grado ha quattro coefficienti. Meno di quattro osservazioni appaiate non consente di identificarli tutti in modo univoco con questo contratto.
L’array x può contenere valori ripetuti?
Sì, ma deve contenere almeno quattro valori x distinti. Altrimenti la matrice del modello cubico non ha rango completo.
Il polinomio passa per tutti i punti?
Non necessariamente. I minimi quadrati riducono al minimo l’errore residuo quadratico totale. Interpolano dati compatibili, ma bilanciano gli errori con osservazioni rumorose o sovradeterminate.
Quanto costa il calcolo?
L’esecuzione nel browser è gratuita. Ogni richiesta API riuscita costa $0.002; un input non valido viene rifiutato senza produrre un adattamento.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/stat/cubic-regression \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":[0,1,2,3,4],"y":[1,3,9,25,57]}'const res = await fetch("https://api.kit.forhosting.com/stat/cubic-regression", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": [
0,
1,
2,
3,
4
],
"y": [
1,
3,
9,
25,
57
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/cubic-regression",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": [
0,
1,
2,
3,
4
],
"y": [
1,
3,
9,
25,
57
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/cubic-regression", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":[0,1,2,3,4],"y":[1,3,9,25,57]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":[0,1,2,3,4],"y":[1,3,9,25,57]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/cubic-regression", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"x": [
0,
1,
2,
3,
4
],
"y": [
1,
3,
9,
25,
57
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.cubic_regression",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |