Dies ist eine komplizierte Frage, und es gibt keine perfekten Antworten. Ich werde versuchen, Ihnen einen Überblick über die wichtigsten Konzepte zu geben und Sie in die Richtung einer nützlichen Lektüre zu diesem Thema zu führen.
Angenommen, Sie haben eine eindimensionale Menge von Daten und Sie haben eine endliche Menge von Wahrscheinlichkeitsverteilungsfunktionen, von denen Sie glauben, dass die Daten daraus generiert wurden. Sie können jede Verteilung unabhängig betrachten und versuchen, Parameter zu finden, die Ihren Daten angemessen sind. Es gibt zwei Methoden für die Parameter für eine Wahrscheinlichkeitsverteilungsfunktion angegebenen Daten einstellen:
- Least Squares
- Maximum Likelihood
Nach meiner Erfahrung Maximum Likelihood in den letzten Jahren wurde bevorzugt, obwohl dies nicht in jedem Bereich der Fall sein.
Hier ist ein konkretes Beispiel dafür, wie Parameter in R. zu schätzen eine Reihe von zufälligen Punkten Betrachten aus einer Gaußschen Verteilung mit einem Mittelwert von 0 und eine Standardabweichung von 1 erzeugt:
x = rnorm(n = 100, mean = 0, sd = 1)
Es sei angenommen, dass Sie die Daten kennen wurden mit einem Gauß-Prozess generiert, aber Sie haben die Parameter für die Gauß-Funktion vergessen (oder nie gewusst!). Sie möchten die Daten verwenden, um angemessene Schätzungen für den Mittelwert und die Standardabweichung zu erhalten. In R gibt es eine Standard-Bibliothek, die diese sehr einfach macht:
library(MASS)
params = fitdistr(x, "normal")
print(params)
Dies gab mir die folgende Ausgabe:
mean sd
-0.17922360 1.01636446
(0.10163645) (0.07186782)
Diejenigen, ziemlich nah an der richtigen Antwort sind, und die Zahlen in Klammern sind Konfidenzintervalle um die Parameter. Denken Sie daran, dass Sie jedes Mal, wenn Sie eine neue Menge von Punkten generieren, eine neue Antwort für die Schätzungen erhalten.
Mathematisch verwendet dies eine maximale Wahrscheinlichkeit, um sowohl den Mittelwert als auch die Standardabweichung des Gauß-Werts zu schätzen. Wahrscheinlichkeit bedeutet (in diesem Fall) "Wahrscheinlichkeit von Daten gegeben Werte der Parameter." Maximale Wahrscheinlichkeit bedeutet "die Werte der Parameter, die die Wahrscheinlichkeit der Erzeugung meiner Eingabedaten maximieren." Maximum-Likelihood-Schätzung ist der Algorithmus zum Finden der Werte der Parameter, die die Wahrscheinlichkeit des Erzeugens der Eingabedaten maximieren, und für einige Verteilungen kann er numerical optimization Algorithmen beinhalten. In R wird die meiste Arbeit von fitdistr erledigt, die in bestimmten Fällen optim aufrufen.
Sie können das Log-Likelihood von Ihren Parametern wie folgt extrahieren:
print(params$loglik)
[1] -139.5772
Es ist häufiger mit dem Log-Likelihood zu arbeiten, anstatt Wahrscheinlichkeit Rundungsfehler zu vermeiden. Die Schätzung der gemeinsamen Wahrscheinlichkeit Ihrer Daten beinhaltet das Multiplizieren von Wahrscheinlichkeiten, die alle kleiner als 1 sind. Selbst für eine kleine Menge von Daten nähert sich die gemeinsame Wahrscheinlichkeit sehr schnell 0, und das Hinzufügen der logarithmischen Wahrscheinlichkeiten Ihrer Daten entspricht der Multiplikation der Wahrscheinlichkeiten. Die Wahrscheinlichkeit wird maximiert, wenn sich die Log-Likelihood an 0 annähert und somit mehr negative Zahlen zu Ihren Daten passen.
Mit solchen Computertools können Parameter für jede Verteilung einfach geschätzt werden. Stellen Sie sich dieses Beispiel vor:
Die exponentielle Verteilung erzeugt keine negativen Zahlen, also entfernte ich sie in der ersten Zeile.Das Ausgangssignal (die stochastischen ist) sah wie folgt aus:
[1] "fitting parameters for normal"
mean sd
0.72021836 0.54079027
(0.07647929) (0.05407903)
Length Class Mode
estimate 2 -none- numeric
sd 2 -none- numeric
n 1 -none- numeric
loglik 1 -none- numeric
[1] -40.21074
[1] "fitting parameters for exponential"
rate
1.388468
(0.196359)
Length Class Mode
estimate 1 -none- numeric
sd 1 -none- numeric
n 1 -none- numeric
loglik 1 -none- numeric
[1] -33.58996
Die exponentielle Verteilung tatsächlich etwas wahrscheinlicher diese Daten als die Normalverteilung erzeugt haben soll, wahrscheinlich weil die exponentielle Verteilung muss nicht jede Wahrscheinlichkeitsdichte zuweisen zu negativen Zahlen.
Alle diese Schätzungsprobleme werden schlechter, wenn Sie versuchen, Ihre Daten an mehrere Distributionen anzupassen. Distributionen mit mehr Parametern sind flexibler, sodass sie Ihre Daten besser als Distributionen mit weniger Parametern anpassen. Außerdem sind einige Verteilungen Sonderfälle anderer Verteilungen (z. B. ist der Exponential ein Spezialfall des Gamma). Aus diesem Grund ist es sehr üblich, Vorwissen zu verwenden, um Ihre Auswahlmodelle auf eine Untergruppe aller möglichen Modelle zu beschränken.
Ein Trick, um einige Probleme bei der Parameterschätzung zu umgehen, besteht darin, eine Menge Daten zu generieren und einige der Daten für cross-validation auszulassen. Um die Anpassung der Parameter an die Daten zu validieren, lassen Sie einige Daten aus Ihrer Schätzprozedur heraus und messen Sie dann die Wahrscheinlichkeit jedes Modells in den ausgelassenen Daten.
Sie haben es versäumt, den wichtigsten Teil Ihrer Frage zu beschreiben - was möchten Sie mit dem Modell machen? – hadley
Diese Frage wäre besser geeignet für die [stats.se] (http://stats.stackexchange.com/) – csgillespie
Eh, ich bin bereit zu erlauben, dass er nicht ansprechen muss, was er mit dem parametrischen Modell tun würde. Auch das einfache Arbeiten mit synthetischen Daten, die aus einem adäquaten parametrischen Modell generiert wurden, reicht aus, um eine solche Frage zu stellen. Der Bootstrap ist wunderbar, aber Sie müssen die Daten behalten oder versenden. – Iterator