سؤال

مجموعة البيانات الخاصة بي كبيرة جدا لذلك أنا فقط باستخدام 10 خطوط من البيانات كمثال (لقد عملت على الإجابة في إكسيل ولكن لا يمكن تكرارها في ص - وأنا بحاجة إلى مساعدة مع التعليمات البرمجية):

constant<-c(6.10,5.12,5.04,4.97,4.89,4.89,4.87,4.87,4.88,4.99)
years.star<-c(219.87,153.69,146.19,139.35,127.27,127.27,121.91,121.91,112.28,99.98)
years.sq.star<-c(7915.41,4610.71,4239.78,3901.93,3309.27,3309.27,3047.95,3047.95,2582.58,1999.62)
ln.salary<-c(28.43,23.12,21.59,21.44,22.71,23.33,20.29,21.76,21.48,22.92)

try<-data.frame(constant,years.star,years.sq.star,ln.salary)

في.الراتب هو المتغير التابع.الجواب الذي يجب أن تحصل عليه هو:

intercept-  6.474922
beta1-      -0.15026
beta2-      0.002769

مشكلتي هي أنه في ص ، إذا كنت تستخدم وظيفة لم ، فإنه لا يعرف أن بلدي اعتراض لديه القيم أعلاه.يستخدم فقط 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 بدلا من 6.10 ، 5.12 ، إلخ

لذا test<-lm(ln.salary~years.star+years.sq.star,data=try,weights=constant)

لا يعمل لأنه سيولد هذه الإجابة فقط:

intercept-   207.1706
beta1-       -3.13214
beta2-        0.064416

في جوهرها ، لقد اتخذت البيانات وحاولت ضبط ل هيتيروسيداستيسيتي.في الخطوة الأخيرة ، لدي نجمي المستمر ومتغيراتي س المحولة.الخطوة الأخيرة هي التراجع.الراتب على المتغيرات الثابتة والعاشرة لإعطائي الإجابة التي يجب أن تحصل عليها كما هو موضح أعلاه.

أستطيع أن أفعل ذلك في إكسيل ولكن ليس في ص وأنا أعلم أنني لا أحصل على رمز الحق.أنا أعرف وظيفة لم الذي يولد اعتراض (1 ، 1 ، 1...) هي المشكلة.من فضلك هل تساعد.

أطيب التحيات D

هل كانت مفيدة؟

المحلول

إذا كنت تريد تغيير "اعتراضات" لكل صف ، فأنت بحاجة إلى استخدام "إزاحة" بدلا من "الوزن":

 test<-lm(ln.salary~years.star+years.sq.star+0,data=try,offset=constant)

Call:
lm(formula = ln.salary ~ years.star + years.sq.star + 0, data = try, 
    offset = constant)

Coefficients:
   years.star  years.sq.star  
     0.236355      -0.003881  

أنا لست معجب جدا مع حقيقة أن هذا لا يتفق مع إكسيل.من المعروف أن برنامج الانحدار الخطي لهذا البرنامج متقشر إلى حد ما.من ناحية أخرى ، إذا كنت متأكدا من أنك بحاجة إلى استخدام الأوزان ، فعليك توضيح أي من التفسيرات الثلاثة المختلفة الممكنة للمصطلح يتم استخدامه.(اختيارات:النسخ المتماثل ، أخذ العينات ، التباين العكسي).ال lm تفسير "الوزن" هو نسخة التباين العكسي.(يتم وصفه في صفحة المساعدة الخاصة به على أنه "يتناسب عكسيا مع التباين) ، لذلك إذا كانت تلك المصطلحات"الثابتة" هي اختلافات ، فربما تريد ذلك:

> (test<-lm(ln.salary~years.star+years.sq.star+0, data=try, weights=1/constant) )

Call:
lm(formula = ln.salary ~ years.star + years.sq.star + 0, data = try, 
    weights = 1/constant)

Coefficients:
   years.star  years.sq.star  
     0.309391      -0.005189  

نصائح أخرى

إذا كنت ترغب في" إصلاح " اعتراض في ثابت معين ، يجب عليك طرح قيمة هذا الثابت من الاستجابة ، ومن ثم تناسب نموذج عدم اعتراض.على سبيل المثال

test <- lm( ln.salary - 6.474922 ~ years.star + years.sq.star + 0,
    data=try, weights=constant)

هنا نطرح مصطلح التقاطع ، ثم نضيف +0 إلى الصيغة للإشارة إلى عدم ملاءمة مصطلح اعتراض.مع هذا النموذج أحصل

Call:
lm(formula = ln.salary - 6.474922 ~ years.star + years.sq.star + 
    0, data = try, weights = constant)

Coefficients:
   years.star  years.sq.star  
     0.197384      -0.002842  
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top