কোনও সূত্র বা বিশ্লেষণ থেকে ডেটা সিমুলেট করার জন্য কি সাধারণ পদ্ধতি আছে?


16

একটি পরীক্ষামূলক ডিজাইন ডেটা ফ্রেম থেকে ডেটা সিমুলেশন।
আর এর উপর ফোকাস সহ (যদিও অন্যান্য ভাষার সমাধানটি দুর্দান্ত হবে)।

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

এই জাতীয় দৃষ্টিভঙ্গি পরিসংখ্যান পরীক্ষার বুঝতে এবং সঠিক ব্যবহারের জন্যও প্রয়োজনীয় হতে পারে।

যাইহোক, এই প্রক্রিয়াটি কিছুটা ক্লান্তিকর হতে থাকে এবং অনেকগুলি একটি পরীক্ষা বা সমীক্ষায় এই গুরুত্বপূর্ণ পদক্ষেপটি ছাড়িয়ে যায়।

পরিসংখ্যান সংক্রান্ত মডেল এবং পরীক্ষায় ডেটা সিমুলেট করার জন্য প্রয়োজনীয় বেশিরভাগ তথ্য থাকে (অনুমান বা বিতরণের একটি স্পষ্ট বিবৃতি সহ) sim

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

যেমন একটি সাধারণীকরণ সিমুলেশন কাঠামো সম্ভব?

যদি তা হয় তবে বর্তমানে কি এমন কাঠামো পাওয়া যায়?

উদাহরণস্বরূপ, আমি একটি ফাংশন চাই, যেমন:

 sim(aov(response~factor1+factor2*factor3),
          p.values=list(factor1=0.05,
                        factor2=0.05,
                        factor3=0.50,
                        factor2:factor3=0.05),
          levels=list(factor1=1:10,
                      factor2=c("A", "B", "C"),
                      factor3=c("A", "B", "C")))

অর্থাত্ এর একটি সাধারণ সংস্করণ:

sim.lm<-function(){
library(DoE.base)
design<-fac.design(nlevels=c(10,3,3),
                   factor.names=c("factor1", "factor2", "factor3"),
                   replications=3,
                   randomize=F)

response<-with(design, as.numeric(factor1)+
                      as.numeric(factor2)+
                      as.numeric(factor3)+
                      as.numeric(factor2)*as.numeric(factor3)+
                      rnorm(length(factor1)))

simulation<-data.frame(design, response)}

অথবা

sim(glm(response~factor1+factor2*factor3, family=poisson),
         p.values=list(factor1=0.05,
                       factor2=0.05,
                       factor3=0.50,
                       factor2:factor3=0.05),
         levels=list(factor1=1:10,
                     factor2=c("A", "B", "C"),
                     factor3=c("A", "B", "C")))

অথবা

  library(lme4)
  sim(lmer(response~factor1+factor2 + (factor2|factor3)),
           F_value=list(factor1=50,
                        factor2=50),
           levels=list(factor1=1:10,
                       factor2=c("A", "B", "C"),
                       factor3=c("A", "B", "C")))

এটি একটি সম্পূর্ণ সম্পর্কিত ডেটা ফ্রেম তৈরি করবে

নির্দিষ্ট ফাংশনগুলির সম্ভাব্য উদাহরণ (দয়া করে সম্পাদনা করুন)
- আরিমা.সিম

মডেলিং প্রতিক্রিয়া ছাড়াই ফ্যাক্টরটি ফ্যাক্টরের স্তরগুলির একটি ডেটা ফ্রেম তৈরি করতে উপস্থিত থাকে:
যেমন। conf.design
http://cran.r-project.org/web/views/ExperimentalDesign.html


একটি বিষয় মনে রাখবেন যে আপনাকে একটি ত্রুটি বিতরণ নির্দিষ্ট করতে হবে। তদতিরিক্ত, আমি আপনার "p.values" বা "F_value" তালিকাগুলি সম্পূর্ণরূপে অনুসরণ করি না; এফ ও পি এর স্যাম্পলিং বিতরণগুলি তালিকাভুক্ত সংখ্যার উপর কেন্দ্রীভূত হবে এমন ধারণাটি কি?
গুং - মনিকা পুনরায়

