অবিচ্ছিন্ন লজিস্টিক রিগ্রেশনের জন্য নমুনা আকারের গণনা


11

কোনও গবেষণার জন্য যে নমুনার আকারের প্রয়োজন তা কীভাবে গণনা করা যায় যেখানে কোনও বিভাগের একটি গোষ্ঠী একটি সার্জারির সময় একক ধারাবাহিক পরিবর্তনশীল পরিমাপ করবে এবং তার দু'বছর পরে সেগুলি কার্যকরী ফলাফল বা প্রতিবন্ধী ফলাফল হিসাবে শ্রেণিবদ্ধ করা হবে।

আমরা যদি দেখতে চাই যে এই পরিমাপটি খারাপ পরিণতির পূর্বাভাস দিতে পারে কিনা। কিছু সময় আমরা উপরের অবিচ্ছিন্ন পরিবর্তনশীলটিতে একটি কাটা পয়েন্ট পেতে চাই যা আমরা প্রতিবন্ধী ফলাফলের সম্ভাবনা হ্রাস করতে হস্তক্ষেপ করার চেষ্টা করব।

কোন ধারনা? যে কোনও আর বাস্তবায়ন।


আপনি কি ফলোআপ চলাকালীন কিছু ড্রপআউট আশা করেন? আপনার মডেল অন্তর্ভুক্ত করার জন্য কি অন্য কোন covariates আছে?
সিলেট

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

ঠিক আছে, তবে সাধারণত প্রত্যাশিত% ড্রপআউট, কোভেরিয়েরেটের সংখ্যা এবং কোয়ারিয়েটগুলি ত্রুটি দিয়ে পরিমাপ করা হয় কিনা (যেমন, j.mp/9fJkhb দেখুন ) সূত্রটি প্রবেশ করুন (সমস্ত ক্ষেত্রে এটি নমুনার আকার বাড়িয়ে তুলবে))
chl

উত্তর:


7

লজিস্টিক রিগ্রেশন জন্য নমুনা আকার গণনা জটিল। আমি এখানে সংক্ষিপ্তসার চেষ্টা করব না। এই সমস্যার যথাযথ অ্যাক্সেসযোগ্য সমাধানগুলি পাওয়া যায়:

Hsieh FY। লজিস্টিক রিগ্রেশন জন্য নমুনা আকারের টেবিল। মেডিসিনে পরিসংখ্যান। 1989 জুলাই 8 (7): 795-802।

Hsieh FY, ইত্যাদি। রৈখিক এবং লজিস্টিক রিগ্রেশন জন্য নমুনা আকার গণনার একটি সহজ পদ্ধতি। মেডিসিনে পরিসংখ্যান। 1998 জুলাই 30; 17 (14): 1623-34।

উদাহরণ গণনা সহ ইস্যুগুলির একটি অ্যাক্সেসযোগ্য আলোচনা হোস্টার এবং লেমশোর প্রয়োগযুক্ত লজিস্টিক রিগ্রেশন এর শেষ অধ্যায় (বিভাগ 8.5 পিপি 339-347) থেকে পাওয়া যাবে ।


7

আমি সাধারণত সিমুলেশন চালানো সহজ এবং দ্রুত বলে মনে করি। কাগজগুলি পড়তে, বুঝতে এবং অবশেষে এই সিদ্ধান্তে পৌঁছতে দীর্ঘ সময় নেয় যে বিশেষ আগ্রহী এমন এক ক্ষেত্রে তারা প্রয়োগ করে না।

অতএব, আমি কেবল বেশ কয়েকটি বিষয় বেছে নেব, আপনার আগ্রহী কোভারিটকে সিমুলেট করুন (আপনি যেমন বিশ্বাস করেন এটি বিতরণ করা হবে), আপনি যে কার্যকরী ফর্মের ভিত্তিতে ভাল / খারাপ ফলাফলের সিমুলেট করবেন (কোভেরিয়েটের প্রান্তিক প্রভাব? অরৈখিক?) সর্বনিম্ন (চিকিত্সকভাবে) উল্লেখযোগ্য প্রভাব আকারের সাহায্যে আপনি সনাক্ত করতে চান, ফলাফলটি আপনার বিশ্লেষণের মাধ্যমে চালান এবং দেখুন যে প্রভাবটি আপনার আলফাতে পাওয়া গেছে কিনা। এটি 10,000 বার পুনরায় চালু করুন এবং দেখুন যে আপনি 80% সিমুলেশনে (অথবা অন্য যে কোনও শক্তি প্রয়োজন আপনার) এ প্রভাবটি পেয়েছিল কিনা। বিষয়ের সংখ্যা সামঞ্জস্য করুন, আপনি যখন খুশি না হন এমন ক্ষমতা না পাওয়া পর্যন্ত পুনরাবৃত্তি করুন।

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


