সহগগুলির স্ট্যান্ডার্ড ত্রুটিগুলি কোনও রিগ্রেশনে গণনা করা হয় কীভাবে?


114

আমার নিজের বোঝার জন্য, আমি আনুমানিক সহগের মানক ত্রুটির গণনাটি ম্যানুয়ালি প্রতিলিপি করতে আগ্রহী যেমন উদাহরণস্বরূপ, lm()ফাংশনটির আউটপুট নিয়ে আসি R, তবে এটিকে পিন করতে সক্ষম হইনি। সূত্র ব্যবহার / বাস্তবায়ন কি?


8
ভাল প্রশ্ন, অনেকে লিনিয়ার বীজগণিতের দৃষ্টিকোণ থেকে রিগ্রেশন জানেন, যেখানে আপনি লিনিয়ার সমীকরণ সমাধান করেন এবং বিটার উত্তর পাবেন। আমাদের পিছনে কেন স্ট্যান্ডার্ড ত্রুটি এবং অনুমান রয়েছে তা পরিষ্কার নয়। XXβ=Xy
হাইতাও ডু

উত্তর:


122

লিনিয়ার মডেলটি হিসাবে লেখা হয় যেখানে প্রতিক্রিয়াগুলির ভেক্টরকে বোঝায়, fixed স্থির প্রভাবের পরামিতিগুলির ভেক্টর, the যার সম্পর্কিত কলামগুলি ব্যাখ্যাযোগ্য ভেরিয়েবলের মান এবং এলোমেলো ত্রুটির ভেক্টর

|y=Xβ+ϵϵN(0,σ2I),
yβXϵ

এটি সুপরিচিত যে of এর একটি অনুমান দেওয়া হয়েছে (যেমন, উইকিপিডিয়া নিবন্ধটি উল্লেখ করুন ) সুতরাং [অনুস্মারক: , কিছু এলোমেলো ভেক্টর এবং কিছু অ-র্যান্ডম ম্যাট্রিক্স ]β

β^=(XX)1Xy.
Var(β^)=(XX)1Xσ2IX(XX)1=σ2(XX)1,
Var(AX)=A×Var(X)×AXA

যাতে যেখানে আনোভা সারণীতে মিউন স্কয়ার ত্রুটি (এমএসই) দ্বারা প্রাপ্ত করা যেতে পারে।

Var^(β^)=σ^2(XX)1,
σ^2

আর-তে সাধারণ লিনিয়ার রিগ্রেশন সহ উদাহরণ

#------generate one data set with epsilon ~ N(0, 0.25)------
seed <- 1152 #seed
n <- 100     #nb of observations
a <- 5       #intercept
b <- 2.7     #slope

set.seed(seed)
epsilon <- rnorm(n, mean=0, sd=sqrt(0.25))
x <- sample(x=c(0, 1), size=n, replace=TRUE)
y <- a + b * x + epsilon
#-----------------------------------------------------------

#------using lm------
mod <- lm(y ~ x)
#--------------------

#------using the explicit formulas------
X <- cbind(1, x)
betaHat <- solve(t(X) %*% X) %*% t(X) %*% y
var_betaHat <- anova(mod)[[3]][2] * solve(t(X) %*% X)
#---------------------------------------

#------comparison------
#estimate
> mod$coef
(Intercept)           x 
   5.020261    2.755577 

> c(betaHat[1], betaHat[2])
[1] 5.020261 2.755577

#standard error
> summary(mod)$coefficients[, 2]
(Intercept)           x 
 0.06596021  0.09725302 

> sqrt(diag(var_betaHat))
                    x 
0.06596021 0.09725302 
#----------------------

যখন একটি একক ব্যাখ্যামূলক চলক থাকে, তখন মডেলটি এবং যাতে এবং সূত্রগুলি আরও ট্রান্সপার্যান্ট হয়ে যায়। উদাহরণস্বরূপ, আনুমানিক স্ট্যান্ডার্ড ত্রুটি

yi=a+bxi+ϵi,i=1,,n
X=(1x11x21xn),β=(ab)
(XX)1=1nxi2(xi)2(xi2xixin)
Var^(b^)=[σ^2(XX)1]22=nσ^2nxi2(xi)2.
> num <- n * anova(mod)[[3]][2]
> denom <- n * sum(x^2) - sum(x)^2
> sqrt(num / denom)
[1] 0.09725302

পুরো উত্তরের জন্য ধন্যবাদ। সুতরাং, আমি এটি গ্রহণ করি যে শেষ সূত্রটি মাল্টিভাইয়ারেটের ক্ষেত্রে ধারণ করে না?
ako

1
না, খুব শেষ সূত্রটি কেবল সাধারণ লিনিয়ার মডেলের নির্দিষ্ট এক্স ম্যাট্রিক্সের জন্য কাজ করে। মাল্টিভারিয়েট ক্ষেত্রে আপনাকে উপরে প্রদত্ত সাধারণ সূত্রটি ব্যবহার করতে হবে।
অক্টোবরে

4
+1, একটি দ্রুত প্রশ্ন, কীভাবে আসে? Var(β^)
অ্যাভোকাডো

6
@ লোগানেকলস: এটি এলো যে , কিছু এলোমেলো ভেক্টর এবং কিছু অ-র্যান্ডম ম্যাট্রিক্স জন্য । Var(AX)=AVar(X)AXA
ocram

