কীভাবে একটি লজিস্টিক রিগ্রেশন এর সহগগুলির মান ত্রুটিগুলি গণনা করা যায়


18

আমি লজিস্টিক রিগ্রেশন প্রশিক্ষণ এবং পরীক্ষা করতে পাইথনের সাইকিট-লার্ন ব্যবহার করছি।

সাইকিট-লার্ন স্বতন্ত্র ভেরিয়েবলগুলির রিগ্রেশন এর সহগগুলি প্রদান করে তবে এটি সহগের মানক ত্রুটি সরবরাহ করে না। প্রতিটি সহগের জন্য একটি ওয়াল্ড পরিসংখ্যান গণনা করতে আমার এই স্ট্যান্ডার্ড ত্রুটিগুলি দরকার এবং ঘুরে, এই সহগগুলি একে অপরের সাথে তুলনা করুন।

আমি কীভাবে একটি লজিস্টিক রিগ্রেশন ( এখানে ) এর সহগের জন্য স্ট্যান্ডার্ড ত্রুটিগুলি গণনা করতে পারি তার একটি বর্ণনা পেয়েছি তবে এটি অনুসরণ করা কিছুটা কঠিন is

আপনি যদি এই স্ট্যান্ডার্ড ত্রুটিগুলি কীভাবে গণনা করতে পারেন এবং / অথবা আমাকে একটি সরবরাহ করতে পারেন তার একটি সহজ, সংক্ষিপ্ত ব্যাখ্যা সম্পর্কে যদি আপনার জানা থাকে তবে আমি সত্যিই এটির প্রশংসা করব! আমি নির্দিষ্ট কোডটি বোঝাতে চাইছি না (যদিও দয়া করে সহায়তার জন্য যে কোনও কোড পোস্ট করতে নির্দ্বিধায়), বরং জড়িত পদক্ষেপগুলির একটি অ্যালগরিদমিক ব্যাখ্যা।


1
আপনি কি স্ট্যান্ডার্ড ত্রুটিগুলি পেতে পাইথন কোডের জন্য জিজ্ঞাসা করছেন, বা এসইএসকে কীভাবে গণনা করা হচ্ছে (গাণিতিক / অ্যালগোরিদমিকভাবে) যাতে আপনি নিজেরাই করতে পারেন? যদি পূর্বে থাকে তবে এই প্রশ্নটি সিভি-র জন্য অফ-টপিক হবে (আমাদের সহায়তা কেন্দ্রটি দেখুন ) তবে স্ট্যাক ওভারফ্লোতে বিষয় হতে পারে । যদি আধুনিক হয় তবে এটি এখানে অনন্য-বিষয় হবে (তবে আপনি কোনও কোডের পরামর্শ পেতে পারেন না)। এটি পরিষ্কার করতে দয়া করে আপনার প্রশ্নটি সম্পাদনা করুন। যদি এটি পূর্বের হয় তবে আমরা এটিকে আপনার জন্য এসও-তে স্থানান্তর করতে পারি ( দয়া করে ক্রস-পোস্ট করবেন না )।
গুং - মনিকা পুনরায়

1
ধন্যবাদ, গুং আমি উদ্দেশ্যমূলকভাবে এখানে পোস্ট করেছি কারণ আমি পরবর্তীটির প্রত্যাশা করছি, তবে আমি স্পষ্ট করতে সম্পাদনা করব। আমি উল্লেখ করেছি যে আমি পাইথনে সাইকিট-লার সাথে কাজ করছি যদি কেউ এই সফ্টওয়্যারটি ব্যবহার করে তবে সে সম্পর্কে নির্দিষ্ট টিপস আমাকে দিতে পারে।
জ্ঞান বেদ

হাই @ জ্ঞানবেদ, আমি এখন একই সমস্যার মুখোমুখি, আপনার চূড়ান্ত সমাধান কী, দয়া করে?
zyxue

উত্তর:


12

আপনার সফ্টওয়্যারটি কি আপনাকে একটি প্যারামিটার কোভারিয়েন্স দেয় (বা ভেরিয়েন্স-কোভারিয়েন্স) ম্যাট্রিক্স দেয়? যদি তা হয় তবে স্ট্যান্ডার্ড ত্রুটিগুলি হ'ল ম্যাট্রিক্সের ত্রিভুজের বর্গমূল। লিনিয়ার এবং জেনারালাইজড লিনিয়ার মডেলগুলির জন্য ম্যাট্রিক্স কীভাবে পাবেন তার জন্য আপনি সম্ভবত একটি পাঠ্যপুস্তকের সাথে (বা বিশ্ববিদ্যালয়ের লেকচার নোটগুলির জন্য গুগল) পরামর্শ নিতে চান ।ভীβ


