Lm () থেকে ফলাফলকে কোনও সমীকরণে কীভাবে অনুবাদ করবেন?


29

আমরা lm()একটি মান পূর্বাভাস দিতে ব্যবহার করতে পারি , তবে আমাদের এখনও কিছু ক্ষেত্রে ফলাফল সূত্রের সমীকরণ প্রয়োজন। উদাহরণস্বরূপ, প্লটগুলিতে সমীকরণ যুক্ত করুন।


2
আপনি কি দয়া করে আপনার প্রশ্নটি নতুন করে লিখতে পারেন বা কিছু বিশদ যুক্ত করতে পারেন? আমি আর, lmএবং লিনিয়ার মডেলগুলির সাথে আরও সাধারণভাবে বেশ পরিচিত , তবে আপনি কী চান, এটি মোটেও পরিষ্কার নয়। আপনি একটি উদাহরণ বা স্পষ্ট কিছু দিতে পারেন? এটি কি কোন বিষয়ের জন্য?
গ্লেন_বি -রিনস্টেট মনিকা

2
আমার ধারণা আপনি লিনিয়ার রিগ্রেশন সূত্রের সহগগুলি চান। coef()লাগানো lmবস্তুটিতে কল করার চেষ্টা করুন , যেমন:mod <- lm(y ~ x); coef(mod)
জেক ওয়েস্টফল

আপনি যদি lm(y~x)$callএটি টাইপ করেন তবে আপনাকে সূত্রটি বলে y ~ x। আপনি যদি এর থেকে আলাদা কিছু বোঝাতে চান তবে আপনার আরও সুনির্দিষ্ট হওয়া দরকার।
গ্লেন_বি -রিনস্টেট মনিকা


ওয়ার্থ পড়া stackoverflow.com/questions/7549694/...
mnel

উত্তর:


30

এই উদাহরণ বিবেচনা করুন:

set.seed(5)            # this line will allow you to run these commands on your
                       # own computer & get *exactly* the same output
x = rnorm(50)
y = rnorm(50)

fit = lm(y~x)
summary(fit)
# Call:
# lm(formula = y ~ x)
# 
# Residuals:
#      Min       1Q   Median       3Q      Max 
# -2.04003 -0.43414 -0.04609  0.50807  2.48728 
# 
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)
# (Intercept) -0.00761    0.11554  -0.066    0.948
# x            0.09156    0.10901   0.840    0.405
# 
# Residual standard error: 0.8155 on 48 degrees of freedom
# Multiple R-squared: 0.01449,  Adjusted R-squared: -0.006046 
# F-statistic: 0.7055 on 1 and 48 DF,  p-value: 0.4051 

প্রশ্নটি, আমি অনুমান করছি, কীভাবে আর এর সংক্ষিপ্ত আউটপুট থেকে রিগ্রেশন সমীকরণটি বের করা যায়। Algebraically, একটি সহজ রিগ্রেশন মডেল জন্য সমীকরণ

y^i=β^0+β^1xi+ε^iwhere εN(0, σ^2)
আমরা শুধু ম্যাপ প্রয়োজনsummary.lm()এই পদ আউটপুট। বুদ্ধিমান:

  • β^0হয়Estimateমান(Intercept)(বিশেষভাবে সারি-0.00761)
  • β^1হয়Estimateমানx(বিশেষভাবে সারি0.09156)
  • σ^ হয়Residual standard error(বিশেষত0.8155)

উৎপাদনের উপরে এই

y^i=0.00761 + 0.09156xi + ε^iwhere εN(0, 0.81552)
আরো একটি পুঙ্খানুপুঙ্খ ওভারভিউ জন্য, আপনি এই থ্রেড পড়তে চান করতে পারেন:আর এর LM () আউটপুট ব্যাখ্যা


2
lmy^=0.00761+0.09156x

6

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

y=β0+β1x+ϵβ0β1y^=0.5+1.6x

যাইহোক, এটি হার্ড রুট। আর এর একটি অন্তর্নির্মিত ফাংশন রয়েছে, predict()যা আপনি কোনও ডেটাসেটের জন্য একটি মডেল প্রদত্ত পূর্বাভাসিত মানগুলি স্বয়ংক্রিয়ভাবে গণনা করতে ব্যবহার করতে পারেন। উদাহরণস্বরূপ: predict(fit, newdata=data)আপনি যদি এক্স স্কোরগুলি পূর্বাভাস দিতে চান y স্কোরগুলি ভেরিয়েবলের মধ্যে সংরক্ষণ করা হয় data। (মনে রাখবেন যে আপনার প্রতিরোধের যে নমুনাটি করা হয়েছিল তার জন্য পূর্বাভাসিত স্কোরগুলি দেখতে আপনি কেবল টাইপ করতে পারেন fit$fittedবা fitted(fit); এগুলি আপনাকে পূর্বাভাস দেওয়া, ওরফে ফিট, মানগুলি দেবে))


0

আপনি যদি এই সমীকরণটি দেখাতে চান তবে কোনও নথিতে কাটা / পেস্ট করতে চান তবে পুরো সমীকরণটি একসাথে রেখেই হস্তক্ষেপ করতে চান না:

R> library(MASS)
R> crime.lm <- lm(y~., UScrime)
R> cc <- crime.lm$coefficients
R> (eqn <- paste("Y =", paste(round(cc[1],2), paste(round(cc[-1],2), names(cc[-1]), sep=" * ", collapse=" + "), sep=" + "), "+ e"))
[1] "Y = -5984.29 + 8.78 * M + -3.8 * So + 18.83 * Ed + 19.28 * Po1 + -10.94 * Po2 + -0.66 * LF + 1.74 * M.F + -0.73 * Pop + 0.42 * NW + -5.83 * U1 + 16.78 * U2 + 0.96 * GDP + 7.07 * Ineq + -4855.27 * Prob + -3.48 * Time + e"

0

কিথপজলির উত্তরের উপর ভিত্তি করে, এটি বিভাজকটিতে ব্যবহৃত '+' চিহ্নগুলি সহ-দক্ষতার প্রকৃত চিহ্নের সাথে প্রতিস্থাপন করে।

modelcrime <- lm(y~., UScrime)
modelcrime_coeff <- modelcrime$coefficients
modelcrime_coeff_sign <- sign(modelcrime_coeff)
modelcrime_coeff_prefix <- case_when(modelcrime_coeff_sign == -1 ~ " - ",
                                     modelcrime_coeff_sign == 1 ~ " + ",
                                     modelcrime_coeff_sign == 0 ~ " + ")
modelcrime_eqn <- paste("y =", paste(if_else(modelcrime_coeff[1]<0, "- ", ""),
                                         abs(round(modelcrime_coeff[1],3)),
                                     paste(modelcrime_coeff_prefix[-1],
                                           abs(round(modelcrime_coeff[-1],3)),
                                           " * ",
                                           names(modelcrime_coeff[-1]),
                                           sep = "", collapse = ""),
                                     sep = ""))
modelcrime_eqn

ফলাফল উত্পাদন করে

[1] "y = - 5984.288 + 8.783 * M - 3.803 * So + 18.832 * Ed + 19.28 * Po1 - 10.942 * Po2 - 0.664 * LF + 1.741 * M.F - 0.733 * Pop + 0.42 * NW - 5.827 * U1 + 16.78 * U2 + 0.962 * GDP + 7.067 * Ineq - 4855.266 * Prob - 3.479 * Time"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.