আপনার কি আর-তে কোনও মামলার কাজ আছে?
ফেরেল

1
@ ফেরেল - এখানে একটি খুব ছোট স্ক্রিপ্ট রয়েছে, যা ধরে নেয় [0,1] - বহুভিত্তিক বিতরণ করা কোভেরিয়টস, কোভেরিয়েট এবং স্ট্যান্ডার্ড স্বাভাবিক গোলমালের প্রথম এবং তৃতীয় কোয়ার্টিলের মধ্যে 2 এর একটি ওআর, N = 100 এর জন্য .34 পাওয়ার দিকে পরিচালিত করে। আমার অনুমানের প্রতি সবকিছুই কতটা সংবেদনশীল তা দেখার জন্য আমি এটিকে ঘিরে খেলব: রান <- 1000; nn <- 100; set.seed (2010); সনাক্তকরণ <- প্রতিলিপি (এন = রান, এক্সপ্রেস = {কোভেরিয়েট <- রানিফ (এনএন); ফলাফল <- রানিফ (এনএন) <1 / (1 + এক্সপ্রেস (-2 * লগ (2) * কোভেরিয়েট + রনরম (এনএন)) ); সারাংশ (গ্ল্যাম (ফলাফল ~ covariate, পরিবার = "দ্বিপদী")) $ সহগ ["covariate", "PR (> | z |)"] <.05}) বিড়াল ("শক্তি:", যোগফল (সনাক্তকরণ) / রান, "\ n")
স্টিফান কোলাসা

1
আপনি যদি নিজের কোডটিকে প্যাসিটি ( পেস্টবিন ডটকম ) বা গিস্ট ( gist.github.com ) হিসাবে সংযুক্ত করতে পারেন তবে আপনি যদি এটি আরও সুবিধাজনক মনে করেন এবং আপনার মন্তব্যে এটিতে আবার লিঙ্ক করুন।
chl 20

@ সিএল: +১, অনেক ধন্যবাদ! এখানে সংক্ষিপ্তসারটি দেখুন: gist.github.com/607968
স্টিফান কোলাসা

দুর্দান্ত কোড তবে সমস্যা আছে। আমি তোমার মতো স্মার্ট নই। আমার এটিকে ধাপে ধাপে ভেঙে ফেলা দরকার। আমি কি তা চালিয়ে যাচ্ছি সিমুলেশন সংখ্যা? এনএন কী? এটি কি গবেষণায় বিষয় সংখ্যা? তারপরে আমি দেখতে পাচ্ছি যে আপনি কোভারিয়েটগুলির বিতরণ তৈরি করেছেন এবং তাদের একটি দোরের উপর নির্ভর করে একটি হ্যাঁ বা না তা নির্ধারণ করতে বাধ্য করেছেন।
ফেরেল

4

স্টিফান কোলাসার পোস্টটি অনুসরণ করে (আমি এটিকে কোনও মন্তব্য হিসাবে যুক্ত করতে পারি না), সিমুলেশনের জন্য আমার কাছে কিছু বিকল্প কোড রয়েছে। এটি একই বেসিক কাঠামোটি ব্যবহার করে তবে এটি আরও কিছুটা বিস্ফোরিত হয়, তাই সম্ভবত এটি পড়া সহজ। এটি লজিস্টিক রিগ্রেশন অনুকরণ করার জন্য ক্লিনম্যান এবং হর্টনের কোডের উপর ভিত্তি করে ।

