আর-তে স্টাতার "মজবুত" বিকল্পটি প্রতিলিপি করা হচ্ছে


39

আমি robustআর-তে স্টাটা বিকল্পের ফলাফলগুলি প্রতিলিপি দেওয়ার চেষ্টা করছি I আমি rlmকমান্ডটি MASS প্যাকেজ গঠন করেছি এবং lmrobপ্যাকেজ "রোবস্টবেস" থেকে কমান্ডটি ব্যবহার করেছি। উভয় ক্ষেত্রেই ফলাফল স্টাতার "মজবুত" বিকল্পের থেকে একেবারেই আলাদা। এই প্রসঙ্গে কেউ দয়া করে কিছু প্রস্তাব দিতে পারেন?

স্টাটাতে শক্তিশালী বিকল্পটি চালানোর সময় আমি প্রাপ্ত ফলাফলগুলি এখানে:

. reg yb7 buildsqb7 no_bed no_bath rain_harv swim_pl pr_terrace, robust

Linear regression                                      Number of obs =    4451
                                                       F(  6,  4444) =  101.12
                                                       Prob > F      =  0.0000
                                                       R-squared     =  0.3682
                                                       Root MSE      =   .5721

------------------------------------------------------------------------------
             |               Robust
         yb7 |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
   buildsqb7 |   .0046285   .0026486     1.75   0.081    -.0005639     .009821
      no_bed |   .3633841   .0684804     5.31   0.000     .2291284    .4976398
     no_bath |   .0832654   .0706737     1.18   0.239    -.0552904    .2218211
   rain_harv |   .3337906   .0395113     8.45   0.000     .2563289    .4112524
     swim_pl |   .1627587   .0601765     2.70   0.007     .0447829    .2807346
  pr_terrace |   .0032754   .0178881     0.18   0.855    -.0317941    .0383449
       _cons |   13.68136   .0827174   165.40   0.000     13.51919    13.84353

এবং এটি আমি আরএম এ lmrob বিকল্পের সাথে পেয়েছি:

> modelb7<-lmrob(yb7~Buildsqb7+No_Bed+Rain_Harv+Swim_Pl+Gym+Pr_Terrace, data<-bang7)
> summary(modelb7)

Call:
lmrob(formula = yb7 ~ Buildsqb7 + No_Bed + Rain_Harv + Swim_Pl + Gym + Pr_Terrace, 
    data = data <- bang7)
 \--> method = "MM"
Residuals:
      Min        1Q    Median        3Q       Max 
-51.03802  -0.12240   0.02088   0.18199   8.96699 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 12.648261   0.055078 229.641   <2e-16 ***
Buildsqb7    0.060857   0.002050  29.693   <2e-16 ***
No_Bed       0.005629   0.019797   0.284   0.7762    
Rain_Harv    0.230816   0.018290  12.620   <2e-16 ***
Swim_Pl      0.065199   0.028121   2.319   0.0205 *  
Gym          0.023024   0.014655   1.571   0.1162    
Pr_Terrace   0.015045   0.013951   1.078   0.2809    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Robust residual standard error: 0.1678 
Multiple R-squared:  0.8062,    Adjusted R-squared:  0.8059 

3
ক্রস যাচাইয়ে স্বাগতম! আমি আপনার শিরোনামটি কিছুটা বর্ণনামূলক করে কিছু ফর্ম্যাটিং যুক্ত করেছি added সাধারণভাবে, প্রোগ্রামিং প্রশ্নগুলি এখানে বিষয়ের উপর নয়, তবে আমি মনে করি এটি আপনার কারণ কারণ এটিতে কিছু পরিসংখ্যানগত সমস্যা জড়িত। আশা করি আপনাকে আশেপাশে দেখা হবে ....
ম্যাট ক্রাউস

3
স্টাটা এবং আর-এর মডেলগুলি অনুমান করার জন্য আপনি যদি কমপক্ষে কোডটি পেস্ট করেছেন তবে এটি দুর্দান্তভাবে সহায়তা করবে (আপনি যদি পুরোপুরি পুনরুত্পাদনযোগ্য উদাহরণ সরবরাহ করেন তবে আরও ভাল)। আপনি যখন "ফলাফলগুলি পৃথক" বলছেন - আপনি যদি একই মডেলটি অনুমান করছেন তবে কেবল মান ত্রুটিগুলি পৃথক হওয়া উচিত, গুণাগুলি অনুমানগুলি নয়।
অ্যান্ডি ডব্লিউ

