Ich habe einige Zeitreihendaten, bei denen die Messgröße diskrete positive ganze Zahlen (Zählungen) sind. Ich möchte testen, ob es im Laufe der Zeit einen Aufwärtstrend gibt (oder nicht). Die unabhängige Variable (x) liegt im Bereich von 0 bis 500 und die abhängige Variable (y) liegt im Bereich von 0 bis 8.
Ich dachte, ich beantworte dies, indem ich eine Regression der Form unter y = floor(a*x + b)
Verwendung gewöhnlicher kleinster Quadrate (OLS) anpasse.
Wie würde ich dies mit R (oder Python) tun? Gibt es ein vorhandenes Paket dafür oder ist es besser, meinen eigenen Algorithmus zu schreiben?
PS: Ich weiß, dass dies nicht die ideale Technik ist, aber ich muss eine relativ einfache Analyse durchführen, die ich tatsächlich verstehen kann - mein Hintergrund ist Biologie, nicht Mathematik. Ich weiß, dass ich gegen Annahmen über Fehler in Messgrößen und die Unabhängigkeit von Messungen im Zeitverlauf verstoße.
quelle
Antworten:
Sie könnten das Modell, das Sie angeben, mit der Funktion
nls
(nichtlineare kleinste Quadrate) anpassenR
, aber wie Sie sagten, wird dies viele der Annahmen verletzen und wahrscheinlich immer noch nicht viel Sinn machen (Sie sagen, das vorhergesagte Ergebnis ist zufällig um einen Schritt herum Funktion, keine ganzzahligen Werte um eine reibungslos ansteigende Beziehung).Die gebräuchlichste Methode zum Anpassen von Zähldaten ist die Verwendung der Poisson-Regression mithilfe der
glm
Funktion inR
. Das erste Beispiel auf der Hilfeseite ist eine Poisson-Regression. Wenn Sie jedoch mit Statistiken nicht so vertraut sind, wenden Sie sich am besten an einen Statistiker, um dies sicherzustellen dass du die Dinge richtig machst.Wenn der Wert 8 ein absolutes Maximum ist (es ist unmöglich, jemals eine höhere Anzahl zu sehen, nicht nur das, was Sie gesehen haben), dann könnten Sie eine logistische Regression mit proportionalen Gewinnchancen in Betracht ziehen. Es gibt einige Tools, um dies in Paketen zu tun
R
, aber Sie sollte wirklich einen Statistiker einbeziehen, wenn Sie dies tun möchten.quelle
Das von Ihnen vorgeschlagene Modell kann jedoch beispielsweise auftreten, wenn Sie gerundete Daten beobachten: mit normalen Fehlern .
Ich finde es interessant, einen Blick darauf zu werfen, was damit gemacht werden kann. Ich bezeichne mit das cdf der normalen Standardvariablen. Wenn , dann Verwendung bekannter Computernotationen.F ϵ∼N(0,σ2)
Sie beobachten Datenpunkte . Die Log-Wahrscheinlichkeit ist gegeben durch Dies ist nicht identisch mit den kleinsten Quadraten. Sie können versuchen, dies mit einer numerischen Methode zu maximieren. Hier ist eine Illustration in R:(xi,yi)
In Rot und Blau werden die Linien durch numerische Maximierung dieser Wahrscheinlichkeit bzw. der kleinsten Quadrate gefunden. Die grüne Treppe ist für , ermittelt aus der maximalen Wahrscheinlichkeit ... Dies legt nahe, dass Sie die kleinsten Quadrate bis zu einer Übersetzung von um 0,5 verwenden und ungefähr das gleiche Ergebnis erzielen können. oder dass die kleinsten Quadrate gut zum Modell passen wobei die nächste ganze Zahl ist. Abgerundete Daten werden so oft getroffen, dass ich sicher bin, dass dies bekannt ist und ausgiebig untersucht wurde ...ax+b ⌊ax+b⌋ a,b b
quelle