Wie kann man mit zirkulären Kovariaten umgehen (z. B. mit einem GAM)?

8

Ich baue ein Modell, in dem mehrere meiner Kovariaten auf einem "Kreis" leben, in dem Sinne, dass sie Werte im Intervall [0,1] annehmen und 0 = 1. Ich wundere mich über Techniken, um mit dieser Situation umzugehen. Eine Idee besteht darin, eine kreisförmige Variable Theta als ein Paar von Variablen (sin (Theta), cos (Theta)) darzustellen. Irgendwelche Gedanken zu diesem Ansatz oder besseren Ansätzen?

Ich verwende speziell die GAMs des mgcv-Pakets. Gibt es eine Möglichkeit, dem Modell mitzuteilen, dass bestimmte additive Teile an den Endpunkten dieselben Werte haben sollten? Noch ein Paket?

Vielen Dank!

DavidR
quelle
2
Ich habe bisher nur Sinus und Cosinus gesehen, wie Sie erwähnt haben. Hier ist eine weitere Frage auf der Website, die eine ähnliche Frage stellt: Logistische Regression mit Richtungsdaten wie IV . In dieser Frage zu SO hat Iterator einen Kommentar, der auf ein circularPaket verweist, das möglicherweise von Interesse sein könnte. Hoffentlich erhalten Sie bessere Antworten.
Andy W
2
@Andy Sinus und Cosinus sind weder die einzige noch die einzige orthogonale Basis für die (quadratisch integrierbaren) periodischen Funktionen. Einer ihrer Vorzüge ist, dass die physikalische Theorie sie oft in Beziehungen zu anderen Variablen einbezieht. Dies legt nahe, dass wir uns akut für die hypothetische oder erwartete Beziehung zwischen dem DV und diesen Kovariaten interessieren sollten. DavidR, was kannst du uns darüber erzählen?
whuber
Ich versuche, einen periodischen zeitlichen Prozess zu modellieren. Meine ursprünglichen Daten sind Datum und Uhrzeit von Ereignissen, und ich möchte die Rate dieser Ereignisse über die Zeit modellieren. Ich gehe davon aus, dass es für den Anfang Periodizität in Bezug auf Tageszeit, Wochentag und Jahreszeit geben wird. Dies sind die offensichtlichen zirkulären Variablen. Ich beginne mit einem Poisson-GAM. Ich bin daran interessiert, die Auswirkungen dieser einzelnen Faktoren separat zu untersuchen und Ratenvorhersagen für zukünftige Zeiten zu treffen.
DavidR

Antworten:

6

Es gibt zwei Möglichkeiten, mit zirkulären Variablen umzugehen. Eine hackige Methode wäre, Ihren Datensatz auf beiden Seiten der Randbedingungen manuell zu duplizieren. Die elegantere Lösung wäre meiner Meinung nach die Verwendung der integrierten Spline-Basisfunktionen mit periodischen Randbedingungen !

Zum Beispiel:

bs="cc"Gibt einen zyklischen kubischen Regressionsspline an (siehe cyclic.cubic.spline). dh ein bestrafter kubischer Regressionsspline, dessen Enden bis zur zweiten Ableitung übereinstimmen.

Splines auf der Kugel

bs="sos". Dies sind zweidimensionale Splines auf einer Kugel. Argumente sind Breiten- und Längengrade und sie sind das Analogon dünner Plattenkeile für die Kugel. Nützlich für Daten, die über einen großen Teil der Welt abgetastet werden, wenn Isotropie angemessen ist. Siehe Spherical.Splinefür Details.

bs="cp" gibt eine zyklische Version eines P-Splines an

Markus Loecher
quelle
Das klingt super! Ich werde es versuchen. Ich hatte über die Hacky-Methode nachgedacht, aber da ich mehrere zirkuläre Variablen habe, dachte ich, ich müsste eine große Anzahl doppelter Datenpunkte erstellen, um all die verschiedenen Symmetrien im Problem anzuzeigen.
DavidR
@DavidR Ich hatte gute Erfolge mit kreisförmigen kubischen Splines für niederfrequente Phänomene. Sie benötigen genug, um die höchste Frequenz darzustellen, die Sie modellieren möchten. Das schließt die stündlichen und täglichen Perioden aus, könnte aber für die Saisonalität gut funktionieren. Für die beiden ersteren schlägt Sparsamkeit vor, mit einer kleinen Basis wie Sinus und Cosinus für jede erwartete Frequenz zu beginnen.
whuber
@whuber, ich denke du hast DavidRs Modellierungsansatz falsch verstanden. David verwendet separate Variablen für Stunde, Wochentag usw. Daher würde er für jeden einen separaten Spline anwenden. (Würde Ihre Gedanken begrüßen, wenn ich etwas Ähnliches mache)
seanv507
Whuber, ich stimme Ihrem Standpunkt zu, dass z. B. das Modellieren von schwereren Einkäufen im Dezember einen hohen Auftragsspline für variable Monate erfordern würde.
Seanv507
0

Vielleicht möchten Sie sich Gill und Hangartner (2010) ansehen . Zirkuläre Daten in der Politikwissenschaft und wie man damit umgeht . Sie sprechen über verschiedene Modelle für Rund- / Uhr- / Saisondaten, und Jeff Gill liefert R-Code für das Papier, in dem Sie nach Inspiration suchen können. Es sollte eine Präsentationsversion dieses Materials geben, die die Methodik und den R-Code miteinander verwebt.

StasK
quelle
Vielen Dank für diesen Hinweis in die Literatur zu Zirkeldaten. Es scheint ein guter Ausgangspunkt zu sein. Ich habe diesen Artikel schnell überflogen, und es scheint sich eher um zirkuläre Antworten als um zirkuläre Kovariaten zu handeln.
DavidR