99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀學(xué)習(xí)和使用SAS的一點感想
學(xué)習(xí)和使用SAS的一點感想
2015-09-14
收藏

學(xué)習(xí)和使用SAS的一點感想



想說一說自己在學(xué)習(xí)和使用SAS時的所得所失。我可能走了許多彎路,尤其是比起那些具備更多的信息的,更加年輕的人。我的經(jīng)驗或許比你的要多,也可能更加微不足道。但是分享的本身,即使是微末的一點點,也是樂趣。不是嗎?

一直到現(xiàn)在,我還覺得自己做SAS還是挺辛苦的,差不多從來就沒有很多人那樣的舉重就輕。如果我說自己學(xué)了三年的SAS還不成的話,有人會納悶。納悶SAS不就是幾個月的速成軟件嗎?對一些人來說,這無疑是正確的??墒侨绻姓J自己的智商并非天賦異秉而高人一等的話,就得潛下心來,不要妄自菲薄。我自己學(xué)了五年SAS,還經(jīng)常犯錯。我的同事做的更好,可是也犯錯誤。

我所學(xué)專業(yè)是統(tǒng)計,入門的軟件是R,在工作里差不多只和SAS打交道。用SAS處理數(shù)據(jù)分析數(shù)據(jù)。不多的時候用R運行一下別人的程序,或者是SAS里沒有成形的較新的方法。一年也設(shè)計一二或三個DATABASE(用ACCESS)。我的工作內(nèi)容差不多可以普遍到整個做統(tǒng)計分析行業(yè):大致如此。最重要的當(dāng)然是數(shù)據(jù)分析,或者說分析數(shù)據(jù)就是自己的日常工作內(nèi)容。幾乎無時不刻的用SAS。

因為入門晚,大概有五年的時間,開始用的差不多就是SAS V9的版本。所以每當(dāng)看到有些SAS使用者在用proc plot一類的過程,看到那些星星點點的黑白的制圖,除了肅然起敬之外,也明白了為什么很多人會討厭SAS的圖形功能。從現(xiàn)在SAS的圖形功能及其和ODS輸出的良好結(jié)合性來看,sas的制圖是很美觀的。而這種對SAS舊版本的較為薄弱的制圖形功能的輕視,幾乎成了許多人的共識:不要用sas畫圖。我很幸運,過度了大概兩年時間的gplot,到了現(xiàn)在的sg-plot。我的工作任務(wù)之一是給“科學(xué)研究”(我總這在想這種提法科學(xué)嗎?)提供數(shù)據(jù)分析報告,從發(fā)表雜志文章的角度來看,sas圖例無論是從清晰度還是審美的角度來看,都是雜志圖例的首選之一。不象有的人抱怨excel成圖的DPI太低。其實有時候R也存在這個問題。

SAS涵蓋比較廣泛。其特定的功用可以延伸到許多不同的行業(yè)。而量身定制的衍生產(chǎn)品也有泛濫的趨勢。不過,SAS/STAT應(yīng)該仍然是它的核心。相比其實不太有歷史感的9.0版本,SAS在STAT上的拓展也可以說是日新月異。比如說在MCMC上,在非參數(shù)估計上,在隨機線性模型的補充改善上都是這幾年的事情。且不提更新的分位回歸,結(jié)構(gòu)方程分析(PROC CALIS),以及混合模型等等。原來覺得很難做的東西,現(xiàn)在都成為了常規(guī)。幾年以前的統(tǒng)計博士或許不懂生存分析。現(xiàn)在差不多本科生都知道怎么繪制生存曲線。如同統(tǒng)計在運算方面的突飛猛進,SAS也與時俱進。所以引以為自豪的太老的SAS經(jīng)驗,如果沒有變成進步的阻礙的話,也成了自吹自擂的慰籍。

我在學(xué)了兩年的SAS之后,覺得SAS其實也沒有什么。其實都是自菲薄。SAS作為一個軟件,承載的是更加厚重的統(tǒng)計學(xué)的發(fā)展。我曾經(jīng)和同事談?wù)撨^PROC GLM。我認為GLM基本上取代了REG過程。可是現(xiàn)在,我不得不把許多線性分析的問題從GLM挪到REG里去做,因為REG在許多方面更加有效和全面。比如說模型選擇和診斷。類似的如同GENMOD和LOGISTIC的關(guān)系。GENMOD也許可以做的更多,但是無疑LOGISTIC在logit模型上做的更深更精確。

和許多的軟件一樣,SAS是個大雜燴,可以提供許多菜單以供顧客選擇。考慮到這一點,雜這個概念非常重要。雜用,其實是取其精華,不囿于某個步驟和過程。我看到一些人試圖用數(shù)據(jù)步或者SQL去解決統(tǒng)計的問題。南轅北轍。事倍功半。因為SAS已經(jīng)提供更加縝密的統(tǒng)計過程來計算統(tǒng)計量解決統(tǒng)計問題。如果我說你在SQL費力半天求的中位數(shù)其實是錯誤,可能你生氣??墒鞘鞘聦?。還有一個例子是關(guān)于使用PROC NLMIXED的問題。這是一個用最大似然法解決非線性模型的統(tǒng)計過程。其實,且不提MAXIMUM LIKELIHOOD在許多問題上并非是最有效的最優(yōu)化的,盲目的寫了很長的公式,而人為忽略其他的過程或許已經(jīng)提供更優(yōu)化的解法,并非是表現(xiàn)好的數(shù)學(xué)功底的唯一方法。

作為一個做數(shù)據(jù)分析的,我切實的建議是,不要忽略數(shù)據(jù)步的作用。做sas開始的很長一段時間里,你或許都無法避免程序疏漏的困擾。這些錯誤很大的一部分來自對DATA STEP沒有深刻的理解。我有時候驚訝自己為什么總犯些很低級的錯誤。其實這些錯誤是有根源的。好的數(shù)據(jù)分析的基礎(chǔ)是真確的數(shù)據(jù)。如果失去了這個基礎(chǔ),其它的似乎變得沒有意義。包括我自己,時常的尷尬是為什么同樣的數(shù)據(jù),分析結(jié)果卻無法復(fù)制。原因差不多總是源于對SAS理解的不深不全。

我不希望自己把SAS理解為專于程序編制的軟件。其實其最終的目的應(yīng)該是進行統(tǒng)計分析,產(chǎn)生分析總結(jié)的報告。所以編程只是手段而已。data step再難,多做幾遍,多記憶就會掌握,但是繁復(fù)變化的統(tǒng)計理論和運算,需要不斷的理解和改進。所以一個統(tǒng)計分析報告或許也幾易其稿,不斷改善。

和我一樣,你或許也感受到SAS的易和不易。不過,通過學(xué)習(xí)和使用SAS而獲得對知識的興趣,可能使得我們對自己的看似無聊的工作減少了許多抱怨。CDA數(shù)據(jù)分析師官網(wǎng)


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }