Jakie są kluczowe komponenty i funkcje dla obiektów modelu standardowego W R?

Zaimplementowałem nowy model statystyczny w R i działa on w mojej piaskownicy, ale chciałbym uczynić go bardziej standardowym. Dobrym porównaniem jest lm(), Gdzie mogę wziąć obiekt modelu i:

  • zastosuj funkcję summary()
  • wyodrębnij współczynniki modelu
  • wyodrębnij pozostałości z danych dopasowanych (treningowych)
  • zaktualizuj model
  • zastosuj funkcję predict()
  • Zastosuj plot() do wstępnie wybranych Wykresów opisowych
  • angażować się w wiele innych rodzajów of joy

Przejrzałem podręczniki R, przeszukałem online i przejrzałem kilka książek i, o ile czegoś nie przeoczyłem, nie mogę znaleźć dobrego samouczka na temat tego, co powinno znaleźć się w nowym pakiecie modelu.

Chociaż najbardziej interesują mnie dokładne referencje lub przewodniki, będę trzymał ten post skupiony na pytaniu z dwoma komponentami:

  1. jakie są kluczowe komponenty, które zwykle powinny znajdować się w obiekcie modelu?
  2. jakie są typowe funkcje, które są zazwyczaj realizowane w pakiecie modelowania?

Odpowiedzi mogą być z perspektywy rdzenia R (lub twórców pakietów) lub z perspektywy użytkowników, np. użytkownicy oczekują, że będą mogli korzystać z funkcji takich jak podsumowanie, predict, residuals, coefficients i często oczekują, że podczas dopasowywania modelu zdadzą wzór.

Author: Gavin Simpson, 2011-07-27

4 answers

Umieść w obiekcie to, co uważasz za przydatne i konieczne. Myślę, że ważniejszym pytaniem jest to, jak włączyć te informacje, jak można uzyskać do nich dostęp.

Co najmniej podaj metodę print(), aby cały obiekt nie został zrzucony na ekran podczas drukowania obiektu. Jeśli podasz metodę summary(), konwencja jest taka, że obiekt zwraca obiekt klasy summary.foo (Gdzie foo jest twoją klasą), A następnie podaj metodę print.summary.foo() - - - nie chcesz, aby twój summary() metoda wykonująca dowolny nadruk sam w sobie.

Jeśli masz współczynniki, dopasowane wartości i pozostałości i są one proste, możesz je zapisać w zwracanym obiekcie jako $coefficients, $fitted.values i $residuals odpowiednio. Wtedy domyślne metody dla coef(), fitted() i resid() będzie działać bez konieczności dodawania własnych metod szytych na miarę. Jeśli nie są one proste, podaj własne metody coef(), fitted.values() i residuals() dla twojej klasy. Przez nie proste, mam na myśli, na przykład, jeśli istnieje kilka typy rezydualne i musisz przetworzyć przechowywane pozostałości, aby uzyskać żądany typ - - - następnie potrzebujesz własnej metody, która pobiera argument type lub podobny, aby wybrać z dostępnych typów rezydualnych. Zobacz ?residuals.glm dla przykładu.

Jeśli przewidywania są czymś, co może być użytecznie dostarczone, to predict() metoda może być dostarczona. Spójrz na przykład na metodę predict.lm(), aby zobaczyć, jakie argumenty powinny być brane. Podobnie, można podać update(), jeśli ma to sens, aby zaktualizować model poprzez dodanie / usunięcie terminów lub zmianę parametrów modelu.

plot.lm() podaje przykład metody, która zapewnia kilka wykresów diagnostycznych dopasowanego modelu. Możesz modelować metodę na tej funkcji, aby wybrać z zestawu predefiniowanych Wykresów diagnostycznych.

Jeśli twój model ma Prawdopodobieństwo, to dostarczenie metody logLik() do obliczenia lub wyodrębnienia go z dopasowanego obiektu modelu byłoby standardem, deviance() jest inną podobną funkcją, jeśli taka rzecz jest istotna. Dla pewności siebie interwały na parametrach, confint() jest standardową metodą.

Jeśli masz interfejs formuły, to formula() metody mogą go wyodrębnić. Jeśli przechowasz go w miejscu, którego szuka domyślna metoda, twoje życie będzie łatwiejsze. Prostym sposobem przechowywania tego jest przechowywanie dopasowanego wywołania (match.call()) w komponencie $call. Metody wyodrębniania ramki modelu (model.frame()) i macierzy Modelu (model.matrix()), które są danymi i rozszerzonymi (współczynniki konwertowane na zmienne za pomocą kontrastów, plus dowolne transformacje lub funkcje danych ramki modelu) macierz modelu są standardowymi funkcjami ekstrakcyjnymi. Spójrz na przykłady ze standardowych funkcji modelowania R, aby znaleźć pomysły na to, jak przechowywać/wydobywać te informacje.

