色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專(zhuān)欄

          EEPW首頁(yè) > 博客 > 騰訊數(shù)據(jù)科學(xué)家手把手教你做用戶(hù)行為分析(案例:出行選擇)

          騰訊數(shù)據(jù)科學(xué)家手把手教你做用戶(hù)行為分析(案例:出行選擇)

          發(fā)布人:數(shù)據(jù)派THU 時(shí)間:2021-07-16 來(lái)源:工程師 發(fā)布文章

          來(lái)源:大數(shù)據(jù)DT

          [ 導(dǎo)讀 ]生活中的選擇行為無(wú)處不在,數(shù)據(jù)分析師面對(duì)的商業(yè)場(chǎng)景也存在大量的用戶(hù)選擇問(wèn)題。系統(tǒng)、科學(xué)地研究用戶(hù)選擇問(wèn)題,得到選擇行為背后的客觀(guān)規(guī)律并基于這些規(guī)律提出業(yè)務(wù)優(yōu)化策略,這些能力對(duì)于數(shù)據(jù)分析師非常重要且極具價(jià)值。

          01 引子:以出行為例剖析選擇行為的具體邏輯

          下面以選擇出行方式為例,剖析選擇行為的具體邏輯,為后面的學(xué)習(xí)做好鋪墊。

          1. 出行選擇的場(chǎng)景還原

          出行就是“在某時(shí)從A點(diǎn)到達(dá)B點(diǎn)”,這一行為主要面臨的選擇是“以什么方式前往”,回想一下我們平時(shí)做出行選擇時(shí),是否有如下參考信息浮現(xiàn)在腦海。

          • 可以選擇的交通方式有哪些?

          • 同程的人多不多?

          • 需要在什么時(shí)間到達(dá)?

          • 出行預(yù)算是多少?

          • 公共交通的便捷程度?

          • 出行方式是否受天氣影響?

          通常,我們會(huì)帶著這些疑問(wèn)打開(kāi)出行類(lèi)App看看各類(lèi)交通方式的花費(fèi)、耗時(shí)及路線(xiàn),可能還會(huì)打開(kāi)天氣App看看未來(lái)一段時(shí)間是否下雨、是否有嚴(yán)重的霧霾,如圖1-1所示。

          1.png

          ▲圖1-1 打開(kāi)App查看出行路線(xiàn)和天氣

          2. 出行選擇的決策邏輯

          接下來(lái),我們通過(guò)一個(gè)更加具體的案例說(shuō)明出行選擇的決策邏輯:有200個(gè)家庭要進(jìn)行家庭旅行,每個(gè)家庭的情況不同(包括出行人數(shù)、目的地、家庭年收入等),每個(gè)家庭都會(huì)在飛機(jī)、火車(chē)、長(zhǎng)途巴士及自駕車(chē)中選擇一種作為出行方式。

          不同的家庭會(huì)有不同的選擇,在選擇的表象下有著相似的決策邏輯。我們嘗試置身于這個(gè)場(chǎng)景中,在大腦里構(gòu)建一張類(lèi)似圖1-2的打分表。

          出行方式的屬性可以主要?dú)w結(jié)為行程外(等車(chē))耗時(shí)、行程中耗時(shí)、行程花費(fèi)、舒適性等,確定這些出行方式的屬性后,再結(jié)合自身屬性(家庭收入、出行人數(shù)等),對(duì)每個(gè)選項(xiàng)進(jìn)行定性/定量的排序,得到最適合自己的選擇結(jié)果。

          2.png

          ▲圖1-2 旅行出行方式打分表

          在選擇的過(guò)程中,如果某個(gè)因素發(fā)生變化,就有可能對(duì)選擇結(jié)果產(chǎn)生影響。例如:其他因素保持不變,由于航空公司促銷(xiāo),機(jī)****價(jià)格比火車(chē)****還便宜,你的選擇是不是會(huì)從火車(chē)改為飛機(jī)呢?再假設(shè),臨行前你收獲一筆超過(guò)預(yù)期的獎(jiǎng)金,可支配的現(xiàn)金增多,是不是也會(huì)從火車(chē)改為飛機(jī)呢?

          回憶一下我們生活中其他方面的選擇,其實(shí)也秉持類(lèi)似的方式。經(jīng)濟(jì)學(xué)家、心理學(xué)家經(jīng)過(guò)長(zhǎng)期研究,發(fā)現(xiàn)人類(lèi)個(gè)體間的“選擇之道”存在較高相似性,對(duì)這些相似性加以總結(jié)就形成了一系列選擇行為的經(jīng)濟(jì)學(xué)理論。

          這些長(zhǎng)期沉淀下來(lái)的理論對(duì)于數(shù)據(jù)分析師來(lái)說(shuō)是非常有價(jià)值的,它不僅能幫助我們從本質(zhì)上理解相關(guān)計(jì)量選擇模型的原理,還能在對(duì)業(yè)務(wù)方進(jìn)行分析闡述時(shí)有理論背書(shū),下面我們開(kāi)始學(xué)習(xí)選擇行為的經(jīng)濟(jì)學(xué)理論。

          02 選擇行為的經(jīng)濟(jì)學(xué)理論

          選擇行為主要有兩個(gè)經(jīng)濟(jì)學(xué)派別,分別是理性人選擇和行為經(jīng)濟(jì)學(xué)。盡管行為經(jīng)濟(jì)學(xué)在某些方面對(duì)理性人選擇提出了挑戰(zhàn),但理性人選擇仍然是群體選擇行為分析的主流理論框架。本文后續(xù)內(nèi)容均基于理性人選擇。

          1. 理性人選擇理論

          理性人選擇是指經(jīng)濟(jì)決策的主體是充滿(mǎn)理智的,他們對(duì)于所處環(huán)境具有完備的知識(shí),能夠找到實(shí)現(xiàn)目標(biāo)的所有備選方案,有穩(wěn)定且清晰的偏好,擁有很強(qiáng)的計(jì)算能力,能預(yù)測(cè)每種方案的選擇后果,并依據(jù)某種衡量標(biāo)準(zhǔn)從這些方案中做出最優(yōu)選擇,選擇的唯一目標(biāo)是自身經(jīng)濟(jì)利益最大化。

          結(jié)合上文的出行案例,我們先來(lái)解釋什么是理性人選擇。

          當(dāng)我們選擇出行方式時(shí),首先確認(rèn)每種交通方式的重要屬性(行程外耗時(shí)、行程中耗時(shí)、行程花費(fèi)、舒適性)、自身屬性(家庭收入、出行人數(shù))、客觀(guān)因素(天氣);然后基于這些信息為每個(gè)方案計(jì)算一個(gè)偏好值并排序;最終選擇偏好值最大的選項(xiàng)。

          如果選擇了自駕車(chē),那么說(shuō)明綜合多種因素,自駕是最能獲得滿(mǎn)足感的出行方式。

          2. 效用理論

          消費(fèi)者內(nèi)心的滿(mǎn)足感其實(shí)可以用一個(gè)經(jīng)濟(jì)學(xué)的詞匯來(lái)表示,即“效用”。依照每種選擇方案的“效用”排序進(jìn)行選擇的過(guò)程叫作“效用最大化”,這就是理性人選擇理論最常用的準(zhǔn)則,學(xué)術(shù)上的描述是當(dāng)消費(fèi)者面對(duì)一系列備選商品的時(shí)候,他們會(huì)清楚地計(jì)算每個(gè)商品的效用,并嚴(yán)格將所有商品按照效用排序,選擇效用最大化的商品。

          讀到這里你也許會(huì)有疑問(wèn),盡管我們認(rèn)同選擇時(shí)確實(shí)是基于理性人選擇理論,但如此抽象的理論怎樣才能在實(shí)際的數(shù)據(jù)分析中發(fā)揮作用呢?哪怕知道了影響選擇行為的因素,也無(wú)法得出效用的計(jì)算公式。此時(shí),我們需要繼續(xù)學(xué)習(xí)揭示性偏好理論。

          3. 揭示性偏好理論

          揭示性偏好理論由美國(guó)經(jīng)濟(jì)學(xué)家保羅·安東尼·薩繆爾森提出。該理論表明:可以結(jié)合消費(fèi)者歷史消費(fèi)行為分析消費(fèi)者偏好,通過(guò)統(tǒng)計(jì)分析的方式得到相關(guān)因素的量化影響。該理論有以下兩個(gè)重要假設(shè)。

          消費(fèi)者在進(jìn)行實(shí)際消費(fèi)行為時(shí),若從備選方案中選擇了一個(gè)選項(xiàng),即為首選選項(xiàng),則該選項(xiàng)效用是最大的。

          在給定的消費(fèi)者預(yù)算、商品價(jià)格等因素不變的情況下,如果消費(fèi)者購(gòu)買(mǎi)了某種產(chǎn)品,那么他將始終做出相同的選擇。

          在該理論提出之初,包含的影響因素有消費(fèi)者預(yù)算、商品價(jià)格以及其他商品或消費(fèi)者屬性。對(duì)這些因素進(jìn)行歸納和拓展,再結(jié)合上述假設(shè),形成了離散選擇模型的模型框架。

          03 離散選擇模型

          了解了必要的理論知識(shí)后,我們開(kāi)始學(xué)習(xí)離散選擇模型(Discrete Choice Models,DCM)。

          DCM不是單一模型,而是一個(gè)模型簇,它包含了一系列應(yīng)對(duì)不同選擇場(chǎng)景的模型,例如邏輯回歸(Logistics Regression,LR)、多項(xiàng)Logit模型(Multinomial Logit Model,MNL)及嵌套Logit模型(Nested Logit Model,NL Model)等。

          如圖1-3所示,DCM主要包括5個(gè)部分,分別是決策者(決策者屬性)、備選項(xiàng)集合、備選項(xiàng)屬性、決策準(zhǔn)則和選擇結(jié)果,數(shù)學(xué)表達(dá)形式如下。

          選擇結(jié)果 = F(決策者, 備選項(xiàng)集合, 備選項(xiàng)屬性)

          其中,F(xiàn)是決策準(zhǔn)則,即效用最大化準(zhǔn)則。模型最終實(shí)現(xiàn)的功能是在給定決策者, 備選項(xiàng)集合, 備選項(xiàng)屬性后,基于效用最大化準(zhǔn)則,得到選擇結(jié)果。

          3.png

          ▲圖1-3 離散選擇模型的元素及結(jié)構(gòu)

          回到旅行出行方式選擇的案例中,我們對(duì)例子中的元素進(jìn)行映射。

          決策者:一次選擇行為的主體(決策者屬性包括家庭收入、出行人數(shù)、天氣)。

          備選項(xiàng)集合:飛機(jī)、火車(chē)、長(zhǎng)途巴士、自駕車(chē)(不同決策者的備選項(xiàng)集合可以不同)。

          備選項(xiàng)屬性:行程外耗時(shí)、行程中耗時(shí)、行程花費(fèi)、舒適性(不同備選項(xiàng)的屬性也可以不同)。

          選擇準(zhǔn)則:效用的最大化準(zhǔn)則。

          選擇結(jié)果:備選項(xiàng)中的一個(gè)選項(xiàng)(每個(gè)選擇過(guò)程均存在選擇結(jié)果)。

          04 案例分析:使用邏輯回歸分析自駕選擇問(wèn)題

          基于前文的介紹,相信讀者已經(jīng)迫不及待使用MNL或NL模型進(jìn)行建模分析了,這里先從LR的實(shí)操講起。LR是目前應(yīng)用最廣泛的可解釋二分類(lèi)模型之一,深入了解LR對(duì)我們的日常工作有很大幫助。

          通過(guò)對(duì)案例數(shù)據(jù)進(jìn)行一定的處理,可以得到一份滿(mǎn)足LR模型要求的寬格式數(shù)據(jù)。具體數(shù)據(jù)描述如下所示,場(chǎng)景邏輯如圖1-5所示。

          OBS_ID:離散,選擇行為ID
          HINC:連續(xù),家庭收入
          PSIZE:連續(xù) or 離散,出行人數(shù)
          TTME_AIR:連續(xù),站點(diǎn)等待時(shí)間(飛機(jī)) 
          TTME_TRAIN:連續(xù),站點(diǎn)等待時(shí)間(火車(chē))
          TTME_BUS:連續(xù),站點(diǎn)等待時(shí)間(長(zhǎng)途巴士)
          INVC_AIR:連續(xù),金錢(qián)成本(飛機(jī))
          INVC_TRAIN:連續(xù),金錢(qián)成本(火車(chē))
          INVC_BUS:連續(xù),金錢(qián)成本(長(zhǎng)途巴士)
          INVC_CAR:連續(xù),金錢(qián)成本(自駕)
          INVT_AIR:連續(xù),行程中 -時(shí)間成本(飛機(jī))
          INVT_TRAIN:連續(xù),行程中 -時(shí)間成本(火車(chē))
          INVT_BUS:連續(xù),行程中 -時(shí)間成本(長(zhǎng)途巴士)
          INVT_CAR:連續(xù),行程中 -時(shí)間成本(自駕)
          y:離散,是否選擇自駕

          4.png

          ▲圖1-5 LR的場(chǎng)景邏輯示意圖

          了解數(shù)據(jù)形式后,開(kāi)始進(jìn)行具體的模型搭建工作。

          第1步:軟件包引入,數(shù)據(jù)讀取

          重要的軟件包在代碼的備注中,如代碼清單1-3所示。

          代碼清單1-3 軟件包引入及數(shù)據(jù)讀取

          import numpy as np                     # 引入基礎(chǔ)軟件包numpy
          import pandas as pd                    # 引入基礎(chǔ)軟件包pandas
          import statsmodels.api as sm  # 引入Logistic regression軟件包statsmodels
          from sklearn.model_selection import train_test_split # 引入訓(xùn)練集/測(cè)試集構(gòu)造工具包
          from sklearn import metrics            # 引入模型評(píng)價(jià)指標(biāo)AUC計(jì)算工具包
          import matplotlib.pyplot as plt        # 引入繪圖軟件包
          import scipy                           # 引入scipy軟件包完成卡方檢驗(yàn)
          # 數(shù)據(jù)讀入
          data_path = 'wide_data.csv'
          raw_data = pd.read_table(data_path, sep=',', header=0)

          第2步:數(shù)據(jù)預(yù)處理

          數(shù)據(jù)預(yù)處理工作對(duì)于任何模型搭建都是必要的,這里結(jié)合LR及后續(xù)將介紹的MNL、NL模型的特點(diǎn)著重講3個(gè)數(shù)據(jù)預(yù)處理的要點(diǎn):①不要存在缺失值;②每一列均為為數(shù)值型;③多枚舉值離散變量入模前要進(jìn)行啞變量處理,如代碼清單1-4所示。

          代碼清單1-4 數(shù)據(jù)預(yù)處理

          # 1. 缺失值探查&簡(jiǎn)單處理
          model_data.info()                      # 查看每一列的數(shù)據(jù)類(lèi)型和數(shù)值缺失情況
          # | RangeIndex: 210 entries, 0 to 209
          # | Data columns (total 9 columns):
          # | ...
          # | HINC              210 non-null int64
          # | ...
          model_data = model_data.dropna()       # 缺失值處理——?jiǎng)h除
          model_data = model_data.fillna(0)      # 缺失值處理——填充(零、均值、中位數(shù)、預(yù)測(cè)值等)
          # 2. 數(shù)值型核查(連續(xù)變量應(yīng)為int64或float數(shù)據(jù)類(lèi)型)
          # 若上一步中存在應(yīng)為連續(xù)數(shù)值變量的字段為object,則執(zhí)行下列代碼,這里假設(shè)'HINC'存在為字符串'null'的值。
          import re                               # 正則表達(dá)式工具包
          float_patten = '^(-?\\d+)(\\.\\d+)?$'   # 定義浮點(diǎn)數(shù)正則patten
          float_re = re.compile(float_patten)     # 編譯
          model_data['HINC'][model_data['HINC'].apply(lambda x : 'not_float' if float_re.match(str(x)) == None else 'float') == 'not_float'] # 查看非浮點(diǎn)型數(shù)據(jù)
          # | 2    null
          # | Name: distance, dtype: object
          model_data = model_data[model_data['HINC'] != 'null']
          model_data['HINC'] = model_data['HINC'].astype(float)

          第3步:?jiǎn)巫兞糠治?/p>

          在建模之前需要先對(duì)每個(gè)自變量進(jìn)行單變量分析,確定是否納入模型,變量分為離散變量和連續(xù)變量?jī)煞N,其分析方式也有所不同。

          對(duì)于離散變量,我們使用k-1自由度的卡方檢驗(yàn),其中k為離散變量的值個(gè)數(shù);對(duì)于連續(xù)變量,比較簡(jiǎn)單的分析方法是直接對(duì)單變量進(jìn)行邏輯回歸,查看回歸系數(shù)的顯著性,根據(jù)AUC分析自變量對(duì)y的解釋能力。

          保留顯著的自變量進(jìn)入到后續(xù)的操作,如代碼清單1-5所示。

          代碼清單1-5 單變量分析

          # 離散變量分析
          crosstab = pd.crosstab( model_data['y'],model_data['PSIZE'])
          p=scipy.stats.chi2_contingency(crosstab)[1]
          print("PSIZE:",p)
          # PSIZE: 0.0024577358937625327
          # 連續(xù)變量分析
          logistic = sm.Logit(model_data['y'],model_data['INVT_CAR']).fit()
          p = logistic.pvalues['INVT_CAR']
          y_predict = logistic.predict(model_data['INVT_CAR'])
          AUC = metrics.roc_auc_score(model_data['y'],y_predict)
          result = 'INVT_CAR:'+str(p)+'  AUC:'+str(AUC)
          print(result)
          # INVT_CAR:2.971604856310474e-09  AUC:0.6242563699629587

          第4步:共線(xiàn)性檢驗(yàn)

          由于LR模型是一種廣義線(xiàn)性模型,變量間嚴(yán)重的共線(xiàn)性會(huì)對(duì)參數(shù)估計(jì)的準(zhǔn)確性及泛化能力產(chǎn)生影響,因此需要對(duì)自變量間的共線(xiàn)性進(jìn)行分析。

          若vif值大于10,可認(rèn)為變量間具有很強(qiáng)的共線(xiàn)性,需要進(jìn)行相應(yīng)的處理,最簡(jiǎn)單的處理方式就是進(jìn)行自變量剔除,保留單變量分析中AUC最大的變量。共線(xiàn)性檢驗(yàn)示例如代碼清單1-6所示。

          代碼清單1-6 共線(xiàn)性檢驗(yàn)

          from statsmodels.stats.outliers_influence import variance_inflation_factor 
          #共線(xiàn)性診斷包
          X = raw_data[[ 'INVT_AIR', 'INVT_TRAIN','INVT_BUS', 'INVT_CAR']]
          vif = pd.DataFrame()
          vif['VIF Factor'] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]
          vif['features'] = X.columns
          print('================多重共線(xiàn)性==============')
          print(vif)
          # | 0   14.229424    INVT_AIR
          # | 1   72.782420  INVT_TRAIN
          # | 2   80.279742    INVT_BUS
          # | 3   35.003438    INVT_CAR

          第5步:模型搭建

          這里需要注意的是,對(duì)于3值及以上的離散變量要進(jìn)行啞變量處理(需要記住去掉的枚舉值),并且增加截距項(xiàng)Intercept,同時(shí)進(jìn)行訓(xùn)練集和測(cè)試集的拆分(目的是防止模型的過(guò)擬合,確定分析結(jié)論可以泛化),代碼如清單1-7所示。

          代碼清單1-7 搭建LR模型

          # 建模數(shù)據(jù)構(gòu)造
          X = model_data[[ 'HINC','PSIZE','TTME_TRAIN' , 'INVC_CAR']]
          y = raw_data['y']
          # 啞變量處理
          dummies = pd.get_dummies(X['PSIZE'], drop_first=False)
          dummies.columns = [ 'PSIZE'+'_'+str(x) for x in dummies.columns.values]
          X = pd.concat([X, dummies], axis=1)
          X = X.drop('PSIZE',axis=1)   # 刪去原離散變量
          X = X.drop('PSIZE_4',axis=1) # 刪去過(guò)于稀疏字段
          X = X.drop('PSIZE_5',axis=1) # 刪去過(guò)于稀疏字段
          X = X.drop('PSIZE_6',axis=1) # 刪去過(guò)于稀疏字段
          X['Intercept'] = 1           # 增加截距項(xiàng)
          # 訓(xùn)練集與測(cè)試集的比例為80%和20%
          X_train, X_test, y_train, y_test = train_test_split(X, y, train_size = 0.8, random_state=1234)
          # 建模
          logistic = sm.Logit(y_train,X_train).fit()
          print(logistic.summary2())
          # 重要返回信息
          # | ------------------------------------------------------------------
          # |                Coef.   Std.Err.     z     P>|z|    [0.025   0.975]
          # | ------------------------------------------------------------------
          # | HINC           0.0264    0.0100   2.6477  0.0081   0.0068   0.0459
          # | TTME_TRAIN     0.0389    0.0195   1.9916  0.0464   0.0006   0.0772
          # | INVC_CAR      -0.0512    0.0204  -2.5103  0.0121  -0.0913  -0.0112
          # | PSIZE_1       -0.3077    0.7317  -0.4206  0.6741  -1.7419   1.1264
          # | PSIZE_2       -1.0800    0.6417  -1.6829  0.0924  -2.3378   0.1778
          # | PSIZE_3       -0.7585    0.7582  -1.0004  0.3171  -2.2444   0.7275
          # | Intercept     -1.8879    1.1138  -1.6951  0.0901  -4.0708   0.2950
          # | =================================================================
          # 模型評(píng)價(jià)
          print("========訓(xùn)練集AUC========")
          y_train_predict = logistic.predict(X_train)
          print(metrics.roc_auc_score(y_train,y_train_predict))
          print("========測(cè)試集AUC========")
          y_test_predict = logistic.predict(X_test)
          print(metrics.roc_auc_score(y_test,y_test_predict))
          # | ========訓(xùn)練集AUC========
          # | 0.7533854166666667
          # | ========測(cè)試集AUC========
          # | 0.6510263929618768

          第6步:模型修正

          可以看到由于不顯著變量的影響,模型的測(cè)試集AUC與訓(xùn)練集AUC存在較大差異,我們需要對(duì)不顯著變量進(jìn)行剔除??梢钥吹?,新建模型的擬合優(yōu)度尚可(AUC接近0.75),且自變量顯著(p < 0.05),可以進(jìn)行后續(xù)解讀,如代碼清單1-8所示。

          代碼清單1-8 修正LR模型

          X = X.drop('PSIZE_1',axis=1) 
          X = X.drop('PSIZE_2',axis=1) 
          X = X.drop('PSIZE_3',axis=1)
          # 訓(xùn)練集與測(cè)試集的比例為80%和20%
          X_train, X_test, y_train, y_test = train_test_split(X, y, train_size = 0.8, random_state=1234)
          # 建模
          logistic = sm.Logit(y_train,X_train).fit()
          print(logistic.summary2())
          # 重要返回信息
          # | ------------------------------------------------------------------
          # |                Coef.   Std.Err.     z     P>|z|    [0.025   0.975]
          # | ------------------------------------------------------------------
          # | HINC           0.0266    0.0096   2.7731  0.0056   0.0078   0.0454
          # | TTME_TRAIN     0.0335    0.0161   2.0838  0.0372   0.0020   0.0650
          # | INVC_CAR      -0.0450    0.0168  -2.6805  0.0074  -0.0778  -0.0121
          # | Intercept     -2.3486    0.8275  -2.8384  0.0045  -3.9704  -0.7269
          # | =================================================================
          print("========訓(xùn)練集AUC========")
          y_train_predict = logistic.predict(X_train)
          print(metrics.roc_auc_score(y_train,y_train_predict))
          print("========測(cè)試集AUC========")
          y_test_predict = logistic.predict(X_test)
          print(metrics.roc_auc_score(y_test,y_test_predict))
          # | ========訓(xùn)練集AUC========
          # | 0.7344618055555555
          # | ========測(cè)試集AUC========
          # | 0.7419354838709677

          第7步:模型解讀

          DCM模型解讀的對(duì)象可以分為概率(probability)和幾率(odds)。在本例中,概率為“選擇自駕的概率”,幾率為“選擇自駕的概率/不選擇自駕的概率”。限于模型的數(shù)學(xué)性質(zhì),無(wú)法直接從模型參數(shù)中快速得到概率,需要經(jīng)過(guò)一定計(jì)算,這部分會(huì)在復(fù)雜的MNL及NL模型中介紹。

          得益于LR的數(shù)學(xué)性質(zhì),分析師可以基于模型參數(shù)直接對(duì)幾率進(jìn)行解讀(這一點(diǎn)類(lèi)似于線(xiàn)性回歸)。模型解讀的話(huà)術(shù)為“在其他條件保持不變的情況下,某因素增長(zhǎng)一個(gè)單位(或?qū)傩詀相對(duì)屬性b),幾率會(huì)變化(增長(zhǎng)或降低)多少”,計(jì)算公式如下。

          連續(xù)變量:odd(xi+1)/odd(xi)-1=exp(βi)-1

          離散變量:odd(xj=1)/odd(xj=0)-1=exp(βj)-1

          例如,根據(jù)模型可知,在其他條件保持不變的情況下,家庭收入增長(zhǎng)1個(gè)單位,選擇自駕的odds會(huì)變化,exp(β"HINC" )-1=exp(0.0266)-1=0.027,即增加0.027倍。

          在其他條件保持不變的情況下,自駕成本上升1個(gè)單位,選擇自駕的odds會(huì)變化exp(β"INVC_CAR" )-1=exp(-0.0450)-1=-0.044,即下降0.044倍。

          關(guān)于作者:周銀河,現(xiàn)任騰訊數(shù)據(jù)科學(xué)家,曾任滴滴數(shù)據(jù)科學(xué)家,清華大學(xué)商學(xué)院及哥倫比亞大學(xué)商學(xué)院商業(yè)分析碩士項(xiàng)目指導(dǎo)嘉賓。擁有豐富的數(shù)據(jù)分析、統(tǒng)計(jì)建模及實(shí)驗(yàn)設(shè)計(jì)經(jīng)驗(yàn)。

          本文摘編自《數(shù)據(jù)科學(xué)工程實(shí)踐:用戶(hù)行為分析與建模、A/B實(shí)驗(yàn)、SQLFlow》,經(jīng)出版方授權(quán)發(fā)布。

          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



          關(guān)鍵詞: 用戶(hù)分析

          技術(shù)專(zhuān)區(qū)

          關(guān)閉