ユーザーあたりの平均収益 (ARPU)、マージン、および顧客が顧客であり続ける年数 (ltvYears) に基づいて、顧客の生涯価値 (LTV) をシミュレートする簡単なスクリプトを作成しました。以下は私のスクリプトです。この行「ltvYears = ltvYears + [ltv_loop]」でエラーをスローします。エラー メッセージは、「TypeError: タプル (「リスト」ではなく) をタプルに連結することしかできません」です。誰かがこれを引き起こしていることを教えてもらえますか? この問題は、"ltvYears = ('f',[])" に起因する可能性があると思われます。型コードを追加して、別のエラー (float と int の乗算) を排除しました。
私は Python を初めて使用するので、このコードには初歩的なミスがある可能性が非常に高いです。
lowYears = 0
highYears = 20
modeYears = 3
ARPU = 65.0*12.0
MARGIN = .30
ltvYears = ('f',[])
ltv = []
def ltv(arpu, years, margin):
return arpu * years * margin
N = 10000
for n in range(N):
#estimate LTV
ltv_loop = random.triangular(lowYears, highYears, modeYears)
ltvYears = ltvYears + [ltv_loop]
ltv = ltv + [ltv(ARPU, ltvYears, MARGIN)]
show = 0
if (show==1):
#plot ltv histogram
plt.hist(ltv,bins=10)
plt.title("LTV Probability Density")
plt.xlabel("")
plt.ylabel("$")
plt.show()
編集 - これは私の変数のスクリーンショットです。
EDIT2 ---以下のヘルプのおかげで解決策を見つけました。全部で 3 つの問題がありました。
- 誤って同じ名前を変数と関数に割り当てました (指摘のために +1 @autopopulated を付けました)
- この行は無関係でした "ltvYears = ltvYears + [ltv_loop]"
- この行は、2 番目の引数「ltv = ltv + [calculateltv(ARPU, ltv_loop, MARGIN)]」に「ltv_loop」を使用する必要があります。
+1 @DonCallisto と @RikPoggi でアイテム 2 と 3 のヘルプ