আমি স্ট্যান্ডার্ড ত্রুটি "ক্লাস্টারিং" এবং কীভাবে আর তে চালিত করব তা বোঝার চেষ্টা করছি (এটি স্ট্যাটায় তুচ্ছ)। আরআই তে হয় ব্যবহার করে plm
বা আমার নিজস্ব ফাংশন লিখতে ব্যর্থ হয়েছে । আমি প্যাকেজ diamonds
থেকে ডেটা ব্যবহার করব ggplot2
।
আমি ডামি ভেরিয়েবলগুলির সাথে স্থির প্রভাবগুলি করতে পারি
> library(plyr)
> library(ggplot2)
> library(lmtest)
> library(sandwich)
> # with dummies to create fixed effects
> fe.lsdv <- lm(price ~ carat + factor(cut) + 0, data = diamonds)
> ct.lsdv <- coeftest(fe.lsdv, vcov. = vcovHC)
> ct.lsdv
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
carat 7871.082 24.892 316.207 < 2.2e-16 ***
factor(cut)Fair -3875.470 51.190 -75.707 < 2.2e-16 ***
factor(cut)Good -2755.138 26.570 -103.692 < 2.2e-16 ***
factor(cut)Very Good -2365.334 20.548 -115.111 < 2.2e-16 ***
factor(cut)Premium -2436.393 21.172 -115.075 < 2.2e-16 ***
factor(cut)Ideal -2074.546 16.092 -128.920 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
বা বাম- এবং ডান হাত উভয় ডি-অর্থ দ্বারা (এখানে কোনও সময় আক্রমণকারী রেজিস্ট্রার নেই) এবং স্বাধীনতার ডিগ্রি সংশোধন করে।
> # by demeaning with degrees of freedom correction
> diamonds <- ddply(diamonds, .(cut), transform, price.dm = price - mean(price), carat.dm = carat .... [TRUNCATED]
> fe.dm <- lm(price.dm ~ carat.dm + 0, data = diamonds)
> ct.dm <- coeftest(fe.dm, vcov. = vcovHC, df = nrow(diamonds) - 1 - 5)
> ct.dm
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
carat.dm 7871.082 24.888 316.26 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
আমি এই ফলাফলগুলি এর সাথে প্রতিলিপি করতে পারি না plm
, কারণ আমার কাছে "সময়" সূচক নেই (অর্থাত্ এটি সত্যিকার অর্থে কোনও প্যানেল নয়, কেবল ক্লাস্টারগুলির যাতে তাদের ত্রুটির শর্তে একটি সাধারণ পক্ষপাত থাকতে পারে)।
> plm.temp <- plm(price ~ carat, data = diamonds, index = "cut")
duplicate couples (time-id)
Error in pdim.default(index[[1]], index[[2]]) :
আমি স্টাটা তাদের cluster
বিকল্পের ব্যাখ্যাটি ( এখানে ব্যাখ্যা করেছেন ) ক্লাস্টার স্ট্যান্ডার্ড ত্রুটির সাথে আমার নিজস্ব কোভারিয়েন্স ম্যাট্রিক্সও কোড করার চেষ্টা করেছি , যা যেখানে , Si ক্লাস্টার সংখ্যা, অবশিষ্ট নেই জন্য পর্যবেক্ষণ ও ধ্রুবক সহ ভবিষ্যতবক্তা, সারি ভেক্টর আছে (এই Wooldridge এর সমীকরণ (7.22) হিসাবে প্রদর্শিত হবে ক্রস সেকশন এবং প্যানেল ডেটাUঞ=Σগঠতোমার দর্শন লগ করাগুলিটনইদঞইআমি*xআমিএনগইআমিআমিটিজ
plm
একটি ফ্যাক্টারে ক্লাস্টার করতে পারব না তা প্রদত্ত, আমি আমার কোডটি কীভাবে বেনমার্ক করব তা নিশ্চিত নই।
> # with cluster robust se
> lm.temp <- lm(price ~ carat + factor(cut) + 0, data = diamonds)
>
> # using the model that Stata uses
> stata.clustering <- function(x, clu, res) {
+ x <- as.matrix(x)
+ clu <- as.vector(clu)
+ res <- as.vector(res)
+ fac <- unique(clu)
+ num.fac <- length(fac)
+ num.reg <- ncol(x)
+ u <- matrix(NA, nrow = num.fac, ncol = num.reg)
+ meat <- matrix(NA, nrow = num.reg, ncol = num.reg)
+
+ # outer terms (X'X)^-1
+ outer <- solve(t(x) %*% x)
+
+ # inner term sum_j u_j'u_j where u_j = sum_i e_i * x_i
+ for (i in seq(num.fac)) {
+ index.loop <- clu == fac[i]
+ res.loop <- res[index.loop]
+ x.loop <- x[clu == fac[i], ]
+ u[i, ] <- as.vector(colSums(res.loop * x.loop))
+ }
+ inner <- t(u) %*% u
+
+ #
+ V <- outer %*% inner %*% outer
+ return(V)
+ }
> x.temp <- data.frame(const = 1, diamonds[, "carat"])
> summary(lm.temp)
Call:
lm(formula = price ~ carat + factor(cut) + 0, data = diamonds)
Residuals:
Min 1Q Median 3Q Max
-17540.7 -791.6 -37.6 522.1 12721.4
Coefficients:
Estimate Std. Error t value Pr(>|t|)
carat 7871.08 13.98 563.0 <2e-16 ***
factor(cut)Fair -3875.47 40.41 -95.9 <2e-16 ***
factor(cut)Good -2755.14 24.63 -111.9 <2e-16 ***
factor(cut)Very Good -2365.33 17.78 -133.0 <2e-16 ***
factor(cut)Premium -2436.39 17.92 -136.0 <2e-16 ***
factor(cut)Ideal -2074.55 14.23 -145.8 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1511 on 53934 degrees of freedom
Multiple R-squared: 0.9272, Adjusted R-squared: 0.9272
F-statistic: 1.145e+05 on 6 and 53934 DF, p-value: < 2.2e-16
> stata.clustering(x = x.temp, clu = diamonds$cut, res = lm.temp$residuals)
const diamonds....carat..
const 11352.64 -14227.44
diamonds....carat.. -14227.44 17830.22
এটি কি আর-তে করা যায়? এটি ইকোনোমেট্রিক্সে মোটামুটি সাধারণ কৌশল ( এই বক্তৃতায় একটি সংক্ষিপ্ত টিউটোরিয়াল আছে ), তবে আমি আর এটিকে বুঝতে পারি না Thanks ধন্যবাদ!
cluster
বিকল্পটি ব্যাখ্যা করা গেলে এটি অনেক সাহায্য করবে । আমি নিশ্চিত যে আর
factor
সাথে কিছুই করার নেই factanal
তবে শ্রেণিবদ্ধ ভেরিয়েবলগুলি উল্লেখ করে। তবে আর-এ ক্লাস্টারটি ক্লাস্টার বিশ্লেষণকে বোঝায়, কে- মানেগুলি কেবলমাত্র পার্টিশন পদ্ধতি: স্টেটমেডথস.নেট / অ্যাডভিস্ট্যাটস / ক্লসটার হিটটিএমএল । আমি আপনার প্রশ্নটি পাই না, তবে আমি এটিও অনুমান করি যে এটির সাথে ক্লাস্টারের কোনও সম্পর্ক নেই।