Algoritmo per calcolare l'utilizzo futuro stimato di un valore definito

2

Sto cercando il nome di un algoritmo del computer. Sono abbastanza sicuro che uno dovrebbe esistere che mi aiuterà, ma non posso per la vita di me capire cosa cercare.

Se hai implementazioni dell'algoritmo, sarebbe fantastico - ma sto solo cercando questo perché mi piacerebbe capire come costruirlo da solo.

Fondamentalmente, sto cercando un algoritmo in grado di calcolare l'utilizzo futuro di alcuni set di dati in base al mio utilizzo precedente. Ad esempio, il mio fornitore di energia elettrica sa quanta potenza ho usato per i 20 giorni precedenti di un mese di 30 giorni, in modo che possano estrapolarlo e prevedere quanto rapidamente mi verrà a mancare il denaro sul mio conto energia. Mi piacerebbe sapere se c'è un algoritmo là fuori che può dirmi per quanto tempo ho intenzione di scappare.

Quello che sto cercando è qualcosa che ha i seguenti input:

  1. Un intervallo (ad esempio 30 giorni)
  2. Un periodo di tempo attraverso quell'intervallo (ad esempio 4, mai inferiore a zero, mai maggiore del massimo dell'intervallo)
  3. Alcuni valori per periodi di tempo precedenti - i giorni precedenti o gli stessi giorni dei mesi precedenti
  4. Un valore totale per questo intervallo (ad esempio 300)

Può darmi un intervallo di date in cui è probabile che finisca il valore totale (300). Quello che mi piacerebbe dall'altra parte sarebbe qualcosa di semplice - ad es. "In base al precedente utilizzo, stai per esaurire in 2 giorni."

Ho fatto le solite ricerche su Google, ma non ho trovato nulla di particolare che sia persino vicino - ma per quanto posso vedere è un algoritmo ragionevolmente comune usato dappertutto.

    
posta Matt 26.11.2013 - 22:44
fonte

3 risposte

2

Basically, I'm looking for an algorithm that can calculate future usage of some set of data based on my previous usage.

Prima di tutto, non c'è modo di prevedere il futuro. La cosa migliore che puoi fare è fare una proiezione, cioè fare una dichiarazione come

Given all the information at hand, for some specific question it is useful (or reasonable or fair) to assume that this unknown variable has value X.

Detto questo, naturalmente non esiste una risposta generica alla tua domanda: stai sostanzialmente chiedendo un approccio generale per modellare qualsiasi cosa. Non esiste una cosa del genere.

Fondamentalmente devi modellare i tuoi valori, indovinando come sono distribuiti. Una volta che hai scelto una distribuzione, guarda al passato per indovinare i parametri della distribuzione. Quindi indovina se i valori sono indipendenti o meno. Se sono indipendenti, puoi disegnare i valori mancanti, calcolare il giorno in cui sei finito e ripetere il processo, calcolare il valore atteso del giorno in cui sei finito. Se i valori non sono indipendenti, allora sei bloccato, perché è difficile simulare valori non indipendenti (ad eccezione di alcune distribuzioni, inclusa la distribuzione normale).

Ma nota che la corretta modellizzazione dipende dal sistema. La vostra azienda energetica terrà conto del fatto che avete bisogno di più energia in inverno che in estate, e noterete anche che l'inverno è particolarmente freddo. Se analizza i miei prelievi e depositi, il mio banchiere dovrebbe tener conto del fatto che alcuni sono settimanali, giornalieri o mensili, altri casuali e così via.

    
risposta data 27.11.2013 - 13:07
fonte
2

Questo è un caso di Regressione lineare . L'approccio più comunemente utilizzato è la Regressione lineare semplice che utilizza il metodo dei minimi quadrati.

Un'implementazione in java può essere trovata su LinearRegression.java . Vedi anche questa domanda Regressione lineare ponderata in Java .

    
risposta data 26.11.2013 - 23:22
fonte
1

La regressione lineare è una risposta, ma potrebbe non essere la risposta corretta. Il metodo di estrapolazione appropriato da utilizzare dipende dalla natura dei dati stessi.

Ad esempio, la domanda di elettricità è spesso ciclica, con schemi giornalieri, settimanali e annuali sovrapposti l'uno sull'altro. L'estrapolazione lineare non prenderebbe in considerazione tali modelli; aggiustamenti stagionali possono essere richiesti.

Come esempio estremo, i mercati finanziari sono caotici. Molte persone intelligenti hanno provato a scrivere programmi per prevedere i mercati, a volte con successo , a volte non .

Comunque, solo tu puoi decidere quale metodo di estrapolazione è appropriato. Potrebbe essere un'estrapolazione basata sulla regressione lineare, alcuni altro tipo di regressione , o comunque non ragionevole.

    
risposta data 28.11.2013 - 00:39
fonte

Leggi altre domande sui tag