1
জেনারালাইজড লিনিয়ার মডেল কেসের জন্য আমি অনলাইনে কিছু সন্ধান করতে পারিনি (সম্ভবত আমি সঠিক অনুসন্ধানের শব্দগুলি জানি না?) সহায়তার প্রয়োজন?
কেভিন এইচ লিন

3
গুগল করার কয়েক মিনিটের পরে আমি এটি পেয়েছি। আমার পরামর্শটি প্রথমে বুঝতে হবে কীভাবে কোনও মৌলিক রৈখিক মডেলটিতে প্যারামিটারের বৈকল্পিক গণনা করা হয়। এটি একবার পেয়ে গেলে, জিএলএম-এর এক্সটেনশান সহজ। সব মিলিয়ে কীভাবে এটি গণনা করতে হবে এবং সফ্টওয়্যার প্যাকেজে কীভাবে এটি পাবেন তা জেনে রাখা একই জিনিস নয়। www.sagepub.com/upm-data/21121_Apter_15.pdf
জেনেরিক_উজার

18

মডেল সহগের স্ট্যান্ডার্ড ত্রুটিগুলি হল কোভারিয়েন্স ম্যাট্রিক্সের তির্যক এন্ট্রিগুলির বর্গমূল। নিম্নোক্ত বিবেচনা কর:

  • ম্যাট্রিক্স ডিজাইন করুন:

এক্স = [1এক্স1,1...এক্স1,পি1এক্স2,1...এক্স2,পি1এক্সএন,1...এক্সএন,পি]এক্সআমি,আমি

(দ্রষ্টব্য: এটি একটি ইন্টারসেপ্ট সহ একটি মডেল ধরেছে))

  • ভি = [π^1(1-π^1)0...00π^2(1-π^2)...000...π^এন(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সম্ভবত আপনি যদি "আউট-দ্য বাক্স" ডায়াগনস্টিকের প্রচুর অ্যাক্সেস চান তবে এটি ব্যবহার করার জন্য সম্ভবত আরও ভাল প্যাকেজ হবে।


2
মেমরির সমস্যাগুলি এড়াতে এবং একক ম্যাট্রিক্সের ক্ষেত্রে অ্যাকাউন্ট তৈরি করতে আপনি নিজের কোডটি নীচের হিসাবে আপডেট করতে পারেনV = np.product(predProbs, axis=1); covLogit = np.linalg.pinv(np.dot(X_design.T * V), X_design)
স্থায়ীফিশ

6

আপনি যদি অনুমান করতে আগ্রহী হন, তবে সম্ভবত আপনি সম্ভবত স্ট্যাটাস মডেলগুলি একবার দেখতে চান । স্ট্যান্ডার্ড ত্রুটি এবং সাধারণ পরিসংখ্যান পরীক্ষা উপলব্ধ। এখানে একটি লজিস্টিক রিগ্রেশন উদাহরণ


সুপারিশের জন্য ধন্যবাদ! আমি স্ট্যাটাসমডেলগুলি খতিয়ে দেখব। খুব খারাপ যে সাইকিট-লার্ন এই ধরণের আউটপুট সরবরাহ করে না।
জ্ঞান বেদ

1
হ্যাঁ। (ঘনঘনবাদী) হাইপোথিসিস পরীক্ষার জন্য সরঞ্জাম সরবরাহ করা কেবল মেশিন লার্নিং-টাইপ টুলবক্সগুলির লক্ষ্য নয়। যদি আপনি ডেটা-আকারের সীমাবদ্ধতায় চলে যান যা স্ট্যাটাস মডেলগুলিতে ভাল কাজ করে না তবে বিজ্ঞান-শিখায় কাজ করে, আমি গিথুব সম্পর্কে তাদের সম্পর্কে আগ্রহী হতে আগ্রহী।
jseabold

@ জেসিয়াবোল্ড যাইহোক, আপনি যদি লজিস্টিক রিগ্রেশনটিতে বৈশিষ্ট্যটির গুরুত্বের কিছু অ্যাডহক ধারণা পেতে চান, তবে আপনি তাদের স্ট্যান্ডার্ড ত্রুটিগুলি সম্পর্কে চিন্তা না করেই প্রভাবের আকারগুলি (গুণফল )গুলি পড়তে পারবেন না। সুতরাং আপনি যদি ঘন ঘন পরীক্ষামূলক পরীক্ষা না করে থাকেন এবং আপনি প্রভাবের আকার এবং দৃust়তার কিছু ইঙ্গিত চান তবে ভেরিয়েন্স আউটপুটের স্ক্লার্ননের অভাব চ্যালেঞ্জপূর্ণ।
ইলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.