ঠিক আছে ... এগুলি
স্ট্যাটায়

5
দেখতে lmrobএকইরকম নয় reg y x, robust। গুগল "হেটেরোস্কেস্টেটিসিটি-সামঞ্জস্যপূর্ণ মান ত্রুটি আর"। আপনি কীভাবে গ্রন্থাগারগুলি lmtestএবং কীভাবে ব্যবহার করবেন সে সম্পর্কে আপনাকে পৃষ্ঠাগুলি পাবেন sandwich
জেনেরিক_উজার

3
স্টাটা এন / (এন কে) এর একটি ছোট নমুনা সংশোধন ফ্যাক্টর ব্যবহার করে। আর সাধারণত অন্য কিছু করে, তাই নিশ্চিত হয়ে নিন যে আপনি এটির জন্য সামঞ্জস্য করছেন।
দিমিত্রি ভি। মাস্টারভ

উত্তর:


47

চার্লস তার উত্তর সম্পর্কে প্রায় আছে, কিন্তু স্টাটাতে কমান্ডের (এবং অন্যান্য প্রতিরোধের অনুমানের কমান্ড) robustবিকল্পটি regressএকাধিক প্রকারের হিটারোস্কেস্টাস্টিটি এবং স্বতঃসংশোধন শক্তিশালীকরণ-কোভারিয়েন্স ম্যাট্রিক্স অনুমানকারীকে ব্যবহার করা সম্ভব করে, যেমন প্যাকেজের coeftestকার্যকারিতা যেমন lmtestরয়েছে পালা প্যাকেজে vcovHCফাংশন দ্বারা উত্পাদিত সম্পর্কিত বৈকল্পিক-কোভারিয়েন্স ম্যাট্রিক্সের উপর নির্ভর করে sandwich

যাইহোক, দুটি দ্বারা ব্যবহৃত ডিফল্ট ভেরিয়েন্স-কোভেরিয়েন্স ম্যাট্রিক্সগুলি পৃথক:
১. ফিরে আসা ডিফল্ট ভেরিয়েন্স-কোভারিয়েন্স ম্যাট্রিক্সটি ম্যান পৃষ্ঠাতে বর্ণিত কারণগুলির জন্য vcocHCতথাকথিত । ২. চার্লস দ্বারা ব্যবহৃত বিকল্পটি শক্তিশালী ভেরিয়েন্স-কোভারিয়েন্স ম্যাট্রিক্স ব্যবহার করে । ৩. কলটিতে বিকল্পটি ব্যবহারের স্টাটা ডিফল্ট আচরণের পুনরুত্পাদন করার জন্য আপনাকে শক্তিশালী বৈকল্পিক-কোভারিয়েন্স ম্যাট্রিক্স ব্যবহার করার জন্য অনুরোধ করতে হবে ।HC3vcovHC
sandwichcoeftestHC0
robustregressvcovHCHC1

এটি সম্পর্কে এখানে আরও পড়ুন ।

নীচের উদাহরণ যা উপরোক্ত সমস্ত পয়েন্ট প্রদর্শন করে তা এখানে উদাহরণের ভিত্তিতে তৈরি ।

library(foreign)
library(sandwich)
library(lmtest)

dfAPI = read.dta("http://www.ats.ucla.edu/stat/stata/webbooks/reg/elemapi2.dta")
lmAPI = lm(api00 ~ acs_k3 + acs_46 + full + enroll, data= dfAPI)
summary(lmAPI)                                  # non-robust

# check that "sandwich" returns HC0
coeftest(lmAPI, vcov = sandwich)                # robust; sandwich
coeftest(lmAPI, vcov = vcovHC(lmAPI, "HC0"))    # robust; HC0 

# check that the default robust var-cov matrix is HC3
coeftest(lmAPI, vcov = vcovHC(lmAPI))           # robust; HC3 
coeftest(lmAPI, vcov = vcovHC(lmAPI, "HC3"))    # robust; HC3 (default)

# reproduce the Stata default
coeftest(lmAPI, vcov = vcovHC(lmAPI, "HC1"))    # robust; HC1 (Stata default)

