
MYSQL、 Sas EG、 TOAD、 SAS EM
數(shù)據(jù)導(dǎo)入 txt導(dǎo)入mysql 數(shù)據(jù)導(dǎo)出 mysql導(dǎo)出為txt txt導(dǎo)入SasEG SAS數(shù)據(jù)格式修改 頻數(shù)統(tǒng)計(jì) 相關(guān)分析 相關(guān)系數(shù) 相關(guān)系數(shù)矩陣 RFM模型 聚類分析 關(guān)聯(lián)規(guī)則 數(shù)據(jù)挖掘 頻數(shù)統(tǒng)計(jì)
根據(jù)中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心發(fā)布第36次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》顯示,截至2015年6月,我國(guó)網(wǎng)民規(guī)模達(dá)6.68億,互聯(lián)網(wǎng)普及率為48.8%。我國(guó)互聯(lián)網(wǎng)的高速發(fā)展普及為互聯(lián)網(wǎng)企業(yè)帶來(lái)了巨大的發(fā)展機(jī)遇。
相對(duì)于傳統(tǒng)的工業(yè)領(lǐng)域,互聯(lián)網(wǎng)領(lǐng)域的入門(mén)門(mén)檻較低,這一特點(diǎn)有利于更多的企業(yè)加入互聯(lián)網(wǎng)浪潮,以便為人民生活提供更好的服務(wù),但也正是互聯(lián)網(wǎng)企業(yè)的服務(wù)模式易于拷貝的原因,導(dǎo)致了同質(zhì)化競(jìng)爭(zhēng)激烈的互聯(lián)網(wǎng)企業(yè)發(fā)展格局。
為了解決這一問(wèn)題,通過(guò)對(duì)網(wǎng)站用戶行為進(jìn)行數(shù)據(jù)分析,有利于互聯(lián)網(wǎng)企業(yè)準(zhǔn)確把握網(wǎng)站發(fā)展的實(shí)際情況以及網(wǎng)站用戶心理需求和心理習(xí)慣,從而更有效地利用企業(yè)資源,以便在激烈的同質(zhì)化競(jìng)爭(zhēng)中找到屬于自己的服務(wù)特點(diǎn),獲得比較優(yōu)勢(shì),最終贏得競(jìng)爭(zhēng)。
此案例所用數(shù)據(jù)集來(lái)自于一個(gè)互聯(lián)網(wǎng)企業(yè),屬于論壇性質(zhì)。共有三個(gè)數(shù)據(jù)集。member.txt、tiezi.txt 、bankui.txt分別是會(huì)員個(gè)人信息表(包括會(huì)員的一些屬性:出生日期,專長(zhǎng),關(guān)注領(lǐng)域等)、瀏覽帖子信息表(四個(gè)字段,第一個(gè)是會(huì)員id,第二個(gè)是會(huì)員瀏覽時(shí)間,第三個(gè)是會(huì)員瀏覽帖子的鏈接代碼,第四個(gè)變量為瀏覽的為該帖子的第幾頁(yè)),瀏覽板塊信息表(三個(gè)字段,第一個(gè)是會(huì)員id,第二個(gè)是會(huì)員瀏覽時(shí)間,第三個(gè)是會(huì)員瀏覽板塊的鏈接代碼)。數(shù)據(jù)缺陷無(wú)法提供板塊和帖子的對(duì)應(yīng)情況。其中member.txt數(shù)據(jù)集中共包含106745條記錄,bankuai.txt數(shù)據(jù)集中共包含765015條記錄,tiezi.txt數(shù)據(jù)集中共包含3832002條記錄。
各知識(shí)點(diǎn)介紹如下:
第1個(gè)知識(shí)點(diǎn)介紹的是如何借助于第三方數(shù)據(jù)庫(kù)管理軟件toad把三個(gè)txt數(shù)據(jù)文件導(dǎo)入到MYSQL數(shù)據(jù)庫(kù)中。
第2個(gè)知識(shí)點(diǎn)介紹的是如何借助于第三方數(shù)據(jù)庫(kù)管理軟件toad把三個(gè)txt數(shù)據(jù)數(shù)從MySQL數(shù)據(jù)庫(kù)forum中導(dǎo)出為三個(gè)txt文件,將導(dǎo)出的三個(gè)txt文件保存為member.txt,tiezi.txt,bankuai.txt,然后在這個(gè)基礎(chǔ)之上對(duì)本章后面的小節(jié)進(jìn)行操作。
第3個(gè)知識(shí)點(diǎn)是將三個(gè)txt文件導(dǎo)入到SAS-EG中,保存為sas格式的數(shù)據(jù)集放在建立的邏輯庫(kù)test中,并且對(duì)日期時(shí)間變量進(jìn)行輸出格式的修改,使其顯示為正確的日期時(shí)間格式。三個(gè)sas數(shù)據(jù)文件分別為member.sas4bdat,bankuai.sas7bdat,tiezi.sas7bdat。
第4個(gè)知識(shí)點(diǎn)是對(duì)論壇數(shù)據(jù)進(jìn)行一些描述性分析,在tiezi.sas7bdat基礎(chǔ)之上尋找到最火的帖子。
第5個(gè)知識(shí)點(diǎn)是對(duì)論壇數(shù)據(jù)進(jìn)行一些描述性分析,是在member.sas7bdat基礎(chǔ)之上對(duì)論壇用戶的男女比例進(jìn)行描述性分析。
第6個(gè)知識(shí)點(diǎn)是在tiezi.sas7bdat基礎(chǔ)之上通過(guò)生成查詢生成器的方式計(jì)算每個(gè)人瀏覽的帖子總數(shù),并且進(jìn)行用戶名字的去重。然后將查詢結(jié)果和member.sas7bdat數(shù)據(jù)集進(jìn)行橫向合并,從而將用戶年齡和瀏覽貼子數(shù)放在了一個(gè)表中。然后進(jìn)行兩個(gè)變量的相關(guān)性分析。
第7個(gè)知識(shí)點(diǎn)是在tiezi.sas7bdat數(shù)據(jù)集的基礎(chǔ)之上進(jìn)行進(jìn)一步的計(jì)算,然后用RFM模型對(duì)客戶進(jìn)行畫(huà)像分析,從而找到最有價(jià)值的客戶。
第8個(gè)知識(shí)點(diǎn)在bankuai.sas7bdat數(shù)據(jù)集的基礎(chǔ)之上用sasEM模塊對(duì)數(shù)據(jù)進(jìn)行板塊的關(guān)聯(lián)規(guī)則分析,從而可以發(fā)現(xiàn)一些推薦規(guī)則。
第9個(gè)知識(shí)點(diǎn)是在member.sas7bdat基礎(chǔ)之上用SasEM模塊的文本挖掘部分對(duì)關(guān)注領(lǐng)域字段進(jìn)行關(guān)鍵詞頻數(shù)分析,從而找到關(guān)注度最高的關(guān)鍵詞。
? 安裝Toad for MySQL編輯器,成功設(shè)置權(quán)限;
? 在邏輯庫(kù)下選擇forum數(shù)據(jù)庫(kù),界面如下圖所示;
? 單擊工具欄中的“Tools”選項(xiàng),執(zhí)行“Import”,“Import Wizard”命令,如圖4.21,彈出數(shù)據(jù)導(dǎo)入向?qū)Т翱?,如下圖所示,點(diǎn)擊Next。
導(dǎo)入數(shù)據(jù)
? 點(diǎn)擊“Next”,如下圖,繼續(xù)進(jìn)行;
導(dǎo)入數(shù)據(jù)
? 點(diǎn)擊“Add File”,選擇文件所在位置添加文件,如下圖;
導(dǎo)入數(shù)據(jù)
? 選擇“Comma”(即以逗號(hào)為分隔符),選擇“Column names as head”(即將原文件中的第一行作為列名)及Empty files are n(即將缺失的數(shù)據(jù)也插入新表中),點(diǎn)擊“Next”繼續(xù)進(jìn)行,如下圖;
導(dǎo)入數(shù)據(jù)
? 再次點(diǎn)擊“Next”繼續(xù)進(jìn)行,在數(shù)據(jù)導(dǎo)入向?qū)Т翱诘?/span>Select Target步驟中,選擇“A single new table”(即新建一個(gè)表),在Schema下拉列表中選擇創(chuàng)建的數(shù)據(jù)庫(kù)forum,在“Table name”中輸入新表的名稱“member”,根據(jù)事先對(duì)數(shù)據(jù)的大致了解,將field6、field7、lingyu的數(shù)值類型改為VARCHAR(200),將zhuanchang的數(shù)值類型改為VARCHAR(500),同時(shí)選中memberid,將光標(biāo)定位在memberid前面,點(diǎn)擊“Set Primary Key”,即將memberid設(shè)置為主鍵,如下圖所示,點(diǎn)擊Next按鈕。
圖 導(dǎo)入數(shù)據(jù)
? 再次點(diǎn)擊Next,F(xiàn)inish按鈕,等待一段時(shí)間后會(huì)出現(xiàn)如下圖的窗口,可以看到讀取數(shù)據(jù)行數(shù)為106745行,導(dǎo)入數(shù)據(jù)行數(shù)也為106745行,因此數(shù)據(jù)全部導(dǎo)入。
圖數(shù)據(jù)導(dǎo)入結(jié)果匯總
? 點(diǎn)擊OK,在Viewer Table forum.member窗口下點(diǎn)擊Data選項(xiàng),數(shù)據(jù)如下圖,可以看到中文字符也完全顯示出來(lái)。
圖 數(shù)據(jù)導(dǎo)入成功
在MySQL命令窗口下,執(zhí)行下列語(yǔ)句同樣可實(shí)現(xiàn)上述操作:
create table forum.member
(
gender int(11),
birthyearm int(11),
constellation varchar(255),
zodiac varchar(255),
resideprovince varchar(255),
field6 varchar(255),
field7 varchar(255),
lingyu varchar(255),
zhuanchang varchar(255),
readad int(11),
viptype int(11),
memberid int(20),
count int(11),
PRIMARY KEY(memberid)
)engine=innodb charset=utf8;
上述代碼將新建一個(gè)名為forum.membe的新表,包含13個(gè)字段及其屬性,定義memberid為主鍵,engine=innodb為指定數(shù)據(jù)引擎,charset=utf8為編碼格式,int表示數(shù)據(jù)格式為整型,varchar表示數(shù)據(jù)為可變字符型。
? 重復(fù)上述操作步驟同樣可以將bankuai.txt和tiezi.txt導(dǎo)入至數(shù)據(jù)庫(kù)。
其中tiezi.txt在讀入時(shí),采用默認(rèn)設(shè)置讀入,發(fā)現(xiàn)并未讀取全部記錄,原因是time的字段類型為int不合適,time字段的一些取值超過(guò)了int類型所涵蓋的范圍,需要在導(dǎo)入時(shí)將該字段類型改為bigint。這樣就可以將全部記錄導(dǎo)入。由于tiezi的數(shù)據(jù)量(行數(shù))非常龐大,我們將processing row count改為10000以加快讀取速度。如下圖所示。最終在圖4.30中顯示讀取數(shù)據(jù)為3832002條,導(dǎo)入條數(shù)也為3832002條。
圖 導(dǎo)入數(shù)據(jù)
圖數(shù)據(jù)導(dǎo)入結(jié)果匯總
這個(gè)知識(shí)點(diǎn)操作結(jié)束之后,在你的電腦的mysql的forum數(shù)據(jù)庫(kù)中將會(huì)存在三張表。
數(shù)據(jù)庫(kù)管理員的其中一個(gè)工作就是將各種形式的數(shù)據(jù)錄入或者導(dǎo)入到mysql數(shù)據(jù)庫(kù)中,注意toad和mysql的版本要相互配合。
知識(shí)點(diǎn)素材(包括數(shù)據(jù)):一個(gè)mysql數(shù)據(jù)庫(kù)forum,并且該數(shù)據(jù)庫(kù)下有三張表member、tiezi、bankuai。
? 打開(kāi)論壇的數(shù)據(jù)庫(kù)forum1,打開(kāi)tables,可以看到有三個(gè)表分別是member、tiezi、bankuai。Member中記錄的是用戶的id和個(gè)人信息。tiezi里面記錄的是會(huì)員瀏覽帖子的記錄。Bankuai里面記錄的是會(huì)員瀏覽板塊的記錄。
打開(kāi)其中的一個(gè)表。比如member,然后在右側(cè)數(shù)據(jù)瀏覽窗口中點(diǎn)擊“export”,選擇導(dǎo)出的形式,我們選擇“導(dǎo)出所有記錄”,然后選擇“txt文件”,點(diǎn)擊“Next”,選擇保存路徑,然后點(diǎn)擊“Next”,點(diǎn)擊“Next”,然后勾選“include column titles”,繼續(xù)點(diǎn)擊“Next”,然后點(diǎn)擊“start”。等進(jìn)度條完成之后,數(shù)據(jù)就成功導(dǎo)出了。點(diǎn)擊“close”即可。我們依據(jù)同樣的方法把三個(gè)表都導(dǎo)出為txt格式,分別為member.txt 、tiezi.txt 、bankuai.txt。
將上面導(dǎo)出的數(shù)據(jù)存為member.txt 、tiezi.txt 、bankuai.txt,以備后續(xù)使用。
通常從數(shù)據(jù)庫(kù)中導(dǎo)出數(shù)據(jù)可以保存為好幾種文本文件和excel文件,你可以根據(jù)需要進(jìn)行選擇,如果數(shù)據(jù)量較大的話建議保存為txt文件。
? 打開(kāi)excel文件,查看數(shù)據(jù)是否符合SAS要求的格式;
? 啟動(dòng)sas eg
? 點(diǎn)擊“工具”,“分配項(xiàng)目邏輯庫(kù)”,可以新建一個(gè)邏輯庫(kù),邏輯庫(kù)命名為test,注意指定合適的文件夾路徑作為邏輯庫(kù)放數(shù)據(jù)的地方。
? 執(zhí)行“文件”,“導(dǎo)入數(shù)據(jù)”,找到member.txt文件,點(diǎn)擊“打開(kāi)”按鈕,指定test邏輯庫(kù),打開(kāi)窗口左下角的服務(wù)器列表——本地——邏輯庫(kù)可以看到邏輯庫(kù)test已經(jīng)生成。如果沒(méi)有發(fā)現(xiàn)這個(gè)邏輯庫(kù)就刷新一下便可以看到了。導(dǎo)入數(shù)據(jù)時(shí)指定文本編碼為默認(rèn)編碼,即GB2312。導(dǎo)入完成之后在邏輯庫(kù)test及保存路徑下便生成bankuai.sas7bdat,tiezi.sas7bdat及member.sas7dbat三個(gè)數(shù)據(jù)文件。若在邏輯庫(kù)下沒(méi)有顯示所導(dǎo)入的數(shù)據(jù),刷新一下即可。
我們看一下tiezi數(shù)據(jù)集里面的數(shù)據(jù),結(jié)果見(jiàn)下圖。
圖 tiezi數(shù)據(jù)窗口
從上圖可以看到,time字段顯示的格式是數(shù)值格式,如何將其變?yōu)闀r(shí)間格式。
將tiezi數(shù)據(jù)拖動(dòng)右側(cè)雙口后雙擊time字段的任意觀測(cè)值,這時(shí)會(huì)彈出一個(gè)“數(shù)據(jù)具有保護(hù),是否切換至更新模式”的對(duì)話框,注意:所做的更改將直接應(yīng)用于數(shù)據(jù)。在此選擇“yes”。這樣數(shù)據(jù)就變成可編輯模式了。選中需要編輯的變量列,點(diǎn)擊右鍵選擇“屬性”,在“常規(guī)選項(xiàng)卡”里,把組改為日期格式。在“輸出格式”選項(xiàng)卡里,類別選擇“日期/時(shí)間”。輸出格式選擇DATETIMEw.d,總寬度設(shè)定為20。從下圖中可以看到修改后的樣式。修改完樣式之后將數(shù)據(jù)集保存。同樣,數(shù)據(jù)集bankuai里面的time字段也進(jìn)行同樣的設(shè)置并保存。
圖 tiezi數(shù)據(jù)窗口
將上面生成的sas數(shù)據(jù)文件保存在文件夾中存為bankuai.sas7bdat,tiezi.sas7bdat及member.sas7dbat,以備后續(xù)使用。
想把txt格式數(shù)據(jù)導(dǎo)入到saseg中,先要將txt數(shù)據(jù)格式整理成比較標(biāo)準(zhǔn)的格式才不容易出錯(cuò),如果txt文件是從數(shù)據(jù)庫(kù)中導(dǎo)出的通常格式比較正常。
? 啟動(dòng)sas eg
? ?新建項(xiàng)目邏輯庫(kù)。執(zhí)行“工具”—“分配項(xiàng)目邏輯庫(kù)”—輸入8個(gè)字符以內(nèi)的英文名稱(比如test),點(diǎn)擊“下一步”按鈕;
? 注意指定合適的文件夾路徑(和上面一節(jié)的文件路徑保持一致)作為邏輯庫(kù)放數(shù)據(jù)的地方。
? 把左側(cè)下方的邏輯庫(kù)test下面的tiezi數(shù)據(jù)集拖入右側(cè)的大窗口中。即可看到帖子數(shù)據(jù)集作為一個(gè)對(duì)象出現(xiàn)在右側(cè)窗口中。如果想查看這個(gè)數(shù)據(jù)集里面的內(nèi)容,雙擊過(guò)程流中TIEZI數(shù)據(jù)集的圖標(biāo) ,即可查看里面的數(shù)據(jù)。
? 在tiezi窗口,點(diǎn)擊查詢生成器。把t1下面的tid變量拉入右側(cè)數(shù)據(jù)框,見(jiàn)下圖。
圖 查詢生成器窗口
? 點(diǎn)擊”添加新的計(jì)算列”,進(jìn)入“1/4選擇類型”頁(yè)界面,勾選”匯總列”,點(diǎn)擊下一步進(jìn)入“2/4選擇列”頁(yè)面;在“2/4選擇列”頁(yè)面,選擇 “選擇數(shù)據(jù)列”下面的tid變量。點(diǎn)擊下一步,進(jìn)入“3/4修改其他選項(xiàng)”頁(yè)面;在“3/4修改其他選項(xiàng)”頁(yè)面,將“標(biāo)識(shí)符”和“列名”均改為total_number,“匯總”項(xiàng)選擇count,其他項(xiàng)保持默認(rèn)。點(diǎn)擊下一步進(jìn)入“4/4屬性匯總”頁(yè)面;在“4/4屬性匯總”頁(yè)面點(diǎn)擊“完成”回到“選擇數(shù)據(jù)”選項(xiàng)卡頁(yè)面,見(jiàn)下圖。
圖 查詢生成器窗口
? 點(diǎn)擊“對(duì)數(shù)據(jù)進(jìn)行排序”進(jìn)入“對(duì)數(shù)據(jù)進(jìn)行排序”選項(xiàng)卡頁(yè)面。將左側(cè)“計(jì)算列”下面的total_number變量拉入數(shù)據(jù)框,排序方向選擇降序,見(jiàn)下圖。
圖 查詢生成器窗口
? 然后點(diǎn)擊運(yùn)行,見(jiàn)下圖。
圖查詢生成結(jié)果
從上圖中就可以看到,最受關(guān)注的帖子的代碼是397905,被瀏覽的次數(shù)為36754次。
該知識(shí)點(diǎn)可以不用對(duì)數(shù)據(jù)集進(jìn)行保存。
如果你是論壇工作人員,根據(jù)這個(gè)帖子代碼,你就能知道對(duì)應(yīng)的帖子鏈接。原來(lái)這個(gè)帖子是關(guān)于增加論壇幣方法的介紹,難怪有這么多人都要看。
? 啟動(dòng)sas eg
? ?新建項(xiàng)目邏輯庫(kù)。執(zhí)行“工具”—“分配項(xiàng)目邏輯庫(kù)”—輸入8個(gè)字符以內(nèi)的英文名稱(比如test),點(diǎn)擊“下一步”按鈕;
? 注意指定合適的文件夾路徑(和上面一節(jié)的文件路徑保持一致)作為邏輯庫(kù)放數(shù)據(jù)的地方。
? 把左側(cè)下方的邏輯庫(kù)test下面的member數(shù)據(jù)集拖入右側(cè)的大窗口中??梢钥吹綌?shù)據(jù)集作為一個(gè)對(duì)象出現(xiàn)在右側(cè)窗口中。如果想查看這個(gè)數(shù)據(jù)集里面的內(nèi)容,雙擊過(guò)程流中member數(shù)據(jù)集的圖標(biāo) ,即可查看里面的數(shù)據(jù)。
? 執(zhí)行“描述”“單因子頻數(shù)”。在“數(shù)據(jù)”選項(xiàng)下,把“gender”拖入“分析變量”,在“統(tǒng)計(jì)量”選項(xiàng)下,缺失值的“顯示頻數(shù)”和“包含在計(jì)算中”前面打勾。點(diǎn)擊“運(yùn)行”按鈕,輸出結(jié)果見(jiàn)下圖。
圖單因子頻數(shù)結(jié)果
結(jié)果分析:可以看到絕大多數(shù)人并沒(méi)有對(duì)性別進(jìn)行填寫(xiě),填寫(xiě)性別的人當(dāng)中男生占了大多數(shù),大概是女生的3倍。由于沒(méi)有填寫(xiě)信息的人對(duì)分析沒(méi)有意義,故需要計(jì)算填寫(xiě)性別的人當(dāng)中男女的比例,然后繪制餅形圖。
? 回到member數(shù)據(jù)集窗口,執(zhí)行選擇“圖形”,“餅圖”,雙擊“簡(jiǎn)單餅圖”即可得到結(jié)果,點(diǎn)開(kāi)“數(shù)據(jù)”選項(xiàng)卡,將gender拉入右側(cè)要繪圖的列。然后點(diǎn)擊運(yùn)行。
圖性別分布餅圖
操作結(jié)果:
該知識(shí)點(diǎn)可以不用對(duì)數(shù)據(jù)集進(jìn)行保存。
對(duì)于分類變量,可以通過(guò)單因子頻數(shù)的方式對(duì)其進(jìn)行描述,也可以通過(guò)餅形圖對(duì)其進(jìn)行描述。
知識(shí)點(diǎn)素材(包括數(shù)據(jù)):tiezi.sas7bdat member.sas7bdat
啟動(dòng)SAS EG,在SAS EG中執(zhí)行“文件”,“新建項(xiàng)目”。 點(diǎn)擊“工具”,“分配項(xiàng)目邏輯庫(kù)”,可以新建一個(gè)邏輯庫(kù),邏輯庫(kù)命名為test,注意指定合適的文件夾路徑(和上面一節(jié)的文件路徑保持一致)作為邏輯庫(kù)放數(shù)據(jù)的地方。
? 把左側(cè)下方的邏輯庫(kù)test下面的tiezi數(shù)據(jù)集拖入右側(cè)的大窗口中。即可看到帖子數(shù)據(jù)集作為一個(gè)對(duì)象出現(xiàn)在右側(cè)窗口中。打開(kāi)tiezi數(shù)據(jù)集,點(diǎn)擊“查詢生成器”。將“查詢名稱”改為計(jì)算每個(gè)人的瀏覽帖子數(shù),輸出名稱為test.tiezishu。點(diǎn)擊“選項(xiàng)”,在彈出的窗口的“結(jié)果”中,將輸出數(shù)據(jù)集的標(biāo)簽改為tiezishu。然后點(diǎn)擊確定返回“選擇數(shù)據(jù)”選項(xiàng)卡頁(yè)面。將memberid字段選入“選擇數(shù)據(jù)”框里。設(shè)定之后見(jiàn)下圖。
圖查詢生成器窗口
? 點(diǎn)擊”添加新的計(jì)算列”,進(jìn)入“1/4選擇類型”頁(yè)界面,勾選”匯總列”,點(diǎn)擊下一步進(jìn)入“2/4選擇列”頁(yè)面;在“2/4選擇列”頁(yè)面,選擇 “選擇數(shù)據(jù)列”下面的memberid變量。點(diǎn)擊下一步,進(jìn)入“3/4修改其他選項(xiàng)”頁(yè)面;在“3/4修改其他選項(xiàng)”頁(yè)面,將“標(biāo)識(shí)符”和“列名”均改為tiezishu,“匯總”項(xiàng)選擇count,其他項(xiàng)保持默認(rèn)。點(diǎn)擊下一步進(jìn)入“4/4屬性匯總”頁(yè)面;在“4/4屬性匯總”頁(yè)面點(diǎn)擊“完成”回到“選擇數(shù)據(jù)”選項(xiàng)卡頁(yè)面。
? 在“選擇數(shù)據(jù)”選項(xiàng)卡頁(yè)面。勾選“僅選擇非重復(fù)行”,匯總組選項(xiàng)下取消自動(dòng)選擇組的勾選,設(shè)定組為t1.memberid。見(jiàn)下圖。
圖查詢生成器窗口
? 點(diǎn)擊“對(duì)數(shù)據(jù)進(jìn)行排序”選項(xiàng)卡。把tiezishu拉入右側(cè)窗口,排序方向選擇降序。
圖 查詢生成器窗口
? 點(diǎn)擊運(yùn)行按鈕。輸出結(jié)果見(jiàn)下圖。
圖 查詢生成結(jié)果
? 把member數(shù)據(jù)集拉入右側(cè)的過(guò)程流里面。雙擊Member數(shù)據(jù)集將其打開(kāi),點(diǎn)擊“查詢生成器“,點(diǎn)擊“添加表”,選擇tiezishu數(shù)據(jù)集,點(diǎn)擊“打開(kāi)”。
? 點(diǎn)擊“連接表”,可以看到兩個(gè)表有共同的Memberid可以連接起來(lái),然后點(diǎn)擊“關(guān)閉”。將tiezishu數(shù)據(jù)集里面的memberid、tiezishu選入“選擇數(shù)據(jù)框”,把member數(shù)據(jù)集里面的birthyear數(shù)據(jù)選入“選擇數(shù)據(jù)框”。
? 將查詢名稱改為“將年齡和帖子數(shù)放在一個(gè)表中”,輸出名稱為test.q1。點(diǎn)擊選項(xiàng),將輸出數(shù)據(jù)集的標(biāo)簽改為q1。
? 計(jì)算年齡:點(diǎn)擊”添加新的計(jì)算列”,進(jìn)入“1/4選擇類型”頁(yè)界面,勾選”高級(jí)表達(dá)式”,點(diǎn)擊下一步進(jìn)入“2/4生成高級(jí)表達(dá)式”頁(yè)面;在“2/4生成高級(jí)表達(dá)式”頁(yè)面,在輸入表達(dá)式框中寫(xiě)入公式:2015-t1.birthyear,點(diǎn)擊下一步,進(jìn)入“3/4修改其他選項(xiàng)”頁(yè)面;在“3/4修改其他選項(xiàng)”頁(yè)面,將“標(biāo)識(shí)符”和“列名”均改為age,“匯總”項(xiàng)選擇None,其他項(xiàng)保持默認(rèn)。點(diǎn)擊下一步進(jìn)入“4/4屬性匯總”頁(yè)面;在“4/4屬性匯總”頁(yè)面點(diǎn)擊“完成”回到“選擇數(shù)據(jù)”選項(xiàng)卡頁(yè)面。見(jiàn)下圖。
圖 查詢生成器窗口
? 點(diǎn)擊“過(guò)濾數(shù)據(jù)”,進(jìn)入“過(guò)濾數(shù)據(jù)”選項(xiàng)卡頁(yè)面。由于birthyear變量大量缺失,以0表示的,因此在分析數(shù)據(jù)之前要對(duì)這部分?jǐn)?shù)據(jù)進(jìn)行過(guò)濾,將birthyear拉入過(guò)濾數(shù)據(jù)里面,單擊“過(guò)濾”,運(yùn)算符選擇不等于,值寫(xiě)0,點(diǎn)擊“確定”按鈕。見(jiàn)下圖。
圖 查詢生成器窗口
? 然后點(diǎn)擊“運(yùn)行”。查詢結(jié)果就出來(lái)了,我們?cè)谶@個(gè)查詢結(jié)果中可以進(jìn)行分析,來(lái)分析瀏覽帖子數(shù)和年齡的關(guān)系。查詢結(jié)果見(jiàn)下圖。
圖 查詢生成結(jié)果
? 在q1窗口中做散點(diǎn)圖:執(zhí)行“圖形”,“散點(diǎn)圖”,“二維散點(diǎn)圖”,橫軸為age,縱軸為tiezishu。結(jié)果見(jiàn)下圖。
結(jié)果分析:從散點(diǎn)圖中可以看到有很多異常值,縱軸上的異常值都是真實(shí)值,之所以異常,是因?yàn)楣芾韱T的帖子瀏覽量性對(duì)于普通會(huì)員來(lái)講非常多,因此分析的時(shí)候我們應(yīng)該去掉,我們定義大于6000的為管理員。年齡軸上的異常值主要是因?yàn)樽?cè)的時(shí)候是隨意填寫(xiě)導(dǎo)致的結(jié)果。分析時(shí)把年齡為16以下或者80以上的過(guò)濾掉。
? 我們回到過(guò)程流頁(yè)面,雙擊打開(kāi)數(shù)據(jù)q1對(duì)象,點(diǎn)擊“查詢生成器”。將查詢名稱改為對(duì)年齡和帖子數(shù)進(jìn)行再過(guò)濾,輸出名稱改為test.q2。點(diǎn)擊選項(xiàng),將輸出數(shù)據(jù)集的標(biāo)簽改為q2。在選擇數(shù)據(jù)選項(xiàng)卡下面,將tiezishu和age拉入數(shù)據(jù)框。見(jiàn)下圖。
圖 查詢生成器窗口
? 點(diǎn)擊過(guò)濾數(shù)據(jù)選項(xiàng)卡。點(diǎn)擊“新建過(guò)濾器”,選擇基本過(guò)濾器,點(diǎn)擊“下一步”按鈕,選擇tiezishu,點(diǎn)擊“下一步”,運(yùn)算符選擇介于,起始值寫(xiě) 200,結(jié)束值寫(xiě) 6000,點(diǎn)擊“下一步”,點(diǎn)擊“完成”。點(diǎn)擊“新建過(guò)濾器”,選擇“基本過(guò)濾器”,點(diǎn)擊“下一步”,選擇age,點(diǎn)擊“下一步”按鈕,運(yùn)算符選擇“介于”,不要誤選為在范圍內(nèi),起始值寫(xiě) 16,結(jié)束值寫(xiě) 80,點(diǎn)擊“下一步”。點(diǎn)擊完成。見(jiàn)下圖。
圖 查詢生成器窗口
? 點(diǎn)擊“運(yùn)行”按鈕。輸出結(jié)果見(jiàn)下圖。
圖 查詢生成結(jié)果
? 在q2的窗口中中畫(huà)age和tiezishu的散點(diǎn)圖,操作不再贅述。散點(diǎn)圖結(jié)果見(jiàn)下圖。
結(jié)果分析:從散點(diǎn)圖中可以看到兩者沒(méi)有明顯的正線性相關(guān)或者負(fù)線性相關(guān)的關(guān)系,但是仍然可以看到一些結(jié)論,瀏覽帖子比較多的人的年齡主要是20-40之間。40以上瀏覽帖子的數(shù)目基本在1500以內(nèi)。
? 在q2數(shù)據(jù)窗口中,點(diǎn)擊“分析”,“多元”“相關(guān)分析”,把tiezishu和age拉入“分析變量”,然后點(diǎn)擊“運(yùn)行”按鈕。結(jié)果見(jiàn)下圖。
圖 相關(guān)分析結(jié)果
結(jié)果分析:從散點(diǎn)圖上雖然看不出什么,相關(guān)系數(shù)矩陣中兩者的相關(guān)系數(shù)也比較小,但是在10%顯著性水平下是顯著正相關(guān)的。
? 為了避免每次重新打開(kāi)sasEG后,都要把建立邏輯庫(kù),打開(kāi)數(shù)據(jù)等操作重新做一遍,我們可以把關(guān)電腦前在sas EG中進(jìn)行的操作保存,保存為一個(gè)項(xiàng)目:點(diǎn)擊“文件”—“保存項(xiàng)目”,為帖子瀏覽數(shù)與年齡關(guān)系分析命名,比如項(xiàng)目12.4,點(diǎn)擊“保存”即可。這樣在你的電腦上就會(huì)生成一個(gè)文件項(xiàng)目帖子瀏覽數(shù)與年齡關(guān)系分析.egp。為了避免死機(jī),最好經(jīng)常執(zhí)行一些保存操作,“文件”—“保存項(xiàng)目帖子瀏覽數(shù)與年齡關(guān)系分析”。下次用到該項(xiàng)目時(shí)重新打開(kāi)即可。
? 該項(xiàng)目的整體過(guò)程流圖見(jiàn)下圖。
圖 EG項(xiàng)目流程圖
把該知識(shí)點(diǎn)的操作產(chǎn)生新的數(shù)據(jù)集q1.sas7dbat,q2.sas7bdat,tiezishu.sas7bdat保存到路徑下,以備后續(xù)使用。
相關(guān)系數(shù)大小的判別標(biāo)準(zhǔn)在不同行業(yè)中是不同的,這里計(jì)算的相關(guān)系數(shù)僅僅是兩兩相關(guān)系數(shù),不考慮其他變量。
RFM模型是Bult and Wansbeek于1995年提出來(lái)的,認(rèn)為客戶行為三要素 Recency (R)、Frequency (F) 與 Monetary (M)構(gòu)成了客戶購(gòu)買潛力價(jià)值的核心組成部分。該模型經(jīng)常應(yīng)用于 CRM 框架下的客戶行為分析。
? 啟動(dòng)sas eg
? ?新建項(xiàng)目邏輯庫(kù)。執(zhí)行“工具”—“分配項(xiàng)目邏輯庫(kù)”—輸入8個(gè)字符以內(nèi)的英文名稱(比如test),點(diǎn)擊“下一步”按鈕;
? 在電腦中選擇一個(gè)文件夾,將其路徑作為邏輯庫(kù)的路徑(保證該路徑下面有tiezi.sas7bdat這個(gè)文件),單擊“下一步”按鈕;
? 把左側(cè)下方的邏輯庫(kù)test下面的tiezi數(shù)據(jù)集拖入右側(cè)的大窗口中。即可看到帖子數(shù)據(jù)集作為一個(gè)對(duì)象出現(xiàn)在右側(cè)窗口中。打開(kāi)tiezi數(shù)據(jù)集,點(diǎn)擊“查詢生成器”。
? 在tiezi中計(jì)算一列日期變量date,該變量是從time變量里面提取,格式為年月日。打開(kāi)tiezi數(shù)據(jù)集,生成查詢器aa1,生成變量date,這個(gè)變量等于datepart(time)。計(jì)算每個(gè)人登陸論壇當(dāng)天瀏覽的帖子量生成size變量。具體步驟如下:將查詢名稱改為aa1,將輸出名稱改為“test.aa1 ”(即將輸出的數(shù)據(jù)保存在邏輯庫(kù)test中),把左邊的t1表里面的memberid變量拉入右邊。如下圖所示。
圖 查詢生成器窗口
? 點(diǎn)擊“添加新的計(jì)算列”,“高級(jí)表達(dá)式”,點(diǎn)擊“下一步”。在“輸入表達(dá)式框”中輸入表達(dá)式datepart(t1.time)。點(diǎn)擊下一步。設(shè)定列名和標(biāo)識(shí)符均為date,更改變量格式為DATE7.。點(diǎn)擊下一步。點(diǎn)擊完成回到選擇數(shù)據(jù)選項(xiàng)卡頁(yè)面。見(jiàn)下圖。
圖 查詢生成器窗口
? 點(diǎn)擊“計(jì)算列”,“新建”,“匯總列”,點(diǎn)擊“下一步”,隨意選擇一個(gè)變量,比如time,然后點(diǎn)擊“下一步”,變量名為size,匯總部分選擇“count”,點(diǎn)擊“下一步”,點(diǎn)擊“完成”。點(diǎn)擊完成回到選擇數(shù)據(jù)選項(xiàng)卡頁(yè)面。勾選“僅選擇非重復(fù)行”,匯總組選項(xiàng)下取消自動(dòng)選擇組的勾選,設(shè)定組為memberid date。見(jiàn)下圖。
圖 查詢生成器窗口
? 生成一個(gè)過(guò)濾器,將date等于3653的行去掉,因?yàn)榇擞^測(cè)值屬于異常值。見(jiàn)下圖。
圖 查詢生成器窗口
? 打開(kāi)“對(duì)數(shù)據(jù)排序”選項(xiàng)卡,把memberid和date選入,兩個(gè)均為升序。見(jiàn)下圖。
圖 查詢生成器窗口
? 然后點(diǎn)擊“運(yùn)行”按鈕。 輸出結(jié)果見(jiàn)下圖。
圖 查詢生成結(jié)果
這樣數(shù)據(jù)集aa1中每個(gè)人每天就只有一條記錄了。
u 計(jì)算y1
新建一個(gè)程序文件,程序文件的名字定為“生成y1”。內(nèi)容如下:
? 生成新變量。根據(jù)第一個(gè)關(guān)鍵詞分組,生成變量x1,組內(nèi)取值為1,2,3….。需要建立一個(gè)程序運(yùn)行下面的語(yǔ)句。輸出數(shù)據(jù)集aa2到邏輯庫(kù)test里面。
圖 程序
程序中by的意思是對(duì)數(shù)據(jù)根據(jù)memberiid和date兩個(gè)變量進(jìn)行升序排序。
輸出結(jié)果如下圖所示
圖 數(shù)據(jù)集aa2輸出結(jié)果1
定義數(shù)據(jù)為面板數(shù)據(jù),橫截面為memberid,時(shí)間為lag_date??蛻魹g覽帖子時(shí)距離上一次瀏覽帖子的間隔天數(shù)y1,即date的一階差分。
圖 程序
輸出結(jié)果如下圖所示:
圖 數(shù)據(jù)集aa2輸出結(jié)果2
u 計(jì)算y2
新建一個(gè)程序文件,程序文件的名字定為“生成y2”。內(nèi)容如下:
計(jì)算會(huì)員瀏覽帖子時(shí)論壇的累積登陸天數(shù)y2,先生成一個(gè)變量,為count,取值為1。然后求這個(gè)變量的時(shí)間累計(jì)值就是y2。然后把數(shù)據(jù)集保存為aa3放在邏輯庫(kù)test下面。
圖 程序
圖 數(shù)據(jù)集aa3窗口
u 計(jì)算y3
新建一個(gè)程序文件,程序文件的名字定為“生成y3”。內(nèi)容如下:計(jì)算會(huì)員瀏覽帖子時(shí)論壇的累積瀏覽帖子數(shù)y3,就是變量size的累計(jì)值。
圖 程序
圖 數(shù)據(jù)集aa4窗口
u 數(shù)據(jù)進(jìn)一步過(guò)濾
? 點(diǎn)開(kāi)數(shù)據(jù)集aa4,點(diǎn)擊“查詢生成器”,查詢生成器名字為aa5,輸出的數(shù)據(jù)集名字為aa5。將數(shù)據(jù)集aa4里面的變量全部拉入數(shù)據(jù)框。
? 點(diǎn)擊“生成新列”maxdate,選擇“匯總列”,選擇“最大值”,點(diǎn)擊“完成”,回到主界面設(shè)定分組變量為Memberid。見(jiàn)下圖。
圖 查詢生成器窗口
? 建立過(guò)濾器,設(shè)定過(guò)濾器為maxdate=date。這個(gè)目的是每個(gè)用戶僅留最新的瀏覽日期,這樣做是為了利于提升聚類的效果。不適合將一個(gè)人的多天瀏覽放在一起聚
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10