(sorry i cant comment yet
0. Getting original plot
i tried to download data in r, but couldnt get to get your plot
i named data rss
tried, not good
plot(log(rss$rank)/log(rss$installs))
plot(log(rss$installs)/log(rss$rank))
working
plot(log(rss$rank), log(rss$installs))
thanks / credit at comment section
1. Data and model trying
I tried, just get data
xx=(log(rss$rank) )
yy=log(rss$installs)
zz=cbind(xx,yy) #matrix
zz2 <- zz[!is.infinite(rowSums(zz)),] #remove inf values
then trying fit linear reg. with poly function (simple curve
lii= ( lm(zz2[,2]~poly(zz2[,1] ,223, raw = TRUE) ) )
plot(zz2[,1],zz2[,2])
lines(zz2[,1],lii$fitted.values ,col="green")
Started with 1, as "better fit" .. appeared at 223
List of poly parameter value
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 158
[1] 159
[1] 161
[1] 172
[1] 174
[1] 176
[1] 178
[1] 209
[1] 223
Final graph
Last point before x=4 has bad fit, so maybe some hardcoding needed as replacement.
Anyway, this is very very bad solution done by overfitting polynoms :D, but someone maybe found it iterested.