উপরের কোডের শেষ লাইনটি স্টাটা থেকে ফলাফল পুনরুত্পাদন করে:

use http://www.ats.ucla.edu/stat/stata/webbooks/reg/elemapi2
regress api00 acs_k3 acs_46 full enroll, robust

ডেটা লিঙ্ক মারা গেছে। আপনি দয়া করে লিঙ্কটি আপডেট করতে পারেন? এটি কি একই ফাইল: অনুষদ.স্মু.ইডু / টফম্বি / এেকো ৫৩৫০ / ডাটা / উদাহরণস্বর / ইলেমাপি ২.ডিটি ?
ভ্যাসিলি 111

আত্মবিশ্বাসের অন্তরগুলি কীভাবে পুনরুত্পাদন করবেন?
vasili111

29

আমি নীচের ওয়েবসাইটে একটি বিবরণ পেয়েছি যা স্টাটা'র '' মজবুত '' বিকল্পটি আর-তে প্রতিলিপি করে

https://economictheoryblog.com/2016/08/08/robust-standard-errors-in-r

নির্দেশাবলী অনুসরণ করে, আপনাকে যা করতে হবে তা হ'ল আপনার আর সেশনে একটি ফাংশন লোড করা এবং তারপরে আপনার সংক্ষিপ্ত ফাংশনটিতে '' রোবস্ট '' পরামিতিটি সত্য করতে হবে।

summary(lm.object, robust=TRUE)

10

এপ্রিল 2018 পর্যন্ত আমি বিশ্বাস করি আপনি estimatrপ্যাকেজটি চান যা প্রতিস্থাপনের জন্য প্রায় ড্রপ সরবরাহ করে lm। বেশ কয়েকটি উদাহরণ ডকুমেন্টেশন থেকে প্রায় টানা:

library(estimatr)
library(car)

# HC1 robust standard errors
model <- lm_robust(GPA_year2 ~ gpa0 + ssp, data = alo_star_men,
                   se_type = "stata")
summary(model)
#> 
#> Call:
#> lm_robust(formula = GPA_year2 ~ gpa0 + ssp, data = alo_star_men, 
#>     se_type = "stata")
#> 
#> Standard error type:  HC1 
#> 
#> Coefficients:
#>             Estimate Std. Error  Pr(>|t|) CI Lower CI Upper  DF
#> (Intercept) -3.60625    1.60084 0.0258665 -6.77180  -0.4407 137
#> gpa0         0.06814    0.02024 0.0009868  0.02812   0.1082 137
#> ssp          0.31917    0.18202 0.0817589 -0.04077   0.6791 137
#> 
#> Multiple R-squared:  0.09262 ,   Adjusted R-squared:  0.07937 
#> F-statistic: 6.992 on 2 and 137 DF,  p-value: 0.001284

# HC1 cluster robust standard errors
model2 <- lm_robust(GPA_year2 ~ gpa0 + ssp, cluster = ssp,
                   data = alo_star_men, se_type = "stata")
summary(model2)
#> 
#> Call:
#> lm_robust(formula = GPA_year2 ~ gpa0 + ssp, data = alo_star_men, 
#>     clusters = ssp, se_type = "stata")
#> 
#> Standard error type:  stata 
#> 
#> Coefficients:
#>             Estimate Std. Error Pr(>|t|) CI Lower CI Upper DF
#> (Intercept) -3.60625   1.433195 0.240821 -21.8167  14.6042  1
#> gpa0         0.06814   0.018122 0.165482  -0.1621   0.2984  1
#> ssp          0.31917   0.004768 0.009509   0.2586   0.3798  1
#> 
#> Multiple R-squared:  0.09262 ,   Adjusted R-squared:  0.07937 
#> F-statistic: 6.992 on 2 and 137 DF,  p-value: 0.001284

carপ্যাকেজ তারপর এটি সহজ এই মডেলের জন্য সমস্ত হাইপোথিসিস পরীক্ষা সঞ্চালন করে তোলে:

linearHypothesis(model, c("gpa0 = ssp"))
#> Linear hypothesis test
#> 
#> Hypothesis:
#> gpa0 - ssp = 0
#> 
#> Model 1: restricted model
#> Model 2: GPA_year2 ~ gpa0 + ssp
#> 
#>   Res.Df Df  Chisq Pr(>Chisq)
#> 1    138                     
#> 2    137  1 1.8859     0.1697