@ গুং, বিতরণটি পরীক্ষায় ধরে নেওয়া হয়েছে (এখানে উভয়ই স্বাভাবিকতা ধরে নেয় বা আমাকে গ্ল্যামের মতো কিছু ব্যবহার করতে হবে)।
এটিয়েন লো-ডেকারি

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

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

উত্তর:


10

আসলে একটি এস 3 জেনেরিক রয়েছে simulateযা এমনকি আপনি চাইলে ডেটা ফ্রেম (বা অন্যান্য তালিকা) প্রদান করে। আদর্শ

?simulate  

এর এমএমএস ক্লাসগুলির জন্য পদ্ধতি রয়েছে (গ্ল্যামের জন্য বা আপনার আভ উদাহরণের জন্যও কাজ করে) এবং glm.nb (এমএএসএস-এ) ইতিমধ্যে। আপনি এখন simulateঅন্যান্য শ্রেণীর অবজেক্টের জন্য S3 পদ্ধতি লিখতে পারেন , যেমন lme4 থেকে পাওয়া বস্তুর জন্য। টাইপ করে কোন ক্লাসের জন্য পদ্ধতি রয়েছে তা পরীক্ষা করতে পারেন

getAnywhere("simulate.class"), getAnywhere("simulate")  

অথবা

getS3method("simulate","class"), methods(simulate) 

সিমুলেটটি দুর্দান্ত হবে যদি এটিতে "কোনও জিনিস লাগানো কোনও মডেল উপস্থাপন করে এমন কোনও বস্তুর" প্রয়োজন না হয় যার জন্য ইতিমধ্যে ডেটা বা সিমুলেটেড ডেটা প্রয়োজন।
এটিয়েন লো-ডেকারি

>getAnywhere("simulate.class") no object named ‘simulate.class’ was found >getS3method("simulate","class") Error in getS3method("simulate", "class") : S3 method 'simulate.class' not found
এটিয়েন লো-ডিকারি

2
যেহেতু সর্বদা 0, বলার মতো সমস্ত প্রতিক্রিয়ার মানগুলি প্রাথমিকভাবে লাগানো বস্তুটি তৈরি করতে পারে এবং পছন্দসই প্যারামিটার মানগুলির সাথে ফিটের সহগগুলি প্রতিস্থাপন করতে পারে। তারপরে 'সিমুলেট' ব্যবহার করে সিমুলেটেড প্রতিক্রিয়া পাওয়া যাবে।
এনআরএইচ

ঐটা সত্য. [পরীক্ষামূলক নকশা টাস্ক] এর প্যাকেজগুলির ( cran.r-project.org/web/views/ExperimentalDesign.html ) ভিউতে ডামি ভেরিয়েবল সেটআপ তৈরির জন্য অনেকগুলি প্যাকেজ রয়েছে। সিমুলেট এবং পরীক্ষামূলক ডিজাইন ফাংশনগুলি একীকরণ করা দুর্দান্ত হবে!
এতিয়েন লো-ডেকারি

কিছু সিমুলেট ফাংশন কেবলমাত্র ফিট করে ডেটা তৈরি করে না: stats.stackexchange.com/questions/11233/…
এটিয়েন লো-ডেকারি

6

আর এর জন্য প্যাকেজে একটি নতুন ফাংশন ডেকে আনা simfunহয়েছে TeachingDemos(এটি বর্তমানে কেবল আর-ফোর্জে বিকাশের সংস্করণে রয়েছে , এটি CRAN এ যাওয়ার আগে কিছুক্ষণ হয়ে যাবে)। সিমুলেশনগুলি করতে ফাংশন তৈরিতে সহায়তা করার উদ্দেশ্যে এটি করা হয়েছে।

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

simfunফাংশন তাই শিক্ষক / স্রষ্টা, শিক্ষক / স্রষ্টা দ্বারা সরবরাহকৃত পরামিতি, অথবা পরামিতি ছাত্র / ব্যবহারকারী দ্বারা suplied একটি লাগানো রিগ্রেশন মডেল সিমিউলেশন বেস করতে নমনীয় হতে ডিজাইন করা হয়েছে।

তৈরি ফাংশনটি সহজেই সিমুলেশনগুলিতে ( replicateকমান্ডের সাহায্যে) পাওয়ার, নমুনার আকার, প্রভাবের আকার ইত্যাদির জন্যও ব্যবহার করা যেতে পারে যদিও ফলস্বরূপ সিমুলেশনটি কারুকার্যকরণের হাত থেকে ধীর হতে পারে than

