資料分析 留存率曲線擬合

2021-07-29 07:40:05 字數 1681 閱讀 7583

留存率,在資料分析中,我認為是乙個比較好用的指標,因為比較穩定,不會很容易受外界因素的干擾,大幅波動。例如活動,推廣等。可以用來做使用者的分類,做使用者規模**。

我們看到的留存曲線通常是這樣的:

這裡介紹幾種留存率曲線擬合的方法:

1.用excel 擬合:

擬合樣本,1日~12日留存率,畫好曲線圖後,為曲線圖新增趨勢線,選擇對數或者冪函式(通常對數比較多),顯示公式和r平方值,r平方值越接近1,說明擬合效果越好。

如下圖,藍色曲線為真實值,擬合的橙色點線和真實值還是有差異,但效果還是不錯的。

y=-0.055ln(x)+0.6382, r平方=0.9894

2.spss擬合

操作:r1: [1,2,3,...,12], r2 為對應的12個留存率,選擇: 分析-回歸-曲線估計,因變數=r2,自變數-變數=r1, 模型=對數, 儲存:選**值,殘差,**區間 - 確定 即可。

y=-0.61ln(x)+0.630 , r平方=0.975

3.python擬合:

#coding:utf-8

import numpy as np

from scipy.optimize import leastsq

import pylab as pl

import math

#定義函式

#y= a*ln(x)+b

def func(x,p):

a,b=p

return a*np.log(x)+b

#定義殘差函式

def residuals(p,y,x):

ret=y-func(x,p)

return ret

x3=np.linspace(0,30,1000) #用於畫圖精度的調節

x0=[1,2,3,4,5,6,7,8,9,10,11,12] #x變數, 在這裡2,3,7全部減1

x2=np.array(x0) #向量化x變數

y0=[0.64,0.60,0.58,0.56,0.56,0.55,0.54,0.52,0.52,0.50,0.50,0.50] #y

y2=np.array(y0)#向量化

p0=[0.5,0.5]#取值起始點

qs=leastsq(residuals,p0,args=(y2,x2)) #最小二乘法

print qs[0] #為最佳的擬合函式引數

pl.plot(x0,y0,label='real',color='red') #畫出實際影象

pl.plot(x3,func(x3,qs[0]),label='sim',color='blue') #**影象

如下圖:

4.以上幾種方式 得出的結果略有差異,不過都是可以接受的。

python資料分析之曲線擬合(3) 指數函式擬合

指數形式的曲線也是工程實踐中經常遇到的。比如指數衰減。獲取實驗資料x,y 利用scipy.optimize.curve fit 進行指數函式擬合。curve fit本質是提供乙個目標函式和初值,通過優化演算法去搜尋出最佳的擬合引數。可以提供乙個初值,使得擬合更快更準。得到擬合出的係數,進行後續的資料...

小白學資料分析 留存率是什麼?

篇外話 前段時間比較忙碌,小白系列也因此停了一段時間,這期間做了不少分析,發現和總結了不少經驗,自己覺得還是很有用,不過倒都是一些基礎的東西。最近很多人都在問一些基礎術語和計算方式,我懂得不多,在此也想分享一下。留存率顧名思義,就是留下來存在的比率。從時間上我們分為次日 三日 七日 14日 30日 ...

MATLAB資料插值和曲線擬合

在工程測量和科學實驗中,所得到的資料通常是離散的。如果要得到這些離散點以外的其他點的數值,就需要根據這些已知資料進行插值。根據被插值函式的自變數個數,插值問題分為一維插值 二維插值和多維插值等 根據是用分段直線 多項式或樣條函式來作為插值函式,插值問題又分為線性插值 多項式插值和樣條插值等。如果被插...