2013-09-21 19 views
2

當使用Sweave和R構建文檔時,我使用表stargazer庫。在觀星表中顯示自由度

當使用stargazer時,是否有機制顯示與glm構建的模型相關的與剩餘偏差相關的自由度?

最少的代碼:

library(stargazer) 
set.seed(1234) 
data <- data.frame(x=1:10) 
data$y <- data$x + rnorm(10, 0, 0.2) 
model <- glm(y~x, data=data, family=gaussian) 
summary(model) 
stargazer(model,title="A test", align=T,label="Tab:test",style="all2") 

合力斯塔蓋澤表將有意見,對數似然,AIC,剩餘越軌和空越軌行爲,但沒有D.F.我可以解決d.f.但會想到這可以直接顯示。另請參閱:

https://sites.google.com/site/marekhlavac/stargazer

更新#1:

謝謝您馬立克你的迴應。對於其他人遇到此的好處,這裏是讓你形成圍繞工作流程:

  1. 獲取4.0版 - 從http://cran.r-project.org/src/contrib/Archive/stargazer/
  2. (不是4.5,我會再回到這個)在包在R下的目錄結構中,根據以下答案中的說明編輯「stargazer-internal.R」。
  3. 確保庫未在R對話
  4. 確保已刪除所有現有的天文愛好者LIB
  5. 安裝夜光雲包的編輯版本加載。
  6. 在R中重新加載庫並按照慣例進行編譯。

下面是命令:

detach("package:stargazer", unload=TRUE) 
remove.packages("stargazer") 

在命令行:

R CMD INSTALL -l <path to library directory> stargazer 

最後(假設你有一些車型在手),

library(stargazer) 
stargazer(model6,model7,model8, title="Logistic model summary",align=T,label="Tab:logmod1", font.size="footnotesize", style="all2") 

結果:

% Table created by stargazer v.4.0 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu 
% Date and time: Tue, Sep 24, 2013 - 17:17:17 
% Requires LaTeX packages: dcolumn 
\begin{table}[!htbp] \centering 
    \caption{Logistic model summary} 
    \label{Tab:logmod1} 
\footnotesize 
\begin{tabular}{@{\extracolsep{5pt}}lD{.}{.}{-3} D{.}{.}{-3} D{.}{.}{-3} } 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
& \multicolumn{3}{c}{\textit{Dependent variable:}} \\ 
\cline{2-4} 
\\[-1.8ex] & \multicolumn{3}{c}{whalesighted} \\ 
\\[-1.8ex] & \multicolumn{1}{c}{\textit{logistic}} & \multicolumn{1}{c}{\textit{probit}} & \multicolumn{1}{c}{\textit{glm: binomial}} \\ 
& \multicolumn{1}{c}{\textit{}} & \multicolumn{1}{c}{\textit{}} & \multicolumn{1}{c}{\textit{link = cloglog}} \\ 
\\[-1.8ex] & \multicolumn{1}{c}{(1)} & \multicolumn{1}{c}{(2)} & \multicolumn{1}{c}{(3)}\\ 
\hline \\[-1.8ex] 
visibility & 0.392^{***} & 0.226^{***} & 0.216^{***} \\ 
    & (0.051) & (0.027) & (0.026) \\ 
    Constant & -1.251^{***} & -0.745^{***} & -1.149^{***} \\ 
    & (0.246) & (0.144) & (0.182) \\ 
\hline \\[-1.8ex] 
Observations & \multicolumn{1}{c}{232} & \multicolumn{1}{c}{232} & \multicolumn{1}{c}{232} \\ 
Log Likelihood & \multicolumn{1}{c}{-110.485} & \multicolumn{1}{c}{-110.888} & \multicolumn{1}{c}{-112.694} \\ 
Akaike Inf. Crit. & \multicolumn{1}{c}{224.970} & \multicolumn{1}{c}{225.775} & \multicolumn{1}{c}{229.388} \\ 
Residual Deviance (df = 230) & \multicolumn{1}{c}{220.970} & \multicolumn{1}{c}{221.775} & \multicolumn{1}{c}{225.388} \\ 
Null Deviance (df = 231) & \multicolumn{1}{c}{310.759} & \multicolumn{1}{c}{310.759} & \multicolumn{1}{c}{310.759} \\ 
\hline 
\hline \\[-1.8ex] 
\textit{Note:} & \multicolumn{3}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\ 
\normalsize 
\end{tabular} 
\end{table} 

返回到我在實現基於4.5代碼的解決方法時出現的錯誤。當我從mac二進制文件(版本4.5.1)(http://cran.r-project.org/web/packages/stargazer/index.html)安裝並簡單地嘗試使用stargazer時,我實際上會得到同樣的錯誤,請參見下文。

> install.packages("stargazer") 
trying URL 'http://cran.ms.unimelb.edu.au/bin/macosx/contrib/3.0/stargazer_4.5.1.tgz' 
Content type 'application/x-tar' length 332917 bytes (325 Kb) 
opened URL 
================================================== 
downloaded 325 Kb 

> stargazer(model6,model7,model8,  
+   title="Logistic model summary", 
+   align=T, 
+   label="Tab:logmod1", 
+   font.size="footnotesize", 
+   style="all2") 
Error in `rownames<-`(`*tmp*`, value = "visibility") : 
    length of 'dimnames' [1] not equal to array extent 

Marek,供您參考我會將結果traceback()發送給您。 乾杯。

+1

我不是'stargazer'的用戶,但如果有最低限度的代碼提供,我會經常「對問題進行一次」處理。 –

+0

感謝您的詳細跟進。我將檢查您的問題,並在必要時修復下一個版本。請注意,如果沒有實施解決方法,4.5.1毫無困難地工作(只是不會默認自由度輸出爲零和殘差)。 – Marek

回答

2

Stargazer作者在這裏。它看起來像包的默認不是輸出殘差和零偏差的自由度。我會考慮在未來的版本中更改默認值。

作爲現在的快速修復,您可能希望使用源包(來自CRAN),並在stargazer-internal中修改函數.adjust.settings.style。R鍵包含以下內容:

if (style == "all") { 
     .format.table.parts <<- c("=!","dependent variable label","dependent variables","models","columns","numbers","-","coefficients","-","omit","-","additional","N","R-squared","adjusted R-squared","max R-squared","log likelihood","sigma2","theta(se)*(p)", "SER(df)","F statistic(df)*(p)","chi2(df)*(p)","Wald(df)*(p)","LR(df)*(p)","logrank(df)*(p)","AIC","BIC","UBRE","rho(se)*(p)","Mills(se)*(p)","residual deviance(df)*","null deviance(df)*","=!","notes") 
     .format.coefficient.table.parts <<- c("variable name","coefficient*","standard error","t-stat","p-value") 
    } 

    else if (style == "all2") { 
     .format.table.parts <<- c("=!","dependent variable label","dependent variables","models","columns","numbers","-","coefficients","-","omit","-","additional","N","R-squared","adjusted R-squared","max R-squared","log likelihood","sigma2","theta(se)*(p)", "SER(df)","F statistic(df)*(p)","chi2(df)*(p)","Wald(df)*(p)","LR(df)*(p)","logrank(df)*(p)","AIC","BIC","UBRE","rho(se)*(p)","Mills(se)*(p)","residual deviance(df)*","null deviance(df)*","=!","notes") 
     .format.coefficient.table.parts <<- c("variable name","coefficient*","standard error") 
    } 

注意的是,這裏唯一的變化是,我補充說:「(DF)*」到「剩餘越軌」和「零偏差」。