নমুনা মধ্যে এনএন হয়। কোভেরিয়েটটি নিয়মিতভাবে বিতরণ করা উচিত এবং 0 এবং এসডি 1 মানে মানিক করা উচিত We আমরা এটি তৈরি করতে rnorm (nn) ব্যবহার করি। আমরা একটি বিজোড় অনুপাত নির্বাচন করি এবং এটি বিজোড়.রেটিওতে সঞ্চয় করি। আমরা ইন্টারসেপ্টের জন্য একটি সংখ্যা বাছাই করি। এই সংখ্যার পছন্দ "ইভেন্ট" এর নমুনার অনুপাতের অনুপাতটি নিয়ন্ত্রণ করে (উদাহরণস্বরূপ, 0.1, 0.4, 0.5)। আপনি সঠিক অনুপাত না পাওয়া পর্যন্ত আপনাকে এই সংখ্যাটি নিয়ে খেলতে হবে। নিম্নলিখিত কোডটি আপনাকে 950 এর একটি নমুনা আকার এবং 1.5 এর একটি ওআর সঙ্গে 0.1 অনুপাত দেয়:

nn <- 950
runs <- 10000
intercept <- log(9)
odds.ratio <- 1.5
beta <- log(odds.ratio)
proportion  <-  replicate(
              n = runs,
              expr = {
                  xtest <- rnorm(nn)
                  linpred <- intercept + (xtest * beta)
                  prob <- exp(linpred)/(1 + exp(linpred))
                  runis <- runif(length(xtest),0,1)
                  ytest <- ifelse(runis < prob,1,0)
                  prop <- length(which(ytest <= 0.5))/length(ytest)
                  }
            )
summary(proportion)

সারাংশ (অনুপাত) নিশ্চিত করে যে অনুপাতটি 0.1 ডলার

তারপরে একই ভেরিয়েবলগুলি ব্যবহার করে পাওয়ারটি 10000 রানের বেশি গণনা করা হয়:

result <-  replicate(
              n = runs,
              expr = {
                  xtest <- rnorm(nn)
                  linpred <- intercept + (xtest * beta)
                  prob <- exp(linpred)/(1 + exp(linpred))
                  runis <- runif(length(xtest),0,1)
                  ytest <- ifelse(runis < prob,1,0)
                  summary(model <- glm(ytest ~ xtest,  family = "binomial"))$coefficients[2,4] < .05
                  }
            )
print(sum(result)/runs)

আমি মনে করি যে এই কোডটি সঠিক - আমি ১৯৯৯ সালে সিসিহ (টেবিল ২) এ দেওয়া উদাহরণগুলির বিরুদ্ধে এটি পরীক্ষা করে দেখেছি এবং এটি সেখানে দেওয়া তিনটি উদাহরণের সাথে একমত বলে মনে হচ্ছে। আমি হোসমার এবং লেমেশোর পৃষ্ঠা 342 - 343-তে উদাহরণটির বিপরীতেও এটি পরীক্ষা করেছি, যেখানে এটি 0.75 পাওয়ার (হোসমার এবং লেমেশোর ০.৮ এর তুলনায়) পাওয়া গেছে। সুতরাং এটি হতে পারে যে কিছু পরিস্থিতিতে এই পদ্ধতির ক্ষমতাকে অবমূল্যায়ন করা হয়। যাইহোক, যখন আমি এই অন-লাইন ক্যালকুলেটরে একই উদাহরণটি চালিয়েছি , আমি দেখতে পেয়েছি যে এটি আমার সাথে একমত এবং হোসমার এবং লেমশোতে ফলাফল নয়।

কেস কেন এটি আমাদের যদি বলতে পারেন তবে আমি তা জানতে আগ্রহী।


আমার 2 টি প্রশ্ন রয়েছে যদি আপনি মনে করেন না) 1) অনুপাতটি কার্যকারিতাটি কেবল ইন্টারসেপ্টটি সঠিকভাবে পাওয়া যায়? ২) ইয়েস্ট ব্যবহার করার পিছনে যুক্তিটি কী (র্যান্ডম ইউনির অঙ্কের সাথে প্রোবের তুলনা করা)?
বি_মিনার

@ বি_মিনার ১) অন্যদিকে অন্যদিকে - অনুপাতটি সঠিক পেতে হলে আপনাকে ইন্টারসেপ্টটি সঠিকভাবে নির্ধারণ করতে হবে - সুতরাং যতক্ষণ আপনি প্রত্যাশা করছেন অনুপাত না পাওয়া পর্যন্ত ইন্টারসেপ্টটি সামঞ্জস্য করুন। 2) ইয়েস্টের যুক্তিটি হ'ল আমাদের একটি দ্বৈত 0 বা 1 ফলাফল পাওয়া উচিত। সুতরাং আমরা অবিচ্ছিন্ন বিতরণ থেকে প্রতিটি নমুনার তুলনা করি আমাদের দ্বিগুণ ফলাফল পেতে সম্ভাবনা (প্রোব) সাথে। 'রানিস' এলোমেলো ইউনিফর্ম বিতরণ থেকে আঁকতে হবে না - একটি দ্বিপদী বা অন্য বিতরণ আপনার ডেটাটির জন্য আরও বোধ করতে পারে। আশা করি এটি সাহায্য করবে (জবাব দেরির জন্য দুঃখিত)।
অ্যান্ড্রু

