varias superponer studio modificar lineas graficos graficas ejes r statistics modeling

studio - superponer graficas en r



¿Cuáles son los componentes y funciones clave para los objetos del modelo estándar en R? (4)

El siguiente código:

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

proporcionará todas las funciones para lm como:

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

He implementado un nuevo modelo estadístico en R y funciona en mi caja de arena, pero me gustaría hacerlo más estándar. Una buena comparación es lm() , donde puedo tomar un objeto modelo y:

  • aplicar la función de summary()
  • extraer los coeficientes del modelo
  • extraer los residuos de los datos ajustados (entrenamiento)
  • actualizar el modelo
  • aplicar la función de predict()
  • aplicar el plot() a los gráficos descriptivos preseleccionados
  • participar en muchos otros tipos de alegría

Busqué en los manuales de R, busqué en línea y hojeé varios libros y, a menos que esté pasando por alto algo, no puedo encontrar un buen tutorial sobre lo que debería incluir un nuevo modelo de paquete.

Aunque estoy más interesado en referencias o guías completas, mantendré esta publicación centrada en una pregunta con dos componentes:

  1. ¿Cuáles son los componentes clave que normalmente se espera que estén en un objeto modelo?
  2. ¿Cuáles son las funciones típicas que normalmente se implementan en un paquete de modelado?

Las respuestas pueden ser desde la perspectiva de R Core (o de los desarrolladores de paquetes) o desde la perspectiva de los usuarios, por ejemplo, los usuarios esperan poder usar funciones como resumen, predicción, residuos, coeficientes y, a menudo, esperan aprobar una fórmula al ajustar un modelo.


Pon en el objeto lo que creas que es útil y necesario. Creo que una pregunta más importante es cómo incluir esta información, así como cómo se accede a ella.

Como mínimo, proporcione un método print() para que el objeto completo no se descargue en la pantalla cuando imprima el objeto. Si proporciona un método summary() , la convención es que ese objeto devuelva un objeto de la clase summary.foo (donde foo es su clase) y luego proporcione un método print.summary.foo() --- no lo hace desea que su método de summary() realice cualquier impresión en sí mismo.

Si tiene coeficientes, valores ajustados y residuales y estos son simples, entonces puede almacenarlos en su objeto devuelto como $coefficients , $fitted.values y $residuals respectivamente. Entonces, los métodos predeterminados para coef() , fitted() y resid() funcionarán sin que tenga que agregar sus propios métodos a medida. Si estos no son simples, entonces proporcione sus propios métodos para coef() , fitted.values() y residuals() para su clase. Por no simple, quiero decir, por ejemplo, si hay varios tipos de residuos y necesita procesar los residuos almacenados para obtener el tipo solicitado --- entonces necesita su propio método que toma un argumento de type o similar para seleccionar Tipos de residuos disponibles. Vea ?residuals.glm para un ejemplo.

Si las predicciones son algo que se puede proporcionar de manera útil, entonces se podría proporcionar un método predict() . Mire el método predict.lm() , por ejemplo, para ver qué argumentos deben tomarse. Del mismo modo, se puede proporcionar una update() si tiene sentido actualizar el modelo agregando / eliminando términos o modificando los parámetros del modelo.

plot.lm() proporciona un ejemplo de un método que proporciona varios gráficos de diagnóstico del modelo ajustado. Podría modelar su método en esa función para seleccionar de un conjunto de gráficos de diagnóstico predefinidos.

Si su modelo tiene una probabilidad, entonces el suministro de un método logLik() para computarlo o extraerlo del objeto modelo ajustado sería estándar, deviance() es otra función similar si tal cosa es pertinente. Para los intervalos de confianza en los parámetros, confint() es el método estándar.

Si tiene una interfaz de fórmula, entonces los métodos formula() pueden extraerla. Si lo almacena en un lugar que busque el método predeterminado, su vida se hará más fácil. Una forma sencilla de almacenar esto es almacenar la llamada coincidente ( match.call() ) en el componente $call . Métodos para extraer el marco del modelo ( model.frame() ) y la matriz del modelo ( model.matrix() ) que son los datos y la expansión (factores convertidos en variables mediante contrastes, más cualquier transformación o función del modelo de datos del marco) Las matrices son funciones extractoras estándar. Mire los ejemplos de las funciones de modelado de R estándar para obtener ideas sobre cómo almacenar / extraer esta información.

Si utiliza una interfaz de fórmula, intente seguir el método de evaluación estándar no estándar que se utiliza en la mayoría de los objetos del modelo R que tienen una interfaz / método de fórmula. Puede encontrar detalles de eso en la página R Developer , en particular el document de Thomas Lumley. Esto proporciona muchos consejos para hacer que su función funcione, ya que se espera que una función de modelado R funcione.

Si sigue este paradigma, entonces los extractores como na.action() solo deberían funcionar si sigue las reglas estándar (no estándar).


Siguiendo la respuesta de Gavin, encontré esta página , también en el sitio del desarrollador, con una larga lista de sugerencias útiles.

Además, "An R Companion to Applied Regression", de Fox y Weisberg, describe algunos de los métodos clave, en el Capítulo 8. Descubrí que al buscar menciones de marcos de modelos en varios libros de R. Este libro también tiene una referencia a la misma página en el sitio del desarrollador de R.


This podría ser otra buena fuente.