হেটেরোসেসটাস্টিটি সহ লিনিয়ার রিগ্রেশন অনুকরণ করুন


9

আমি এমন একটি ডেটাসেট সিমুলেট করার চেষ্টা করছি যা আমার সাথে থাকা অভিজ্ঞতাবাদী ডেটার সাথে মেলে তবে মূল ডেটাতে ত্রুটিগুলি কীভাবে অনুমান করা যায় তা সম্পর্কে আমি নিশ্চিত নই। এম্পিরিকাল ডেটাতে হিটারোসেসডাস্টিস্টি অন্তর্ভুক্ত থাকে তবে আমি এটিকে দূরে রূপান্তর করতে আগ্রহী নই, বরং অভিজ্ঞতা সংক্রান্ত তথ্যের সিমুলেশন পুনরুত্পাদন করার জন্য একটি ত্রুটি শব্দ সহ একটি রৈখিক মডেল ব্যবহার করছি।

উদাহরণস্বরূপ, আসুন আমি বলি যে আমার কাছে কিছু অভিজ্ঞতামূলক ডেটাসেট এবং একটি মডেল রয়েছে:

n=rep(1:100,2)
a=0
b = 1
sigma2 = n^1.3
eps = rnorm(n,mean=0,sd=sqrt(sigma2))
y=a+b*n + eps
mod <- lm(y ~ n)

ব্যবহার করে plot(n,y)আমরা নিম্নলিখিত পেতে। এখানে চিত্র বর্ণনা লিখুন

যাইহোক, আমি যদি ডেটা অনুকরণ করার চেষ্টা করি simulate(mod), তবে হেটেরোসেসটেস্টিটিটি মুছে ফেলা হয় এবং মডেল দ্বারা ক্যাপচার করা হয় না।

আমি একটি সাধারণ ন্যূনতম স্কোয়ার মডেল ব্যবহার করতে পারি

VMat <- varFixed(~n)
mod2 = gls(y ~ n, weights = VMat)

এটি এআইসি এর উপর ভিত্তি করে আরও ভাল মডেল ফিট করে তবে আউটপুটটি ব্যবহার করে কীভাবে ডেটা সিমুলেট করতে হয় তা আমি জানি না।

আমার প্রশ্ন হ'ল আমি কীভাবে এমন একটি মডেল তৈরি করব যা আমাকে আসল, অভিজ্ঞতামূলক ডেটা (উপরে এবং এন) ​​এর সাথে মেলে ডেটা সিমুলেট করার অনুমতি দেবে sim বিশেষত, আমার কোনও মডেল ব্যবহার করে সিগমা 2, ত্রুটিটি অনুমান করার একটি উপায় প্রয়োজন?


1
সুতরাং লিনিয়ার মডেল শর্তসাপেক্ষ heteroskedasticity ক্যাপচার করবে না যদি না এটি পরিষ্কারভাবে কয়েকটি পদ্ধতির একটি ব্যবহার করে চেষ্টা করে। স্ট্যান্ডার্ড ইকোনোমেট্রিক কৌশলগুলি হেরোসকেস্টেস্টিটির জন্য অ্যাকাউন্টে প্যারামিটারগুলিতে স্ট্যান্ডার্ড ত্রুটিগুলি সামঞ্জস্য করে তবে তারা এটিকে স্পষ্টভাবে মডেল করে না।
জেনেরিক_উজার ব্যবহারকারী

তুমি ঠিক বলছো. ভিন্ন ভিন্নতা ক্যাপচারের জন্য আমি একটি লিনিয়ার মডেল ব্যবহার করার চেষ্টা করছি। আমি মনে করি যে আমার সাধারণীকৃত সর্বনিম্ন স্কোয়ার মডেলটি ব্যবহার করা উচিত। যদি অন্য কোনও প্রস্তাবনা থাকে তবে আমি সেগুলি চেষ্টা করব।
ব্যবহারকারী 44796


1
আমি আপনার প্রশ্নটি বুঝতে পারি না, কারণ আপনার কোডটি আপনাকে তার শিরোনামে যা বলে মনে হচ্ছে ঠিক তেমনভাবে সম্পাদন করে: এটি হেটেরোসেসটাস্টিক ত্রুটির সাথে একটি লিনিয়ার রিগ্রেশন অনুকরণ করে। হেটেরোসেসটাস্টিকটির জন্য কোনও ধরণের মডেল অনুমান করার জন্য আপনি কি পদ্ধতিগুলি জিজ্ঞাসা করছেন? যদি তা হয় তবে আপনার একটি মডেল নির্দিষ্ট করা দরকার!
whuber