3

θ=10:θ=0

প্রকৃতপক্ষে, আপনার পড়াশোনার অনুক্রমিক ফ্যাশনে পরিচালিত হবে বলে মনে হচ্ছে। সেক্ষেত্রে এটি পরীক্ষার একটি সুস্পষ্ট অংশ হিসাবে প্রদান করতে পারে। অনুক্রমিক নমুনা প্রায়শই স্থির নমুনা-আকারের পরীক্ষার চেয়ে বেশি দক্ষ হতে পারে [গড়ে কম কম পর্যবেক্ষণের প্রয়োজন]।

ফরেল: আমি আপনার মন্তব্যের জবাবে এটি যুক্ত করছি।

একটি নমুনা আকারে পেতে, কেউ সাধারণত কোনও অনুমানের জন্য কিছু ধরণের নির্ভুলতার মানদণ্ড নির্দিষ্ট করে [যেমন একটি সিআই এর দৈর্ঘ্য] বা ডেটাতে চালিত হওয়ার জন্য পরীক্ষার একটি নির্দিষ্ট বিকল্পে পাওয়ার। আপনি এই দুটি মানদণ্ড উল্লেখ করেছেন বলে মনে হয়। এর সাথে কোনও ত্রুটি নেই, নীতিগতভাবে: আপনাকে কেবল তখন দুটি নমুনা আকারের গণনা করতে হবে - একটি পছন্দসই অনুমানের নির্ভুলতা অর্জন করতে - এবং অন্যটি বর্ণিত বিকল্পে পছন্দসই শক্তি অর্জন করতে। তারপরে দুটি নমুনা আকারের বৃহতটি হ'ল প্রয়োজনীয়। [বিটিডব্লিউ - ৮০% শক্তি বলা ছাড়া - আপনি কোন পরীক্ষাটি করার পরিকল্পনা করছেন - বা আপনি যে বিকল্পটিতে ৮০% শক্তি চান তা উল্লেখ করেছেন বলে মনে হয় না।]

ধারাবাহিক বিশ্লেষণ ব্যবহার করার জন্য: বিষয়গুলি যদি একই সাথে অধ্যয়নের মধ্যে তালিকাভুক্ত হয়, তবে একটি নির্দিষ্ট নমুনার আকারটি বোঝায়। তবে বিষয়গুলি যদি খুব কম এবং এর মধ্যে থাকে তবে প্রয়োজনীয় নম্বরটি তালিকাভুক্ত হতে এক বা দুই বছর [বা আরও বেশি] সময় লাগতে পারে। সুতরাং বিচারটি তিন বা চার বছর [বা আরও বেশি] চলতে পারে। সেক্ষেত্রে একটি ক্রমিক স্কিমটি তার চেয়ে শীঘ্রই থামার সম্ভাবনা সরবরাহ করে - যদি আপনি যে প্রভাব [গুলি] সন্ধান করছেন সেক্ষেত্রে পরীক্ষার আগে এটি পরিসংখ্যানগতভাবে তাৎপর্যপূর্ণ হয়ে উঠছে।


খারাপ বনাম খারাপ ফলাফলের সম্ভাবনার ক্ষেত্রে মানদণ্ড 10% পার্থক্য করবে। বা বলতে পারি যেহেতু এটি লজিস্টিক রিগ্রেশন হবে, বৈষম্য অনুপাত = 2. আলফা = 0.05, শক্তি = 80%, আমি এখনও জানি না যে অবিচ্ছিন্ন চলকের উপর পুলের বৈকল্পিক কী তা তবে আমরা ধরে নিই যে মানক বিচ্যুতি 7 মিমিএইচজি হয়। ক্রম বিশ্লেষণ ভাল হবে তবে চূড়ান্ত ফলাফলটি পরিমাপটি নেওয়া হওয়ার দুই বছর পরে।
ফেরেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.