2017年5月26日 星期五

再說回歸分析 (Talking about Regression onice again!)

    在日常的回歸分析中, 大多都只用到Linear Regression(線性回歸)或Logistic Regression(邏輯回歸); 若有進一步需要的話, 可能會用到Multinorminal Regression(多元無序回歸)或等級(多元有序回歸回歸).
    但每一類的回歸分析, 都有其應用條件及限制, 如最簡單的線性回歸, 其應用條件是Y變項的數據類型應是計量資料, 且符合LINE原則:
L: 線性的Y變項;
I: 各變項應互相獨立(無多重共線性);
N:數據要符合正態分佈;
E: 隨機誤差項盡量少...

但這些條件往往很難完全滿足, 若真的不滿足, 只好另有選擇了...
如I不滿足, 即數據間有多重共線性, 就只好用Ridge Regression(岭回歸), Lasso回歸...
如果N不滿足, 即數據呈偏態分佈, 可選用Quantile Regression(百分位數回歸)...
如果E不滿足, 即誤差太大, 可試試Robust Regression(穩健回歸)...

體現到~解決方法比問題多...

可以讀讀這篇文章, 會有更大的收獲... 数据分析员不得不知的7种回归技术

2017年5月20日 星期六

在R軟件內進行回歸分析及啞變量化 (Performing regression and dummy in R)

    回歸分析是統計學的一個很重要內容, 因為它可以尋找原因... 但回歸分析的種類很多, 這可以它的依變項(Dependent variable)及它的功能來分類吧!
    在R統計軟件, 進行回歸分析可以很方便地完成, 例如主要的回歸分析:
1.Linear Regression: lm(), glm(family=gaussian)
2.Logistic Regression: glm(family=binomial)
3.泊松回歸: glm(family=poission)
4.多元無序回歸: nnet::multinom()
5.多元有序回歸: MASS::polr()
    只要確定了函數, 公式, 就可以完成對應的回歸了!
    另外, 回歸分析的一個重點步驟, 就是進行啞變量(Dummy)了, 其實在數據庫內, 將變項的類型設定好, 如計數資料設為int, 分類資料設為factor, 在進行主要的回歸分析時, R會自動進行啞變量的處理, 如:
    一個數據庫有4個變項(num, brand, female, age), 在初初讀入時全部都設定為int(數值型), 設定brand及female兩變項為factor(分類型)後, 以female為依變項進行Logistic Regression, 即可得:

> log.fit<-glm(female~brand+age,family = binomial,data = example_logistic_regression)
> summary(log.fit)

Call:
glm(formula = female ~ brand + age, family = binomial, data = example_logistic_regression)

Deviance Residuals:
    Min       1Q   Median       3Q      Max 
-1.5523  -1.3217   0.8738   0.9375   1.1586 

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept)  1.08843    1.17784   0.924  0.35544  
brand3       0.46076    0.22489   2.049  0.04048 *
brand2       0.55677    0.19261   2.891  0.00384 **
age         -0.02747    0.03712  -0.740  0.45928  
---
Signif. codes: 
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 965.47  on 734  degrees of freedom
Residual deviance: 956.86  on 731  degrees of freedom
AIC: 964.86

Number of Fisher Scoring iterations: 4
 
    它將brand變項自動啞變量了! 再看看如何出我們很重視的OR值, 結果與SPSS的結果無異呢...
     
> log.or<-logistic.display(log.fit)
> log.or
 
Logistic regression predicting female : 1 vs 0 
                 crude OR(95%CI)   adj. OR(95%CI)   
brand: ref.=1                                       
   3             1.47 (0.99,2.16)  1.59 (1.02,2.46) 
   2             1.68 (1.17,2.42)  1.75 (1.2,2.55)  
    
age (cont. var.) 1.01 (0.94,1.07)  0.97 (0.9,1.05) 
                 P(Wald's test) P(LR-test)
brand: ref.=1                   0.014     
   3             0.04                     
   2             0.004                    
                                        
age (cont. var.) 0.459          0.459     
                                          
Log-likelihood = -478.4285
No. of observations = 735
AIC value = 964.8569 
 
當然據我所知, R軟件在有些回歸分析中不能自動啞變量的, 就可參考些文章了!

2017年5月3日 星期三

這本"量表編製"的書不好讀... (It is hard to read this book...)

    早約2個月前, 在中央圖書館見到一本關於"量表編製"的書籍.
    心想: 雖然自己學習流行病及生物統計學多年, 使用較多的問卷(量表), 但也沒有好好的研究過量表; 而且在研究生時期, 也沒有學過量表研製的課程. 3來是以往一些朋友問我關於量表的事, 只知期表面而不知其內涵... 實是有愧. 如今可以借到, 應是時候好好地"補習"一下.
    經過兩個月的閱讀, 這本書是有點失望的! 因為:
1.翻譯得不好, 譯句有很多語法的錯誤, 所以很難理解作者的原意;
2.其次是作者論述的深度不足, 較多的理論膚淺呢!
3.亦沒有很好的實踐指導...
    讀完後, 我試問問自己, 得到些什麼? 誠言, 較少!