আশা করি আমি সম্পাদনা দিয়ে আমার প্রশ্নটি পরিষ্কার করে দিয়েছি। উপরের প্রশ্নে এন এবং ওয়াই অনুভূতি সংক্রান্ত ডেটা উপস্থাপন করে। আমি ডেটাতে একটি মডেল ফিট করতে চাই এবং তারপরে মডেলটি সিমুলেটেড ডেটা তৈরি করতে চাই যা মূল ডেটার গড় এবং অবশিষ্টাংশের সাথে মেলে।
ব্যবহারকারী 44796

উত্তর:


9

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

set.seed(568)  # this makes the example exactly reproducible

n      = rep(1:100,2)
a      = 0
b      = 1
sigma2 = n^1.3
eps    = rnorm(n,mean=0,sd=sqrt(sigma2))
y      = a+b*n + eps
mod    = lm(y ~ n)
res    = residuals(mod)

windows()
  layout(matrix(1:2, nrow=2))
  plot(n,y)
  abline(coef(mod), col="red")
  plot(mod, which=3)

এখানে চিত্র বর্ণনা লিখুন

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

res.mod = lm(sqrt(abs(res))~fitted(mod))
summary(res.mod)
# Call:
# lm(formula = sqrt(abs(res)) ~ fitted(mod))
# 
# Residuals:
#     Min      1Q  Median      3Q     Max 
# -3.3912 -0.7640  0.0794  0.8764  3.2726 
# 
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept) 1.669571   0.181361   9.206  < 2e-16 ***
# fitted(mod) 0.023558   0.003157   7.461 2.64e-12 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 1.285 on 198 degrees of freedom
# Multiple R-squared:  0.2195,  Adjusted R-squared:  0.2155 
# F-statistic: 55.67 on 1 and 198 DF,  p-value: 2.641e-12
windows()
  layout(matrix(1:4, nrow=2, ncol=2, byrow=TRUE))
  plot(res.mod, which=1)
  plot(res.mod, which=2)
  plot(res.mod, which=3)
  plot(res.mod, which=5)

এখানে চিত্র বর্ণনা লিখুন

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

res.mod2 = lm(sqrt(abs(res))~poly(fitted(mod), 2))
summary(res.mod2)
# output omitted
anova(res.mod, res.mod2)
# Analysis of Variance Table
# 
# Model 1: sqrt(abs(res)) ~ fitted(mod)
# Model 2: sqrt(abs(res)) ~ poly(fitted(mod), 2)
#   Res.Df    RSS Df Sum of Sq     F Pr(>F)
# 1    198 326.87                          
# 2    197 326.85  1  0.011564 0.007 0.9336

আমরা যদি এতে সন্তুষ্ট হয়ে থাকি, আমরা এখন এই প্রক্রিয়াটিকে ডেটা অনুকরণের জন্য অ্যাড-অন হিসাবে ব্যবহার করতে পারি।

set.seed(4396)  # this makes the example exactly reproducible
x = n
expected.y = coef(mod)[1] + coef(mod)[2]*x
sim.errors = rnorm(length(x), mean=0,
                   sd=(coef(res.mod)[1] + coef(res.mod)[2]*expected.y)^2)
observed.y = expected.y + sim.errors

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

এখানে চিত্র বর্ণনা লিখুন


এটি আসলে একটি উপসংহার ছিল যা আমি শুরু করতে শুরু করেছিলাম তবে এত উত্তেজনাপূর্ণ উত্তরটি কখনই পৌঁছাতে পারত না।
ব্যবহারকারী 44796

5

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

n <- rep(1:100,2)
a <- 0
b <- 1
sigma2 <- n^1.3
eps <- rnorm(n,mean=0,sd=sqrt(sigma2))
y <- a+b*n + eps
mod <- lm(y ~ n)

library(dglm)  ### double glm's

mod2   <-  dglm(y ~ n, ~ n, gaussian,ykeep=TRUE,xkeep=TRUE,zkeep=TRUE)
### This uses log link for the dispersion part, should also try identity link ..

y2 <-  simulate(mod2)

plot(n, y2$sim_1)

mod3  <-  dglm(y ~ n, ~ n, gaussian, dlink="identity", ykeep=TRUE,xkeep=TRUE,zkeep=TRUE)  ### This do not work because it leads to negative weights!

সিমুলেটেড প্লটটি নীচে দেখানো হয়েছে:

এখানে চিত্র বর্ণনা লিখুন

প্লটটি দেখে মনে হচ্ছে সিমুলেশনটি আনুমানিক বৈকল্পিকতা ব্যবহার করেছে তবে আমি নিশ্চিত নই, যেহেতু সিমুলেট () ফাংশনে ডিজিএলএম এর পদ্ধতি নেই ...

(এটি দেখার আরেকটি সম্ভাবনা হ'ল Rপ্যাকেজটি ব্যবহার করা হচ্ছে gamlss, যা কোরিয়্যবেবলগুলির একটি ফাংশন হিসাবে বৈকল্পিকের মডেলিংয়ের আরও একটি পদ্ধতির ব্যবহার করে))


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