এটি আপাতত আপনি কী বর্ণনা করছেন তা দেখে মনে হচ্ছে এটি ডেটা তৈরির জন্য পি-ভ্যালু নেয় না, তবে power.কার্যকারিতা বা প্যাকেজ pwr.থেকে ব্যবহারকে pwrউপায় এবং পার্থক্যের পরিবর্তে নির্দিষ্টকরণের শক্তি এবং আলফা ভিত্তিতে সিমুলেশন তৈরি করতে সংযুক্ত করা যেতে পারে।

এখানে সহায়তা পৃষ্ঠার একটি উদাহরণ রয়েছে (আরও বেশ কয়েকটি উদাহরণ রয়েছে) যা ধরে নিয়েছে যে আপনি যে সমস্ত অঞ্চলে রাজ্যগুলিতে বাসা বেঁধেছেন সেগুলি (পুরুষ এবং মহিলা) এর উচ্চতা পরিমাপ করছেন, এসডি সহ রাষ্ট্রের জন্য এলোমেলো প্রভাব রয়েছে 1 এর 1 এবং শহরের জন্য এলোমেলো প্রভাব (এসিডের মধ্যে) এর সাথে 0.5% এর এসডি থাকে তবে "ত্রুটি" এসডি 3 হয়, স্ত্রীদের সিমুলেশন গড় হয় 64 ইঞ্চি এবং পুরুষদের গড় গড় 69 ইঞ্চি (ত্রুটি এসডি এবং উপায়গুলি বাস্তবসম্মত) , এলোমেলো প্রভাবগুলি কিছুটা স্বীকৃত)। simfunনামক একটি নতুন ফাংশন তৈরি করতে এই ফাংশনটি ব্যবহার করা হয় simheight, তারপরে স্টেট আইডির, নগর আইডির সাথে একটি বিষয় ফ্রেম তৈরি করা হয় এবং বিষয়টির যৌনতার জন্য একটি কলাম (পরীক্ষামূলক নকশা বা স্যাম্পলিং ডিজাইন) এ পাস করা হয়simheight এবং ফলস্বরূপ সিমুলেটেড উচ্চতা (অন্যান্য ভেরিয়েবলগুলি ছাড়াও) সহ একটি নতুন ডেটা ফ্রেমের ফলাফল যা উপযুক্ত সরঞ্জামগুলি ব্যবহার করে বিশ্লেষণ করা যেতে পারে।

# simulate a nested mixed effects model
simheight <- simfun({
  n.city <- length(unique(city))
  n.state <- length(unique(state))
  n <- length(city)
  height <- h[sex] + rnorm(n.state,0,sig.state)[state] + 
    rnorm(n.city,0,sig.city)[city] + rnorm(n,0,sig.e)
}, sig.state=1, sig.city=0.5, sig.e=3, h=c(64,69),
  drop=c('sig.state','sig.city','sig.e','h','n.city','n.state','n'))

tmpdat <- data.frame(state=gl(5,20), city=gl(10,10), 
  sex=gl(2,5,length=100, labels=c('F','M')))
heightdat <- simheight(tmpdat)

আমি আর-ফরজে নতুন টিচিংডেমোসটি খুঁজে পাচ্ছি না?
এটিয়েন লো-ডিকারি


ব্যবহার করে দেখুন install.packages("TeachingDemos", repos="http://R-Forge.R-project.org")। আপনার শুরুতে "http: //" দরকার এবং "" "নয়।
গ্রেগ স্নো

3

টাইপিং methods(simulate)বা getAnywhere("simulate")কাজ করা উচিত। Lme4 প্যাকেজটি লোড হলে প্রাক্তন আপনাকে কয়েকটি পদ্ধতি দেয়:

[1] সিমুলেট.এলএম * সিমুলেট.আমারমড * সিমুলেট.নেগবিন * সিমুলেট.পলার *

এলএম-অবজেক্টগুলি উভয় এলএম এবং গ্ল্যাম মডেলের জন্য ব্যবহৃত হয়।


2
ধন্যবাদ, তবে এটি @ মোমোর উত্তর মত মনে হচ্ছে।
এটিয়েন লো-ডেকারি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.