Jeśli używasz interfejsu formuły, spróbuj zastosować standardową, niestandardową metodę oceny używaną w większości obiektów modelu R, które mają interfejs/metodę formuły. Szczegóły znajdziesz na stronie R Developer , w szczególności w dokumencie autorstwa Tomasza Lumley. Daje to wiele porad na temat podejmowania funkcji pracy jak jeden oczekuje funkcji modelowania R do pracy.

Jeśli stosujesz ten paradygmat, to ekstraktory takie jak {[29] } powinny po prostu działać, jeśli stosujesz standardowe (niestandardowe) reguły.

 28
Author: Gavin Simpson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-27 19:46:29

Podążając za odpowiedzią Gavina, znalazłem tę stronę , również na stronie dewelopera, z długą listą przydatnych sugestii.

Również "an R Companion to Applied Regression", autorstwa Foxa i Weisberga, zawiera omówienie niektórych kluczowych metod w rozdziale 8. Znalazłem to, szukając wzmianek o modelowych ramkach w różnych książkach R. Ta książka ma również odniesienie do tej samej strony na stronie dewelopera R.

 5
Author: Iterator,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-04 06:52:32

To może być kolejnym dobrym źródłem.

 2
Author: MYaseen208,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-28 03:31:56

Następujący kod:

library(hints)
hints(class="lm")

Dostarczy wszystkie funkcje dla lm jako:

Functions for lm in package ‘base’:

kappa                   Compute or Estimate the Condition Number of a
                        Matrix
base-defunct            Defunct Functions in Package 'base'
rcond                   Compute or Estimate the Condition Number of a
                        Matrix

Functions for lm in package ‘gam’:

deviance.lm             Service functions and as yet undocumented
                        functions for the gam library

Functions for lm in package ‘gdata’:

nobs                    Compute the Number of Non-missing Observations

Functions for lm in package ‘methods’:

setOldClass             Register Old-Style (S3) Classes and Inheritance

Functions for lm in package ‘stats’:

add1                    Add or Drop All Possible Single Terms to a
                        Model
alias                   Find Aliases (Dependencies) in a Model
anova.lm                ANOVA for Linear Model Fits
case.names.lm           Case and Variable Names of Fitted Models
cooks.distance.lm       Regression Deletion Diagnostics
dfbeta.lm               Regression Deletion Diagnostics
dfbetas.lm              Regression Deletion Diagnostics
drop1.lm                Add or Drop All Possible Single Terms to a
                        Model
dummy.coef.lm           Extract Coefficients in Original Coding
effects                 Effects from Fitted Model
family.lm               Accessing Linear Model Fits
formula.lm              Accessing Linear Model Fits
hatvalues.lm            Regression Deletion Diagnostics
influence.lm            Regression Diagnostics
labels.lm               Accessing Linear Model Fits
logLik                  Extract Log-Likelihood
model.frame.lm          Extracting the Model Frame from a Formula or
                        Fit
model.matrix.lm         Construct Design Matrices
plot.lm                 Plot Diagnostics for an lm Object
print.lm                Fitting Linear Models
proj                    Projections of Models
residuals.lm            Accessing Linear Model Fits
rstandard.lm            Regression Deletion Diagnostics
rstudent.lm             Regression Deletion Diagnostics
summary.lm              Summarizing Linear Model Fits
variable.names.lm       Case and Variable Names of Fitted Models
vcov                    Calculate Variance-Covariance Matrix for a
                        Fitted Model Object
case.names              Case and Variable Names of Fitted Models
dummy.coef              Extract Coefficients in Original Coding
influence.measures      Regression Deletion Diagnostics
lm.influence            Regression Diagnostics
lm                      Fitting Linear Models
lm.fit                  Fitter Functions for Linear Models
model.frame             Extracting the Model Frame from a Formula or
                        Fit
model.matrix            Construct Design Matrices
stats-defunct           Defunct Functions in Package 'stats'
lm.glm                  Some linear and generalized linear modelling
                        examples from `An Introduction to Statistical
                        Modelling' by Annette Dobson

Functions for lm in package ‘unknown’:

confint.lm              NA
extractAIC.lm           NA
qr.lm                   NA
simulate.lm             NA

Functions for lm in package ‘VGAM’:

predict.lm              Undocumented and Internally Used Functions and
                        Classes

Functions for lm in package ‘xtable’:

xtable                  Create Export Tables
 1
Author: MYaseen208,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-24 16:32:23