4

আমি প্রশ্নটি সম্পাদনা করব। আপনি স্টাটার শক্তিশালী কমান্ড দিয়ে শক্তিশালী রিগ্রেশনকে বিভ্রান্ত করছেন। এই বিভ্রান্তিটি চালু করার কোনও লাভ হবে বলে মনে হয় না।

আমি মনে করি কয়েকটি উপায় আছে। আমি তাদের সবার দিকে নজর দিইনি এবং নিশ্চিত না যে কোনটি সেরা:

স্যান্ডউইচ প্যাকেজ:

library(sandwich)    
coeftest(model, vcov=sandwich)

তবে এটি কোনও কারণে স্টাটা থেকে আমার কাছে একই উত্তরগুলি দেয় না। আমি কখনই কেন কাজ করার চেষ্টা করি নি - তবে উপরের মন্তব্যে একটি প্রস্তাবিত উত্তর রয়েছে - আমি কেবল এই প্যাকেজটি ব্যবহার করি না।

আরএমএস প্যাকেজ:

আমি এটির সাথে কাজ করতে কিছুটা বেদনা পাই তবে সাধারণত কিছু চেষ্টা করে ভাল উত্তর পাই। এবং এটি আমার জন্য সবচেয়ে দরকারী।

model = ols(a~b, x=TRUE)    
robcov(model)

আপনি এটি স্ক্র্যাচ থেকে কোড করতে পারেন

এই ব্লগ পোস্টটি দেখুন ( http://thetarzan.wordpress.com/2011/05/28/heteroskedasticity-robust-and-clustered-standard-erferences-in-r/ )। এটি দেখতে সবচেয়ে বেদনাদায়ক বিকল্পের মতো, তবে উল্লেখযোগ্যভাবে সহজ এবং এই বিকল্পটি প্রায়শই সবচেয়ে ভাল কাজ করে।


4
চার্লস মূল বিষয়টিতে সঠিক, তবে অন্যত্র যা বোঝানো হয়েছে তা স্পষ্ট করে জানাতে যে স্টাতার কোনও robustআদেশ নেই! (এখানে একজন প্রোগ্রামারের কমান্ড রয়েছে _robust, এখানে সরাসরি প্রাসঙ্গিক নয়।) বরং শক্তিশালী (হুবার-আইকার-হোয়াইট-স্যান্ডউইচ) স্ট্যান্ডার্ড ত্রুটি পেতে স্টাটার আধুনিক পদ্ধতির vce(robust)বিকল্প হিসাবে নির্দিষ্ট করতে হবে । কোনও robustবিকল্প নির্দিষ্ট করার জন্য পুরানো পদ্ধতির কাজ এখনও কাজ করে। আরও বিস্তৃতভাবে, শক্তিশালী রিগ্রেশন (ইত্যাদি) এবং "দৃust়" এস এস এর মধ্যে পার্থক্যের কারণে সৃষ্ট বিভ্রান্তি দুর্ভাগ্যজনক।
নিক কক্স

আরে। অনেক ধন্যবাদ. কোডগুলি কাজ করে এবং এটি প্রকৃতপক্ষে স্টাটা ফলাফলগুলি সরবরাহ করে। শুধু একটা প্রশ্ন. আমি বুঝতে পারি যে শক্তিশালী রিগ্রেশন শক্তিশালী স্ট্যান্ডার্ড ত্রুটিগুলির থেকে পৃথক এবং যখন আপনার ডেটাতে বিদেশী থাকে তখন সেই শক্তিশালী রিগ্রেশন ব্যবহৃত হয়। তবে এটি হিটারোস্কেস্টাস্টিটির সমস্যাও সমাধান করে। কেউ দয়া করে আমাকে বলতে পারবেন যে প্যাকেজ "রোবস্টবেস" থেকে "lmrob" কমান্ড দ্বারা সরবরাহিত এমএম ধরনের অনুমানটি বহিরাগতদের এবং ভিন্ন ভিন্ন ভিন্নতার সমস্যার সমাধান হিসাবে ব্যবহৃত হতে পারে?
ব্যবহারকারী56579

@ user56579 আমার ধারণা আপনি এই সম্পর্কে একটি পৃথক প্রশ্ন জিজ্ঞাসা করতে চান।
tchakravarty
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.