Wie kann ich einen least-squares-fit in python, mithilfe von Daten, die nur eine Obere Grenze?

Ich versuche, führen Sie eine least-squares-fit in python, um eine bekannte Funktion mit drei Variablen. Ich bin in der Lage, diese Aufgabe für zufällig erzeugte Daten mit Fehlern, aber die eigentlichen Daten, die ich brauche, um fit enthält einige Datenpunkte sind Obere Grenzen auf die Werte. Die Funktion beschreibt den Fluss als eine Funktion der Wellenlänge, aber in einigen Fällen ist der Lichtstrom, gemessen in der gegebenen Wellenlänge nicht einen absoluten Wert mit einem Fehler, sondern vielmehr ein maximaler Wert für den Lichtstrom, mit dem wirklichen Wert nichts unterhalb, nach unten auf null.

Gibt es eine Möglichkeit zu sagen, die passende Aufgabe, die Datenpunkte sind Obere Grenzen? Darüber hinaus habe ich dies für eine Reihe von Datensätzen, und die Anzahl der Daten Punkte, die werden Obere Grenze ist für jeden anders, so in der Lage, es automatisch zu machen wäre von Vorteil, aber keine Notwendigkeit.

Entschuldige ich mich, ist dies unklar, ich werde mich bemühen, zu erklären es genauer, wenn es erforderlich ist.

Den code, den ich verwende, passen meine Daten sind unten aufgeführt.

import numpy as np
from scipy.optimize import leastsq
import math as math
import matplotlib.pyplot as plt


def f_all(x,p):
    return np.exp(p[0])/((x**(3+p[1]))*((np.exp(14404.5/((x*1000000)*p[2])))-1))

def residual(p,y,x,error):
    err=(y-(f_all(x,p)))/error
    return err


p0=[-30,2.0,35.0]

data=np.genfromtxt("./Data_Files/Object_001")
wavelength=data[:,0]
flux=data[:,1]
errors=data[:,2]

p,cov,infodict,mesg,ier=leastsq(residual, p0, args = (flux, wavelength, errors), full_output=True)

print p
Tut macht es Sinn, nur behandeln die Obere Grenze Punkte normal, aber bestrafen alle passen, die in einem unphysikalischen region, z.B. durch die Rückkehr einer sehr großen Wert in diesem Fall von residual?
Die passen nicht unbedingt unphysikalischen bei der Montage mit einer oberen Grenze, aber es kann fixieren Sie das hintere Ende der Steigung (es ist im Grunde eine modifizierte black-Körper-Funktion). Ohne diese Bestimmung der Passform können immer noch real sein, aber nicht so gut. Als solche Behandlung von der oberen Grenze-Punkte würde in der Regel geben nur eine schlechte Passform, viel wie mit einem Datenpunkt, der mit einem großen Fehler, statt zumindest einige nützliche Anregungen, um die passende Funktion. Ich hoffe, meine Antwort macht Sinn.
Ich sage nicht, dass die Frage off-topic hier, aber wenn Sie möchten, zuerst die Methodik, was Sie zu tun versuchen, stats.stackexchange.com wäre ein guter Ort.

InformationsquelleAutor Stargazer_Scot | 2014-01-08

Schreibe einen Kommentar