es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Resolver ecuaciones con datatable en R

Estoy trabajando con un conjunto de datos grande en R utilizando data table. Necesito resolver una ecuación y encontrar el valor de x en la expresión:

data[,mean(pnorm(qnorm(var1)+x))]= 0.07

He intentado usar la función optimx con el siguiente código:

library(optimx)
fnToFindRoot = function(x) {
  data[,mean(pnorm(qnorm(var1)+x))]
}

rootSearch = optimx(0.07, fnToFindRoot)
str(rootSearch)
fnToFindRoot(rootSearch$par)

Pero el resultado obtenido no es correcto. ¿Alguien puede ayudarme a resolver esta ecuación?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    No está claro qué representa la variable “var1” en la ecuación proporcionada. Sin información adicional sobre los datos y la ecuación, es difícil sugerir un método apropiado para resolver el valor de x.

    Sin embargo, uno de los problemas con el código proporcionado es que se utiliza la función “optimx” para minimizar una función que no devuelve un valor escalar. La función “mean” devuelve un vector de longitud 1, pero la función “optimx” espera que la función de entrada devuelva un valor escalar.

    Un enfoque posible es reescribir la ecuación como una función de x que devuelve un valor escalar:

    fnToFindRoot = function(x) {
      mean(pnorm(qnorm(var1) + x)) - 0.07
    }
    

    El objetivo es encontrar el valor de x que haga que la salida de esta función sea igual a cero. La función “optimize” se puede utilizar para encontrar esta raíz:

    rootSearch = optimize(fnToFindRoot, c(-10, 10))
    rootSearch$minimum
    

    La función “optimize” busca la raíz de la función de entrada dentro del rango especificado de valores de x (-10 a 10 en este caso). La salida de la función es una lista que contiene el valor de la raíz en el campo “minimum”.

    Tenga en cuenta que la función “optimize” asume que la función de entrada es continua y tiene una única raíz dentro del rango especificado. Si la función tiene múltiples raíces o es discontinua, pueden ser necesarios métodos adicionales para encontrar la raíz correcta de la ecuación.

Comments are closed.