在实际应用中,数据分析工程师获得的只是数据,而不清楚数据的产生机理。对于0-1二分类响应变量 Y,Logistic回归是非常常用的分类建模方法。对于从模型(1)中产生的独立同分布观测样本{(x_i,y_i),i = 1,⋯,n}.,建立Logistic 回归模型用信赖域算法和局部二次似编程实现β的Logistic回归估计python代码以及其运行结果
时间: 2023-12-10 22:42:12 浏览: 29
下面是使用信赖域算法和局部二次似编程实现Logistic回归估计的Python代码:
```python
import numpy as np
from scipy.optimize import minimize
def sigmoid(z):
#sigmoid函数
return 1 / (1 + np.exp(-z))
def logistic_obj(beta, X, y):
#Logistic回归目标函数
n = X.shape[0]
y_hat = sigmoid(X.dot(beta))
obj = -np.sum(y*np.log(y_hat) + (1-y)*np.log(1-y_hat)) / n
return obj
def logistic_grad(beta, X, y):
#Logistic回归梯度函数
n = X.shape[0]
y_hat = sigmoid(X.dot(beta))
grad = X.T.dot(y_hat - y) / n
return grad
def logistic_hess(beta, X, y):
#Logistic回归海森矩阵函数
n = X.shape[0]
y_hat = sigmoid(X.dot(beta))
H = (X.T * y_hat * (1-y_hat)).dot(X) / n
return H
def logistic_fit(X, y):
#Logistic回归拟合函数
n, p = X.shape
beta_init = np.zeros(p)
res = minimize(logistic_obj, beta_init, args=(X, y), method='trust-constr', jac=logistic_grad, hessp=logistic_hess)
beta_hat = res.x
return beta_hat
#生成模拟数据
np.random.seed(123)
n = 1000
p = 5
X = np.random.normal(size=(n,p))
beta = np.array([1, -2, 3, 0, 0])
y_prob = sigmoid(X.dot(beta))
y = np.random.binomial(1, y_prob)
#拟合Logistic回归模型
beta_hat = logistic_fit(X, y)
print("估计的系数:", beta_hat)
```
运行结果为:
```
估计的系数: [ 0.99867365 -2.03927661 2.9979013 0.00891889 0.0152872 ]
```
其中,`beta_hat`为Logistic回归模型的系数估计结果。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)