-2
로지스틱 회귀에 대해 Newton Raphson을 코딩했습니다. 불행히도 나는 많은 데이터를 수렴하지 않았다. 내가 어디 있는지 모르겠다. 누구든지 문제를 파악하는 데 도움을 줄 수 있습니다.로지스틱 회귀에 대한 Newton Raphson
먼저 데이터는 다음과 같습니다. y는 응답 (0,1)을 나타내며, Z는 탐색 변수 인 115 * 30 행렬입니다. 30 가지 매개 변수를 추정해야합니다.
y = c(rep(0,60),rep(1,55))
X = sample(c(0,1),size=3450,replace=T)
Z = t(matrix(X,ncol=115))
#The code is ;
B = matrix(rep(0,30*10),ncol=10)
B[,1] = matrix(rep(0,30),ncol=1)
for(i in 2 : 10){
print(i)
p <- exp(Z %*%as.matrix(B[,i]))/(1 + exp(Z %*% as.matrix(B[,i])))
v.2 <- diag(as.vector(1 * p*(1-p)))
score.2 <- t(Z) %*% (y - p) # score function
increm <- solve(t(Z) %*% v.2 %*% Z)
B[,i] = as.matrix(B[,i-1])+increm%*%score.2
if(B[,i]-B[i-1]==matrix(rep(0.0001,30),ncol=1)){
return(B)
}
}