`nls` no puede estimar los parámetros de mi modelo

Estoy tratando de estimar las constantes para la ley de los montones. Tengo el siguiente conjunto de datosnovels_colection:

  Number of novels DistinctWords WordOccurrences
1                1         13575          117795
2                1         34224          947652
3                1         40353         1146953
4                1         55392         1661664
5                1         60656         1968274

Luego construyo la siguiente función:

# Function for Heaps law
heaps <- function(K, n, B){
  K*n^B
}
heaps(2,117795,.7) #Just to test it works

Entoncesn = Word OccurrencesyK yB son valores que deberían ser constantes para encontrar mi predicción de palabras distintas.

Intenté esto pero me da un error:

fitHeaps <- nls(DistinctWords ~ heaps(K,WordOccurrences,B), 
    data = novels_collection[,2:3], 
    start = list(K = .1, B = .1), trace = T)

Error =Error in numericDeriv(form[[3L]], names(ind), env) : Missing value or an infinity produced when evaluating the model

Alguna idea de cómo podría solucionar esto o un método para ajustar la función y obtener los valores paraK yB?

Respuestas a la pregunta(2)

Su respuesta a la pregunta