4
লক্ষ্য করুন যে এগুলি হ্যান্ড গণনার সঠিক উত্তর, তবে স্থিতিশীলতা এবং দক্ষতার জন্য lm.fit/ এর মধ্যে ব্যবহৃত প্রকৃত বাস্তবায়ন summary.lmকিছুটা আলাদা ...
বেন বোলকার

26

এগুলির জন্য সূত্রগুলি পরিসংখ্যানগুলির কোনও মধ্যবর্তী পাঠ্যে পাওয়া যেতে পারে, বিশেষত, আপনি সেগুলি শেদার (২০০৯, অধ্যায় ৫) এ খুঁজে পেতে পারেন , সেখান থেকে নিম্নলিখিত অনুশীলনও নেওয়া হয়েছে (পৃষ্ঠা 138)।

নিম্নলিখিত আর কোডটি গুণমানের অনুমান এবং তাদের মান ত্রুটিগুলি ম্যানুয়ালি গণনা করে

dfData <- as.data.frame(
  read.csv("http://www.stat.tamu.edu/~sheather/book/docs/datasets/MichelinNY.csv",
                   header=T))

# using direct calculations
vY <- as.matrix(dfData[, -2])[, 5]                        # dependent variable
mX <- cbind(constant = 1, as.matrix(dfData[, -2])[, -5])  # design matrix

vBeta <- solve(t(mX)%*%mX, t(mX)%*%vY)                    # coefficient estimates
dSigmaSq <- sum((vY - mX%*%vBeta)^2)/(nrow(mX)-ncol(mX))  # estimate of sigma-squared
mVarCovar <- dSigmaSq*chol2inv(chol(t(mX)%*%mX))          # variance covariance matrix
vStdErr <- sqrt(diag(mVarCovar))                          # coeff. est. standard errors
print(cbind(vBeta, vStdErr))                              # output

যা আউটপুট উত্পাদন করে

                         vStdErr
constant   -57.6003854 9.2336793
InMichelin   1.9931416 2.6357441
Food         0.2006282 0.6682711
Decor        2.2048571 0.3929987
Service      3.0597698 0.5705031

থেকে আউটপুট তুলনা করুন lm():

# using lm()
names(dfData)
summary(lm(Price ~ InMichelin + Food + Decor + Service, data = dfData))

যা আউটপুট উত্পাদন করে:

Call:
lm(formula = Price ~ InMichelin + Food + Decor + Service, data = dfData)

Residuals:
    Min      1Q  Median      3Q     Max 
-20.898  -5.835  -0.755   3.457 105.785 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -57.6004     9.2337  -6.238 3.84e-09 ***
InMichelin    1.9931     2.6357   0.756    0.451    
Food          0.2006     0.6683   0.300    0.764    
Decor         2.2049     0.3930   5.610 8.76e-08 ***
Service       3.0598     0.5705   5.363 2.84e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Residual standard error: 13.55 on 159 degrees of freedom
Multiple R-squared: 0.6344, Adjusted R-squared: 0.6252 
F-statistic: 68.98 on 4 and 159 DF,  p-value: < 2.2e-16 

solve()ফাংশনটির সাথে দুর্দান্ত কৌশল । এটি ম্যাট্রিক্স বীজগণিত ছাড়াই বেশ কিছুটা দীর্ঘ হবে। কেবলমাত্র বেসিক অপারেটরগুলির সাথে সুনির্দিষ্ট রেখাটি সম্পাদন করার কোনও সংলগ্ন উপায় আছে?
ako

1
@ আকসেলো ওএলএসের অনুমানকারী, , যা আপনি স্পষ্টভাবে ly ম্যাট্রিক্স (যেমন @ ocram করেছেন এর বিপরীতমুখীকরণের মাধ্যমে গণনা করতে পারেন , তবে এটি অসুস্থ শর্তযুক্ত ম্যাট্রিক্সের সাথে জটিল। β^=(XX)1XY(XX)
tchakravarty

0

ওকরামের উত্তরের অংশটি ভুল। বাস্তবিক:

β^=(XX)1Xy(XX)1Xϵ.

E(β^)=(XX)1Xy.

এবং প্রথম উত্তরের মন্তব্য দেখায় যে সহগের বৈচিত্রের আরও ব্যাখ্যা প্রয়োজন:

Var(β^)=E(β^E(β^))2=Var((XX)1Xϵ)=(XX)1Xσ2IX(XX)1=σ2(XX)1


সম্পাদন করা

ধন্যবাদ, আমি that সেই বিটার টুপি উপেক্ষা । সিদ্ধান্তগ্রহণ উপরে । সঠিক ফলাফলটি হ'ল:wronglywrong

1.(এই সমীকরণ পেতে, প্রথম অর্ডার ব্যুৎপন্ন সেট উপর শূন্য সমান, maxmizing জন্য )β^=(XX)1Xy.SSRβSSR

2.E(β^|X)=E((XX)1X(Xβ+ϵ)|X)=β+((XX)1X)E(ϵ|X)=β.

3.Var(β^)=E(β^E(β^|X))2=Var((XX)1Xϵ)=(XX)1Xσ2IX(XX)1=σ2(XX)1

আশা করি এটি সাহায্য করবে।


1
বিটা ভেক্টর, কোনও শালীন রিগ্রেশন পাঠ্যপুস্তকে পাওয়া যায়। এর আলোকে, আপনি কী এমন প্রমাণ দিতে পারেন যে এটি পরিবর্তে? β^=(XX)1XYβ^=(XX)1Xy(XX)1Xϵ
গাং

4
আপনার কোনও অনুমানকারীও নয়, কারণ পর্যবেক্ষণযোগ্য নয়! β^ϵ
শুক্র

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