R語言做邏輯回歸


 

前面寫過一個多分類的邏輯回歸,現在要做一個簡單的二分類,用glm函數

導入csv格式如下:

 

mydata<-read.csv("D://li.csv",header=T)
colnames(mydata)<-c("x1","x2","x3","y")
model<-glm(formula = y ~ x1+x2+x3, family = quasibinomial(link = "logit"),data = mydata)
summary(model)

  這里family沒有使用binomial,那個會報一個警告,

Warning message:
In eval(family$initialize) : 二項通用線性模型里出現了非整數的#成功!

查了一下,有可能數據是不均勻分布(Overdispersion),把family改成quasi的就行了。不過AIC會變成NA,這下擬合的P值就顯著多了。

family = quasibinomial(link = "logit")

 

可以參考這個網站:https://stats.stackexchange.com/questions/91724/what-is-quasi-binomial-distribution-in-the-context-of-glm

這里有介紹兩者的區別

 

做個圖,貌似離邏輯回顧的那個曲線有點差距啊。

p<-predict(model,type='response')

 plot(seq(-2,2,length=30),sort(p),col='blue')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM