Stargazer lm (और अन्य) वस्तुओं के लिए बहुत अच्छा लेटेक्स टेबल बनाता है। मान लीजिए कि मैंने अधिकतम संभावना द्वारा एक मॉडल फिट किया है। मैं अपने अनुमानों के लिए एक एलएम जैसी मेज का निर्माण करना चाहता हूं। मैं यह कैसे कर सकता हूँ?
हालांकि यह थोड़ा हैकरी है, एक तरीका यह हो सकता है कि एक "नकली" एलएम ऑब्जेक्ट बनाया जाए जिसमें मेरे अनुमान हों - मुझे लगता है कि यह सारांश (my.fake.lm.object) के रूप में लंबे समय तक काम करेगा। क्या यह आसानी से संभव है?
एक उदाहरण:
library(stargazer)
N <- 200
df <- data.frame(x=runif(N, 0, 50))
df$y <- 10 + 2 * df$x + 4 * rt(N, 4) # True params
plot(df$x, df$y)
model1 <- lm(y ~ x, data=df)
stargazer(model1, title="A Model") # I'd like to produce a similar table for the model below
ll <- function(params) {
## Log likelihood for y ~ x + student's t errors
params <- as.list(params)
return(sum(dt((df$y - params$const - params$beta*df$x) / params$scale, df=params$degrees.freedom, log=TRUE) -
log(params$scale)))
}
model2 <- optim(par=c(const=5, beta=1, scale=3, degrees.freedom=5), lower=c(-Inf, -Inf, 0.1, 0.1),
fn=ll, method="L-BFGS-B", control=list(fnscale=-1), hessian=TRUE)
model2.coefs <- data.frame(coefficient=names(model2$par), value=as.numeric(model2$par),
se=as.numeric(sqrt(diag(solve(-model2$hessian)))))
stargazer(model2.coefs, title="Another Model", summary=FALSE) # Works, but how can I mimic what stargazer does with lm objects?
अधिक सटीक होने के लिए: lm ऑब्जेक्ट्स के साथ, Stargazer अच्छी तरह से तालिका के शीर्ष पर आश्रित चर को प्रिंट करता है, जिसमें संबंधित अनुमानों के नीचे कोष्ठक में SE शामिल हैं, और तालिका के निचले भाग में R ^ 2 और टिप्पणियों की संख्या है। वहाँ एक "कस्टम" मॉडल है जो अधिकतम संभावना के अनुसार अनुमानित "मॉडल" के साथ समान व्यवहार प्राप्त करने का एक तरीका है, जैसा कि ऊपर है?
यहाँ एक वस्तु के रूप में मेरी आशातीत उत्पादन को तैयार करने के लिए मेरे विनम्र प्रयास हैं:
model2.lm <- list() # Mimic an lm object
class(model2.lm) <- c(class(model2.lm), "lm")
model2.lm$rank <- model1$rank # Problematic?
model2.lm$coefficients <- model2$par
names(model2.lm$coefficients)[1:2] <- names(model1$coefficients)
model2.lm$fitted.values <- model2$par["const"] + model2$par["beta"]*df$x
model2.lm$residuals <- df$y - model2.lm$fitted.values
model2.lm$model <- df
model2.lm$terms <- model1$terms # Problematic?
summary(model2.lm) # Not working
texreg
पैकेज के साथ इसी तरह का प्रयास किया है। आलस्य के कारण, मैंने एक अलग मॉडल के गुणांक और मानक त्रुटियों को ओवरराइट कर दिया, जिससे मुझे वांछित आउटपुट मिला। आपके मामले में, आप गुणांक और मानक त्रुटियों को अधिलेखित कर सकते हैंmodel1
। जबकि यह एक परिष्कृत समाधान नहीं है, यह काम करना चाहिए। कहने की जरूरत नहीं है, मैं यह देखने के लिए उत्सुक हूं कि क्या कोई बेहतर समाधान सामने आता है ...