2017-09-15 27 views
0

풀링 된 회귀에서 특정 변수의 모든 개별 계수를 추출하려는 문제가 발생합니다.풀링 된 OLS 추정에서 모든 개별 기울기 계수를 추출합니다. R

내 데이터는 다음과 같이 나는이 plm 패키지 및 요약을 사용하여 X를

Observation name date Y X 
1   A 1 Y1 X1 
2   A 2 Y2 X2 
3   B 1 Y3 X3 
4   B 2 Y4 X4 

에 Y를 퇴보, R는 그러나 나에게 X의 하나 개의 계수를 제공, 나는에 X 변수의 계수를 갖고 싶어 각각의 개별 회귀. 아무도 이것으로 나를 도울 수 있습니까?

내가 원하는 것은 X_n과 관련된 모든 베타 버전이며 아래 그림에서 1입니다. 혼란을 드려 죄송합니다. Pictures for clarification

답변

0

, 당신은 코드 예제를 참조 개별 당 OLS 모델에 맞게 패키지 plm에서 기능 pvcm()를 사용하거나 손으로 그것을 할 수 있습니다 이하. 도움말 페이지 (?pvcm)의 예에 따라

건물 :

library(plm) 
data("Produc", package = "plm") 

form <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp 

pvcm(form, data = Produc, model = "within") # individual coefficients 
## Coefficients: 
##    (Intercept) log(pcap) log(pc) log(emp)  unemp 
## ALABAMA   8.49604 -1.4426440 0.2795010 1.835250 0.00735450 
## ARIZONA   4.66528 -0.1627084 -0.0052207 1.075828 -0.00365798 
## ARKANSAS   3.24565 -0.5056503 0.3212473 1.234017 0.00149221 
## CALIFORNIA   0.27935 0.2639377 0.2484033 0.699135 -0.01074510 
## [...] 

###### same using OLS on splitted data for first entity (ALABAMA): 
l <- split(Produc, Produc$state) 
plm(form, data = l[[1]], model = "pooling") 
## Coefficients: 
## (Intercept) log(pcap)  log(pc) log(emp)  unemp 
## 8.4960384 -1.4426440 0.2795010 1.8352498 0.0073545 
+0

우아한 솔루션을 제공해 주셔서 감사합니다. –

0

당신은 plm에서 결과를 가지고 데이터 프레임에 넣어하기 위해 빗자루 패키지에서 tidyaugment를 사용할 수 있습니다. 당신이 (당신의 예에서 name에 의해 분할) 엔티티에 대해 서로 다른 계수를 원하는 경우에

library(plm) 
library(broom) 

data("Grunfeld", package = "plm") 

p <- plm(inv ~ value + capital, data = Grunfeld, model = "pooling") 

df <- tidy(p) 

#   term estimate std.error statistic  p.value 
# 1 (Intercept) -42.7143694 9.51167603 -4.490730 1.207357e-05 
# 2  value 0.1155622 0.00583571 19.802589 9.542703e-49 
# 3  capital 0.2306785 0.02547580 9.054808 1.347370e-16 

df$estimate 

# [1] -42.7143694 0.1155622 0.2306785 

augment(p) 

#   inv value capital  .fitted  .resid 
# 1 317.60 3078.50 2.80 313.689629 3.910371 
# 2 391.80 4661.70 52.60 508.135423 -116.335423 
# 3 410.60 5387.10 156.90 616.023978 -205.423978 
# 4 257.70 2792.20 209.20 328.216223 -70.516223 
# 5 330.80 4313.20 203.40 502.648328 -171.848328 
# 6 461.20 4643.90 207.20 541.741311 -80.541311 
# 7 512.00 4551.20 255.20 542.101267 -30.101267 
# 8 448.00 3244.10 303.70 402.237879 45.762121 
# 9 499.60 4053.70 264.10 486.662133 12.937867 
# 10 547.50 4379.30 201.60 509.871765 37.628235 
+0

안녕하세요. 먼저 답장을 보내 주셔서 감사합니다. 그러나 이것은 제가 원하는 것이 아닙니다. 나는이 결과를 얻을 수있다. 내가 원하는 것은 변수 "가치"의 각 추정 계수입니다. 예를 들어, 자본의 첫 번째 예상 계수, 자본의 두 번째 추정 계수와 하나 –

+0

먼저 도움을 주셔서 감사합니다. 그러나 이것은 단지 베타 버전이 아닌 내 데이터 세트의 초기 값을 제공 할 것입니다. –

+0

귀하의 질문에 불분명합니다. 아마도 내가 [재생산 가능한 예] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)를 제공해야합니다. 더 도움이됩니다. –