সেন্সরযুক্ত রিগ্রেশন পদ্ধতিগুলি এই জাতীয় ডেটা পরিচালনা করতে পারে। তারা ধরে অবশিষ্টাংশগুলি সাধারণ রৈখিক প্রতিরোধের মতো আচরণ করে তবে তাদের পরিবর্তন করা হয়েছে
(বাম সেন্সরিং): নিম্ন প্রান্তিকের চেয়ে ছোট ছোট সমস্ত মান, যা তথ্য থেকে পৃথক, (তবে এক থেকে অন্য ক্ষেত্রে পরিবর্তিত হতে পারে) এর পরিমাণ নির্ধারণ করা হয়নি; এবং / অথবা
(ডান সেন্সরিং): উচ্চ থ্রেশহোল্ডের চেয়ে সমস্ত মান বড়, যা তথ্য থেকে পৃথক (তবে এক ক্ষেত্রে থেকে অন্য ক্ষেত্রে পরিবর্তিত হতে পারে) পরিমাণ মঞ্জুর হয়নি।
"পরিমাণযুক্ত নয়" এর অর্থ আমরা জানি যে কোনও মান তার প্রান্তিকের নীচে (বা উপরে) পড়ে বা না, তবে সবই।
ফিটিং পদ্ধতিগুলি সাধারণত সর্বাধিক সম্ভাবনা ব্যবহার করে। যখন ভেক্টর এক্স এর সাথে সম্পর্কিত প্রতিক্রিয়া মডেলটি ফর্মটিতে থাকবেYX
Y∼Xβ+ε
IID সঙ্গে একটি সাধারণ বিতরণ থাকার এফ σ সঙ্গে পিডিএফ চ σ (যেখানে σ অজানা "উত্পাত পরামিতি" হয়), তারপর - সেন্সর অনুপস্থিতিতে - পর্যবেক্ষণ লগ সম্ভাবনা ( এক্স আমি , Y আমি ) হয়εFσfσσ(xi,yi)
Λ=∑i=1nlogfσ(yi−xiβ).
বর্তমান সেন্সর সঙ্গে আমরা তিন মধ্যে মামলা ভাগ করতে পারি (সম্ভবত খালি) ক্লাস: ইনডেক্স জন্য থেকে এন 1 , Y আমি ধারণ নিম্ন থ্রেশহোল্ড মূল্যবোধ ও প্রতিনিধিত্ব বাম সেন্সর ডেটা; সূচকগুলির জন্য i = n 1 + 1 থেকে n 2 , y আমি পরিমাণযুক্ত; এবং বাকী সূচকগুলির জন্য, y আমি উপরের প্রান্তিক মানগুলি ধারণ করে এবং ডান সেন্সর উপস্থাপন করিi=1n1yii=n1+1n2yiyiডেটা। লগের সম্ভাবনাটি আগের মতোই পাওয়া যায়: এটি সম্ভাবনার পণ্যগুলির লগ log
Λ=∑i=1n1logFσ(yi−xiβ)+∑i=n1+1n2logfσ(yi−xiβ)+∑i=n2+1nlog(1−Fσ(yi−xiβ)).
এটি একটি ফাংশন হিসাবে সংখ্যাগতভাবে সর্বাধিক(β,σ) ।
আমার অভিজ্ঞতায়, অর্ধেকেরও কম ডেটা সেন্সর করা হলে এই জাতীয় পদ্ধতিগুলি ভালভাবে কাজ করতে পারে; অন্যথায়, ফলাফলগুলি অস্থির হতে পারে।
R
ওএলএস এবং সেন্সর করা ফলাফলগুলি প্রচুর ডেটা সহ কীভাবে পৃথক হতে পারে ( উদাহরণস্বরূপ ) censReg
প্যাকেজটি ব্যবহার করে এখানে একটি সাধারণ উদাহরণ । এটি গুণগতভাবে প্রশ্নের ডেটা পুনরুত্পাদন করে।
library("censReg")
set.seed(17)
n.data <- 2960
coeff <- c(-0.001, 0.005)
sigma <- 0.005
x <- rnorm(n.data, 0.5)
y <- as.vector(coeff %*% rbind(rep(1, n.data), x) + rnorm(n.data, 0, sigma))
y.cen <- y
y.cen[y < 0] <- 0
y.cen[y > 0.01] <- 0.01
data = data.frame(list(x, y.cen))
0.005−0.0010.005 ।
আসুন উভয় ব্যবহার করুন lm
এবং censReg
একটি লাইন মাপসই:
fit <- censReg(y.cen ~ x, data=data, left=0.0, right=0.01)
summary(fit)
এই সেন্সর রিগ্রেশন এর ফলাফল, কর্তৃক প্রদত্ত print(fit)
হয়
(Intercept) x sigma
-0.001028 0.004935 0.004856
−0.0010.0050.005
fit.OLS <- lm(y.cen ~ x, data=data)
summary(fit.OLS)
OLS ঔজ্জ্বল্যের প্রেক্ষাপটে হইয়া, কর্তৃক প্রদত্ত print(fit.OLS)
হল,
(Intercept) x
0.001996 0.002345
summary
0.002864
তুলনার জন্য, আসুন পরিমাণের ডেটাতে রিগ্রেশন সীমাবদ্ধ করি:
fit.part <- lm(y[0 <= y & y <= 0.01] ~ x[0 <= y & y <= 0.01])
summary(fit.part)
(Intercept) x[0 <= y & y <= 0.01]
0.003240 0.001461
আরো খারাপ!
কয়েকটি ছবি পরিস্থিতিটির সংক্ষিপ্তসার দেয়।
lineplot <- function() {
abline(coef(fit)[1:2], col="Red", lwd=2)
abline(coef(fit.OLS), col="Blue", lty=2, lwd=2)
abline(coef(fit.part), col=rgb(.2, .6, .2), lty=3, lwd=2)
}
par(mfrow=c(1,4))
plot(x,y, pch=19, cex=0.5, col="Gray", main="Hypothetical Data")
lineplot()
plot(x,y.cen, pch=19, cex=0.5, col="Gray", main="Censored Data")
lineplot()
hist(y.cen, breaks=50, main="Censored Data")
hist(y[0 <= y & y <= 0.01], breaks=50, main="Quantified Data")
"হাইপোথিটিকাল ডেটা" এবং "সেন্সর করা ডেটা" প্লটগুলির মধ্যে পার্থক্য হ'ল নীচের সমস্ত y- মানগুলি00.01 পূর্বের এর পরের প্লটটি উত্পাদনের জন্য তাদের নিজ নিজ দোরগোড়ায় সরানো হয়েছে। ফলস্বরূপ, আপনি সেন্সর করা ডেটা নীচে এবং উপরে বরাবর সারিবদ্ধভাবে দেখতে পারেন।
Y0.00320.0037