سؤال

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

لقد وجدت مثالاً على الإنترنت وحاولت قراءة مساعدة R "؟lm" (للأسف لا أستطيع فهمها)، لكنني لم أنجح.هل يمكن لأحد أن يقول لي أين خطأي؟

lin <- data.frame(x = c(0:6), y = c(0.3, 0.1, 0.9, 3.1, 5, 4.9, 6.2))
plot (lin$x, lin$y)

regImp = lm(formula = lin$x ~ lin$y)
abline(regImp, col="blue")

# Does not work:
# Use 1 as intercept
explicitIntercept = rep(1, length(lin$x))
regExp = lm(formula = lin$x ~ lin$y + explicitIntercept)
abline(regExp, col="green")

شكرا لمساعدتكم.

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

المحلول

يمكنك طرح التقاطع الصريح من الانحدار ثم احتواء النموذج الخالي من التقاطع: Genacodicetagpre

يمنع رمز الترقيم الوراثي ملاءمة التقاطع بواسطة رمز الترقيم العام.

تعديل لرسم الملاءمة ، استخدم Genacodicetagpre

ملاحظةتبدو المتغيرات في النموذج الخاص بك في الاتجاه الخاطئ: عادةً ما يكون رمزًا ترميزيًا عامًا ، وليس رمزًا ترميزًا عامًا (أي يجب أن يتجه الانحدار إلى اليسار وأن يكون الانحدار على اليمين).

نصائح أخرى

أرى أنك قبلت الحل باستخدام I ().كنت أعتقد أن الحل القائم على الإزاحة () سيكون أكثر وضوحًا ، لكن الأذواق تختلف وبعد العمل من خلال حل الأوفست يمكنني أن أقدر الاقتصاد في حل I ():

Genacodicetagpre

لقد استخدمت كلاً من الإزاحة وI().أجد أيضًا أن التعامل مع الإزاحة أسهل (مثل BondedDust) حيث يمكنك ضبط التقاطع الخاص بك.

بافتراض أن التقاطع هو 10.

plot (lin$x, lin$y) fit <-lm(lin$y~0 +lin$x,offset=rep(10,length(lin$x))) abline(fit,col="blue")

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top