數據分析 – 樂思網絡輿情監測,快全準! http://www.skyseo.cn/wp Tue, 23 Feb 2016 07:20:18 +0000 zh-CN hourly 1 https://wordpress.org/?v=5.5.20 租房數據分析:2016年在北京如何租到好房子? http://www.skyseo.cn/wp/article/11093 Tue, 23 Feb 2016 15:19:14 +0000 http://www.skyseo.cn/wp/?p=11093  

第一因素:面積!單間or整租?

 

 

對于什么面積性價比高,只需要下面這一張圖就一目了然:

 

當面積達到8平米時,均價達到最高,北京郵電大學附近的一間9平米的單間,都能租到2600元!相比之下,60-100平這個區間平均租金比較便宜。100平以上,小區和裝修都相對高端,所以均價高。如果租單間,15平米是性價比最高的。

所以,趕緊拉上你的基友,閨蜜,男女朋友去整租吧!不僅更安全方便,而且分攤后租金低很多!

 

第二:地段,從南到北,該租哪里?

 

在下面統計時,為了便于理解,單間統一換算為15平的價格,整租換算為65平的價格。

下圖是北京所有小區的平均租房單價,中關村,魏公村,國貿,三元橋都不便宜,大學聚集區和商業區的租金普遍較貴。

 

我們再以3D的形式繪制價格熱力圖(不同顏色代表不同區縣,密集喜愛癥福音):

 

 

再研究不同區縣的價格,為了便于觀察,我把綠中介的自如單間均價都換算為15平米:

出乎意料,曾經房價霸主西城,卻在租金上敗下陣來,還不如海淀東城。

 

我好奇五號線沿線的價格是如何分布的,于是做了一張下面的圖:

請仔細看曲線的下降點,這些都是北京環路的綠隔,沒什么商業,整體租金都會偏低,但非常不建議租這些地方,在北京的人都知道過天橋有多麻煩。

再看單間最貴的區域:學校周圍的單間尤其貴,這應該也是供求關系導致的。

 

再看整租:

金融街高富帥遍地,朝陽公園,工體都是外國人,他們自然要選擇整租,我所在的太陽宮有不少高端住宅,拉高了整體租金,真是過不下去了!

 

那朝向,樓層和房齡呢

 

整租時,價格對朝向和樓層都不是很敏感,但單間是很敏感的。先看朝向,顯而易見,因為采光通風較好,南北臥和西南臥是最貴的,相比北臥是最差的,價格差距在400左右。

 

獨立衛生間簡直不要太方便,萬惡的中介,不論是衛生間還是陽臺,都算入了房間的面積。?有衛生間的單間不超過1%,至少貴600塊錢

最后看樓層,自如的房子,出乎意料的給了準確地樓層,給了我寶貴的數據:

二層最貴,一層最便宜,三層和以上差不多。道理也簡單啊,一層采光不好,而且比較潮。高層爬樓比較麻煩。

 

順便一提,高端小區房齡新,租金貴,但2000年以前的小區,租金和房齡沒什么關系,相關系數只有0.048

 

裝上班族最看重的:地鐵

 

在北京,上班最重要的是坐地鐵方便,因此我統計了全北京12000個小區的信息,并計算了每個小區到最近地鐵站的步行距離。看得出地鐵對租金的影響還是很大的,相關系數為0.29。基本上,每離地鐵近100米,65平米房子的租金就會貴200塊錢。不過在地鐵站400米范圍內,地鐵對價格的影響并不顯著了。

 

下面繪制了到地鐵站步行距離和租房單價的散點圖:

結論:?遠離商業區和學校

 

由于租房不同于買房,市場瞬息萬變,盡量要避開學校和商業區,或選擇遠郊離地鐵近的小區,租金差異遠遠大于出行費用差異。

總體來看,租房主要是挑小區,同一小區內,除非裝修差太多,否則價格不會有太多差異。

 

?VIA:趙一鳴

]]>
數據分析中異常值在SAS中的處理 http://www.skyseo.cn/wp/article/9998 Mon, 10 Aug 2015 16:28:26 +0000 http://www.skyseo.cn/wp/?p=9998  

數據分析少不了和數據中的異常值打交道,Winsorize處理在SAS中經常使用。

 

Winsorize即極值處理,原理是將數據中的異常值修建,使之與正常分布的最大值與最小值相同。例如,你的數據整體位于[7090]這個區間,而分析的數據中有些值特別大或者特別小,比如出現了606595125這種數值,這時Winsorize處理就能夠將這些特別大或者特別小的值進行調整,讓這些異常值變成你自己定義的一個合理范圍中。對于上限,如果定義比90高出10%記為異常值,那么95這個值就會被SAS處理,放在Winsorize處理后的數據集里,而125將被看做異常值,不會放入Winsorize處理后的數據集里;同理,對于下限也是如此。

 

數據中含有缺失值和重復值時,進行Winsorize處理稍微會復雜一些。可以先對數據排序,但是缺失值首先會對計算造成不小的影響,所以Winsorize處理很方便解決這些常見難題。

 

SAS?Winsorize?處理過程:

 

%let?DSName?=sashelp.heart;

proc?iml;

/*?SAS/IML?moduleto?Winsorize?each?column?of?a?matrix.

Input?proportion?of?observations?toWinsorize:?prop?<?0.5.

Ex:?y=?Winsorize(x,?0.1)?computes?the?two-side?10%?Winsorized?data?*/

start?Winsorize(x,prop);

p?=?ncol(x);?/*?number?of?columns?*/

w?=?x;?/*?copy?of?x?*/

do?i?=?1?to?p;

z?=?x[,i];?/*?copy?i_th?column?*/

n?=?countn(z);?/*?count?nonmissing?values?*/

k?=?ceil(prop*n);?/*?number?of?obs?to?trim?from?each?tail?*/

r?=?rank(z);?/*?rank?values?in?i_th?column?*/

/*?find?target?values?and?obs?with?smaller/largervalues?*/

lowIdx?=?loc(r<=k?&?r^=.);

lowVal?=?z[loc(r=k+1)];

highIdx?=?loc(r>=n-k+1);

highVal?=?z[loc(r=n-k)];

/*?Winsorize?(replace)?k?smallest?and?klargest?values?*/

w[lowIdx,i]?=?lowVal;

w[highIdx,i]?=?highVal;

end;

return(w);

finish;

 

/*?test?thealgorithm?on?numerical?vars?in?a?data?set?*/

use?&DSName;

read?all?var?_NUM_into?X[colname=varNames];

close;

winX?=?Winsorize(X,0.1);

 

 

代碼中,矩陣winX包含經過Winsorize處理過的數據,如果你想輸出SASWinsorize處理后的數據,數據集屬于小數據集,可以使用代碼:%letDSName?=?sashelp.class;?進行實現。

 

大批量數據處理之前,想驗證SAS?Winsorize過程是否正確,可以借助SAS/IML計算出來的縮尾均值(?Winsorized?means),與SAS?PROC?UNIVARIATE?計算出來的縮尾均值進行比較。

 

/*?Compute?Winsorized?mean,?which?is?mean?of?the?Winsorized?data?*/

winMean?=?mean(winX);

print?winMean[c=varNames?f=8.4];

 

 

/*?Validation:?compute?Winsorized?means?byusing?UNIVARIATE?*/

ods?exclude?all;

proc?univariate?data=&dsname?winsorized=0.1;

ods?output?WinsorizedMeans=winMeans;

run;

ods?exclude?none;

 

proc?print?data=winMeans;

var?VarName?Mean;

run;

 

——SAS中文論壇

 

]]>