আমি আমার উপাত্তের কেবলমাত্র একটি উপসেটে lm () চালানোর চেষ্টা করছি এবং কোনও সমস্যাতে চলছে।
dt = data.table(y = rnorm(100), x1 = rnorm(100), x2 = rnorm(100), x3 = as.factor(c(rep('men',50), rep('women',50)))) # sample data
lm( y ~ ., dt) # Use all x: Works
lm( y ~ ., dt[x3 == 'men']) # Use all x, limit to men: doesn't work (as expected)
উপরের কাজ করে না কারণ ডেটাসেটে এখন কেবল পুরুষ রয়েছে, এবং তাই আমরা x3, লিঙ্গ পরিবর্তনশীল, মডেলটিতে অন্তর্ভুক্ত করতে পারি না। কিন্তু ...
lm( y ~ . -x3, dt[x3 == 'men']) # Exclude x3, limit to men: STILL doesn't work
lm( y ~ x1 + x2, dt[x3 == 'men']) # Exclude x3, with different notation: works great
এই সূত্র মধ্যে "বিয়োগ চিহ্ন" স্বরলিপি একটি সমস্যা? আপনার পরামর্শ দিন. দ্রষ্টব্য: অবশ্যই আমি এটি অন্যভাবে করতে পারি; উদাহরণস্বরূপ, আমি ভেরিয়েবলগুলি lm () এ স্থাপনের আগে বাদ দিতে পারি। তবে আমি এই স্টাফটিতে একটি ক্লাস শিখিয়ে দিচ্ছি এবং আমি শিক্ষার্থীদের বিভ্রান্ত করতে চাই না, তারা ইতিমধ্যে তাদের জানিয়ে দিয়েছিল যে তারা সূত্রটিতে একটি বিয়োগ চিহ্ন ব্যবহার করে ভেরিয়েবল বাদ দিতে পারে।
.
একটি সরলীকৃত সূত্রটি পেতে "প্রসারিত" করার চেষ্টা করছিলাম terms(y ~ . -x3, data=dt, simplify=TRUE)
কিন্তু অদ্ভুতভাবে এটি এখনও x3
ভেরিয়েবলের বৈশিষ্ট্যে ধরে রাখে যা ট্রিপ আপ হয়lm
neg.out=
বিকল্পটি সম্পর্কিত হতে পারে। এর জন্য এস সহায়তা ফাইলগুলি থেকে terms
, কোথায় neg.out=
এটি প্রয়োগ করা হয়েছে: "-" সাইন দিয়ে শর্তাদি ব্যবহারের চিকিত্সা নিয়ন্ত্রণকারী পতাকা। যদি সত্য হয়, পদগুলি বাতিল করার জন্য পরীক্ষা করা হবে এবং অন্যথায় উপেক্ষা করা হবে। মিথ্যা হলে, নেতিবাচক পদগুলি বজায় রাখা হবে (negativeণাত্মক আদেশ সহ)।
lm
কল model.matrix
করে। খুব শুরুতে, lm
রচনা এবং মূল্যায়ন অভিব্যক্তি করুন: mf <- stats::model.frame( y ~ . -x3, dt[x3=="men"], drop.unused.levels=TRUE )
। এটি x3
একক স্তরের ফ্যাক্টর হওয়ার কারণ হয়। model.matrix()
তারপরে বলা হয় mf
, মূল ডেটা নয়, ফলস্বরূপ আমরা যে ত্রুটিটি পর্যবেক্ষণ করছি।
model.matrix(y ~ . - x3, data = dt[x3 == "men"])
এবংmodel.matrix(y ~ x1 + x2, data = dt[x3 == "men"])
কাজ ( অভ্যন্তরীণভাবেlm
কলmodel.matrix
)। উভয় মডেল ম্যাট্রিকের মধ্যে পার্থক্য হ'ল একটি"contrasts"
বৈশিষ্ট্য (যা এখনও রয়েছেx3
) এবং যা পরেlm
রুটিনের মধ্যে তুলে নেওয়া হয় , সম্ভবত আপনি যে ত্রুটি দেখছেন তার কারণ হতে পারে। সুতরাং আমার অনুভূতিটি হ'লmodel.matrix
শর্তাদি সরানোর সময় ইস্যুটি কীভাবে ডিজাইন ম্যাট্রিক্স তৈরি করে এবং সংরক্ষণ করে।