2013-04-30 13 views
22

Istnieje wiele redundantnych, a czasem sprzecznych, sposobów określania formuł w R. Czy istnieje obszerne, ale zwięzłe odniesienie do mapowania modeli pojęciowych na składnię R. niż ?formula?Czy istnieje lepsze odniesienie dla formuł r niż formuła?

Jestem zainteresowany szerokim przeglądzie, w tym składni używanej do określenia formuły w nieliniowej i modeli hierarchicznych, takich jak glm, lmer, gam, earth, w tym (/) do gniazdowania, random i fixed efekty w mieszanych modelach i s i te dla splajnów i innych znajdujących się w popularnych pakietach.

Odpowiedz

23

R jest dostarczany z kilkoma podręcznikami, które są dostępne z menu "Pomoc" wanilii R w prawym górnym rogu podczas uruchamiania R i są również w kilku miejscach w trybie on-line.

Rozdział 11 "An Introduction to R" ma kilka stron na formułach, na przykład.

Nie wiem, że stanowi ona "kompleksowy" zasób, ale obejmuje wiele * tego, co trzeba wiedzieć o tym, jak działają formuły.

* Rzeczywiście, prawie wszystko, co może 95% użytkowników nigdy nie używać

Kanoniczna odniesienia do wzorów w języku S może być

Chambers J.M. i Hastie T. J., red. (1992), Modele statystyczne w S. Chapman & Hall, Londyn.

choć geneza podejścia pochodzi z

Wilkinson G.N. i Rogers C.E. (1973). "Symboliczny opis modeli czynnikowych do analizy wariancji." Statystyka Stosowana, , 392-399

Szereg ostatnich książek związanych z badaniami dyskutować formuły, ale nie wiem, że będę nazywać każdy z nich niepełna.

Istnieje również wiele zasobów internetowych (na przykład here) często z dużą ilością bardzo przydatnych informacji.

To powiedziawszy, gdy już zrozumiesz użycie formuł w R i dlatego masz kontekst, w którym można umieścić więcej informacji, strona pomocy zawiera zaskakującą ilość informacji (wraz z innymi stronami, do których prowadzi). Jest nieco zwięzły i tajemniczy, ale gdy już masz szerszą bazę wiedzy o konkretnym sposobie pracy R, może być całkiem przydatny.

Szczegółowe pytania dotyczące formuł R (w zależności od ich treści) mogą być w temacie albo na StackOverflow lub CrossValidated - rzeczywiście istnieją pewne dość zaawansowane kwestie odnoszące się do wzorów, jakie można znaleźć już (wykorzystanie wyszukiwań jak [r] formula potędze być owocnym) i byłoby wygodniej mieć więcej takich pytań, aby pomóc użytkownikom zmagającym się z tymi problemami; jeśli masz konkretne pytania, zachęcam cię do zapytania.

chodzi o „zbędny” i „sprzeczne” Przypuszczam, że masz na myśli takie rzeczy jak na fakt, że istnieje więcej niż jeden sposób, aby określić model bez wyrazu: y ~ . -1 i y ~ . +0 zarówno pracę, na przykład, ale w nieco inny konteksty mają sens.

Ponadto istnieje typowy błąd związany z koniecznością izolowania wyrażeń kwadratowych i wyższego rzędu z interfejsu formuły (aby użyć I(x^2) jako predyktora, więc jest on przekazywany przez interfejs formuły bez szwanku i zachowuje się wystarczająco daleko, aby można go było interpretować jako wyrażenie algebraiczne). Ponownie, gdy uzyskasz obraz tego, co dzieje się "za kulisami", które wydaje się znacznie mniej uciążliwe.

Konkretne przykłady rzeczy, po prostu wymienić:

lm(dist ~ . -1, data=cars) # "remove-intercept-term" form of no-intercept 
lm(dist ~ . +0, data=cars) # "make-intercept-zero" form of no-intercept 
lm(dist ~ speed + speed^2, data=cars) # doesn't do what we want here 
lm(dist ~ speed + I(speed^2), data=cars) # gets us a quadratic term 
lm(dist ~ poly(speed,2), data=cars) # avoid potential multicollinearity 

zgadzam się, że interfejs formuła może przynajmniej użyć trochę dalszych wskazówek i lepszych przykładów w pomocy ?formula.

+0

Dziękuję bardzo za pomocną odpowiedź. Interesuje mnie szerszy przegląd, był zainteresowany specyfikacją zmiennych zagnieżdżonych oraz efektów stałych i losowych. I czy nie są równoważne 'x + I (x^2)' i 'poly (x, 2)'? Twoja odpowiedź sugeruje inaczej. Inne interesujące aspekty obejmują określanie funkcji spline w funkcjach takich jak 'gam' (np. Z' s' i 'te'). – Abe

+0

W odniesieniu do drugiego do ostatniego akapitu (o budzie) użycie "I" nie jest ograniczone do określenia terminów wielomianowych - wymagane jest również określenie innych transformacji zmiennych (w tym addytywnej, multiplikatywnej, logarytmicznej, wykładniczej). – Abe

+0

Poprawne dla dodatku i multiplikatywnego, ponieważ mają znaczenie dla interfejsu formuły. ale 'lm (dist ~ log (prędkość), dane = samochody)' działa tak, jak powinien. –

Powiązane problemy