7 votos

¿por qué R rlm {masa} vuelve diferentes coeficientes casi cada vez que se llama?

Me estoy dado cuenta que el rlm {MASS} devuelve casi todos coeficientes diferentes de tiempo, aunque estoy usando los mismos parámetros y el mismo conjunto de datos

Te estoy llamando:

model <- rlm(price ~ ., data = data[,-1], weights = weights,
             maxit = 1000000, init = "lts", method = "MM",
             psi=psi.huber, acc=0.00001, scale.est="proposal 2", cor = T)

resultados:

Intercept)  livingArea        area    discrete       dummy 
 -570.621795   17.169323    2.275109   46.002527  143.812900 

(Intercept)  livingArea        area    discrete       dummy 
 -581.893552   16.828956    3.912192   48.253955  180.875439 

(Intercept)  livingArea        area    discrete       dummy 
 -303.488284   16.747009    2.928579   26.951809  -14.795652 

Estos son los tres resultados más frecuentes.

¿Alguien me podría explicar por qué comporta el rlm como esta?

Nota: soy soy un principiante en el campo de la estadística.

9voto

Patrick Puntos 183

Debido a que el algoritmo que usted elija para calcular los valores iniciales (init) (a partir de la cual la segunda etapa del algoritmo, es decir, el MM pasos, inicio).

Configuración de init=lts utiliza los coeficientes equipado por el FastLTS algoritmo como puntos de partida de la MM de iteraciones. El FastLTS algoritmo a su vez utiliza muchos aleatoria de puntos de partida para sí es aleatorio. A menos que fijar la semilla argumento, obtendrá diferentes soluciones (que es como debe ser!).

library(MASS)
model1 <- rlm(stack.loss ~ ., data = stackloss,maxit = 1000000, init = "lts",seed=1, method = "MM", psi=psi.huber, acc=0.00001, scale.est="proposal 2", cor = T)
model2 <- rlm(stack.loss ~ ., data = stackloss,maxit = 1000000, init = "lts",seed=1, method = "MM", psi=psi.huber, acc=0.00001, scale.est="proposal 2", cor = T)
model1$coef-model2$coef

Configuración de method = "MM" sin establecer init utiliza el coeficiente de equipado por los Ayunos algoritmo como puntos de partida de la MM de iteraciones (fuente). Los Ayunos algoritmo a su vez utiliza muchos aleatoria de puntos de partida para sí es aleatorio. A menos que fijar la semilla argumento, obtendrá diferentes soluciones (que es como debe ser!).

library(MASS)
model1 <- rlm(stack.loss ~ ., data = stackloss,maxit = 1000000, seed=1, method = "MM", psi=psi.huber, acc=0.00001, scale.est="proposal 2", cor = T)
model2 <- rlm(stack.loss ~ ., data = stackloss,maxit = 1000000, seed=1, method = "MM", psi=psi.huber, acc=0.00001, scale.est="proposal 2", cor = T)
model1$coef-model2$coef

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X