মডেল সহগের স্ট্যান্ডার্ড ত্রুটিগুলি হল কোভারিয়েন্স ম্যাট্রিক্সের তির্যক এন্ট্রিগুলির বর্গমূল। নিম্নোক্ত বিবেচনা কর:
এক্স = ⎡⎣⎢⎢⎢⎢⎢11⋮1এক্সঘ , ঘএক্স2 , 1⋮এক্সএন , 1......⋱...এক্স1 , পিএক্স2 , পি⋮এক্সএন , পি⎤⎦⎥⎥⎥⎥⎥এক্সi , jঞআমি
(দ্রষ্টব্য: এটি একটি ইন্টারসেপ্ট সহ একটি মডেল ধরেছে))
- ভি = ⎡⎣⎢⎢⎢⎢⎢π^1( 1 - π)^1)0⋮00π^2( 1 - π)^2)⋮0......⋱...00⋮π^এন( 1 - π)^এন)⎤⎦⎥⎥⎥⎥⎥π^আমিআমি
কোভেরিয়েন্স ম্যাট্রিক্স হিসাবে লেখা যেতে পারে:
(এক্সটিভি এক্স)- 1
এটি নিম্নলিখিত কোড সহ প্রয়োগ করা যেতে পারে:
import numpy as np
from sklearn import linear_model
# Initiate logistic regression object
logit = linear_model.LogisticRegression()
# Fit model. Let X_train = matrix of predictors, y_train = matrix of variable.
# NOTE: Do not include a column for the intercept when fitting the model.
resLogit = logit.fit(X_train, y_train)
# Calculate matrix of predicted class probabilities.
# Check resLogit.classes_ to make sure that sklearn ordered your classes as expected
predProbs = resLogit.predict_proba(X_train)
# Design matrix -- add column of 1's at the beginning of your X_train matrix
X_design = np.hstack([np.ones((X_train.shape[0], 1)), X_train])
# Initiate matrix of 0's, fill diagonal with each predicted observation's variance
V = np.diagflat(np.product(predProbs, axis=1))
# Covariance matrix
# Note that the @-operater does matrix multiplication in Python 3.5+, so if you're running
# Python 3.5+, you can replace the covLogit-line below with the more readable:
# covLogit = np.linalg.inv(X_design.T @ V @ X_design)
covLogit = np.linalg.inv(np.dot(np.dot(X_design.T, V), X_design))
print("Covariance matrix: ", covLogit)
# Standard errors
print("Standard errors: ", np.sqrt(np.diag(covLogit)))
# Wald statistic (coefficient / s.e.) ^ 2
logitParams = np.insert(resLogit.coef_, 0, resLogit.intercept_)
print("Wald statistics: ", (logitParams / np.sqrt(np.diag(covLogit))) ** 2)
যা কিছু বলা হচ্ছে, statsmodels
সম্ভবত আপনি যদি "আউট-দ্য বাক্স" ডায়াগনস্টিকের প্রচুর অ্যাক্সেস চান তবে এটি ব্যবহার করার জন্য সম্ভবত আরও ভাল প্যাকেজ হবে।