<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

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

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

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

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

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

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

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

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

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

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

  • 同程的人多不多?

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

  • 出行預算是多少?

  • 公共交通的便捷程度?

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

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

1.png

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

2. 出行選擇的決策邏輯

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

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

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

2.png

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

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

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

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

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

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

1. 理性人選擇理論

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

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

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

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

2. 效用理論

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

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

3. 揭示性偏好理論

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

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

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

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

03 離散選擇模型

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

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

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

選擇結果 = F(決策者, 備選項集合, 備選項屬性)

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

3.png

▲圖1-3 離散選擇模型的元素及結構

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

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

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

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

選擇準則:效用的最大化準則。

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

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

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

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

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

4.png

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

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

第1步:軟件包引入,數據讀取

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

代碼清單1-3 軟件包引入及數據讀取

import numpy as np                     # 引入基礎軟件包numpy
import pandas as pd                    # 引入基礎軟件包pandas
import statsmodels.api as sm  # 引入Logistic regression軟件包statsmodels
from sklearn.model_selection import train_test_split # 引入訓練集/測試集構造工具包
from sklearn import metrics            # 引入模型評價(jià)指標AUC計算工具包
import matplotlib.pyplot as plt        # 引入繪圖軟件包
import scipy                           # 引入scipy軟件包完成卡方檢驗
# 數據讀入
data_path = 'wide_data.csv'
raw_data = pd.read_table(data_path, sep=',', header=0)

第2步:數據預處理

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

代碼清單1-4 數據預處理

# 1. 缺失值探查&簡(jiǎn)單處理
model_data.info()                      # 查看每一列的數據類(lèi)型和數值缺失情況
# | RangeIndex: 210 entries, 0 to 209
# | Data columns (total 9 columns):
# | ...
# | HINC              210 non-null int64
# | ...
model_data = model_data.dropna()       # 缺失值處理——刪除
model_data = model_data.fillna(0)      # 缺失值處理——填充(零、均值、中位數、預測值等)
# 2. 數值型核查(連續變量應為int64或float數據類(lèi)型)
# 若上一步中存在應為連續數值變量的字段為object,則執行下列代碼,這里假設'HINC'存在為字符串'null'的值。
import re                               # 正則表達式工具包
float_patten = '^(-?\\d+)(\\.\\d+)?$'   # 定義浮點(diǎn)數正則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)型數據
# | 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>

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

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

保留顯著(zhù)的自變量進(jìn)入到后續的操作,如代碼清單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
# 連續變量分析
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)性檢驗

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

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

代碼清單1-6 共線(xià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步:模型搭建

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

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

# 建模數據構造
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           # 增加截距項
# 訓練集與測試集的比例為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
# | =================================================================
# 模型評價(jià)
print("========訓練集AUC========")
y_train_predict = logistic.predict(X_train)
print(metrics.roc_auc_score(y_train,y_train_predict))
print("========測試集AUC========")
y_test_predict = logistic.predict(X_test)
print(metrics.roc_auc_score(y_test,y_test_predict))
# | ========訓練集AUC========
# | 0.7533854166666667
# | ========測試集AUC========
# | 0.6510263929618768

第6步:模型修正

可以看到由于不顯著(zhù)變量的影響,模型的測試集AUC與訓練集AUC存在較大差異,我們需要對不顯著(zhù)變量進(jìn)行剔除??梢钥吹?,新建模型的擬合優(yōu)度尚可(AUC接近0.75),且自變量顯著(zhù)(p < 0.05),可以進(jìn)行后續解讀,如代碼清單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)
# 訓練集與測試集的比例為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("========訓練集AUC========")
y_train_predict = logistic.predict(X_train)
print(metrics.roc_auc_score(y_train,y_train_predict))
print("========測試集AUC========")
y_test_predict = logistic.predict(X_test)
print(metrics.roc_auc_score(y_test,y_test_predict))
# | ========訓練集AUC========
# | 0.7344618055555555
# | ========測試集AUC========
# | 0.7419354838709677

第7步:模型解讀

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

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

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

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

例如,根據模型可知,在其他條件保持不變的情況下,家庭收入增長(chá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)于作者:周銀河,現任騰訊數據科學(xué)家,曾任滴滴數據科學(xué)家,清華大學(xué)商學(xué)院及哥倫比亞大學(xué)商學(xué)院商業(yè)分析碩士項目指導嘉賓。擁有豐富的數據分析、統計建模及實(shí)驗設計經(jīng)驗。

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

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



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

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>