This function is meant as a userfriendly wrapper to approximate the way logistic regression is done in SPSS.
logRegr(
formula,
data = NULL,
conf.level = 0.95,
digits = 2,
predictGroupValue = NULL,
comparisonGroupValue = NULL,
pvalueDigits = 3,
crossTabs = TRUE,
oddsRatios = TRUE,
plot = FALSE,
collinearity = FALSE,
env = parent.frame(),
predictionColor = rosetta::opts$get("viridis3")[3],
predictionAlpha = 0.5,
predictionSize = 2,
dataColor = rosetta::opts$get("viridis3")[1],
dataAlpha = 0.33,
dataSize = 2,
observedMeansColor = rosetta::opts$get("viridis3")[2],
binObservedMeans = 7,
observedMeansSize = 2,
observedMeansWidth = NULL,
observedMeansAlpha = 0.5,
theme = ggplot2::theme_bw(),
headingLevel = 3
)
rosettaLogRegr_partial(
x,
digits = x$input$digits,
pvalueDigits = x$input$pvalueDigits,
headingLevel = x$input$headingLevel,
echoPartial = FALSE,
partialFile = NULL,
quiet = TRUE,
...
)
# S3 method for rosettaLogRegr
knit_print(
x,
digits = x$input$digits,
headingLevel = x$input$headingLevel,
pvalueDigits = x$input$pvalueDigits,
echoPartial = FALSE,
partialFile = NULL,
quiet = TRUE,
...
)
# S3 method for rosettaLogRegr
print(
x,
digits = x$input$digits,
pvalueDigits = x$input$pvalueDigits,
headingLevel = x$input$headingLevel,
forceKnitrOutput = FALSE,
...
)
The formula, specified in the same way as for
stats::glm()
(which is used for the actual analysis).
Optionally, a dataset containing the variables in the formula
(if not specified, the variables must exist in the environment specified in
env
.
The confidence level for the confidence intervals.
The number of digits used when printing the results.
Can optionally be used to set the value to predict and the value to compare with.
The number of digits used when printing the p-values.
Whether to show cross tabulations of the correct predictions for the null model and the tested model, as well as the percentage of correct predictions.
Whether to also present the regression coefficients
as odds ratios (i.e. simply after a call to base::exp()
).
Whether to display the plot.
Whether to show collinearity diagnostics.
If no dataframe is specified in data
, use this argument to
specify the environment holding the variables in the formula.
The color of, respectively, the line and confidence interval showing the prediction; the points representing the observed data points; and the means based on the observed data.
The alpha of, respectively, the confidence interval of the prediction; the points representing the observed data points; and the means based on the observed data (set to 0 to hide an element).
The size of, respectively, the line of the prediction; the points representing the observed data points; and the means based on the observed data (set to 0 to hide an element).
Whether to bin the observed means; either FALSE or a single numeric value specifying the number of bins.
The width of the lines of the observed means. If
not specified (i.e. NULL
), this is computed automatically and set to
the length of the shortest interval between two successive points in the
predictor data series (found using ufs::findShortestInterval()
.
The theme used to display the plot.
The number of hashes to print in front of the headings
The object to print (i.e. as produced by rosetta::logRegr
).
Whether to show the executed code in the R Markdown
partial (TRUE
) or not (FALSE
).
This can be used to specify a custom partial file. The
file will have object x
available.
Passed on to knitr::knit()
whether it should b
chatty (FALSE
) or quiet (TRUE
).
Any additional arguments are passed to the default print method
by the print method, and to rmdpartials::partial()
when knitting an
RMarkdown partial.
Force knitr output.
Mainly, this function prints its results, but it also returns them in an object containing three lists:
The arguments specified when calling the function
Intermediat objects and values
The results, such as the plot, the cross tables, and the coefficients.
regr
and fanova
for similar functions
for linear regression and analysis of variance and stats::glm()
for the
regular interface for logistic regression.
### Simplest way to call logRegr
rosetta::logRegr(data=mtcars, formula = vs ~ mpg);
#> Logistic regression analysis
#> Formula: vs ~ mpg
#> Sample size: 32
#> Predicting: 1
#>
#> Significance test of the entire model (all predictors together):
#> Cox & Snell R-squared: .44,
#> Nagelkerke R-squared: .58
#> Test for significance: ChiSq[1] = 18.33, p < .001
#>
#> Predictions by the null model (56.25% correct):
#>
#> Predicted
#> Observed 0
#> 0 18
#> 1 14
#>
#> Predictions by the tested model (81.25% correct):
#>
#> Predicted
#> Observed 0 1
#> 0 15 3
#> 1 3 11
#>
#> Raw regression coefficients (log odds values, called 'B' in SPSS):
#>
#> 95% conf. int. estimate se z p
#> (Intercept) [-16.74; -3.9] -8.83 3.16 -2.79 .005
#> mpg [0.18; 0.82] 0.43 0.16 2.72 .007
#>
#> Regression coefficients as odds ratios (ORs, called 'Exp(B)' in SPSS):
#>
#> OR 95% conf. int. OR point estimate
#> 1 [0; 0.02] 0.00
#> 2 [1.2; 2.28] 1.54
#>
### Also ordering a plot
rosetta::logRegr(
data=mtcars,
formula = vs ~ mpg,
plot=TRUE
);
#> Logistic regression analysis
#> Formula: vs ~ mpg
#> Sample size: 32
#> Predicting: 1
#>
#> Significance test of the entire model (all predictors together):
#> Cox & Snell R-squared: .44,
#> Nagelkerke R-squared: .58
#> Test for significance: ChiSq[1] = 18.33, p < .001
#>
#> Predictions by the null model (56.25% correct):
#>
#> Predicted
#> Observed 0
#> 0 18
#> 1 14
#>
#> Predictions by the tested model (81.25% correct):
#>
#> Predicted
#> Observed 0 1
#> 0 15 3
#> 1 3 11
#>
#> Raw regression coefficients (log odds values, called 'B' in SPSS):
#>
#> 95% conf. int. estimate se z p
#> (Intercept) [-16.74; -3.9] -8.83 3.16 -2.79 .005
#> mpg [0.18; 0.82] 0.43 0.16 2.72 .007
#>
#> Regression coefficients as odds ratios (ORs, called 'Exp(B)' in SPSS):
#>
#> OR 95% conf. int. OR point estimate
#> 1 [0; 0.02] 0.00
#> 2 [1.2; 2.28] 1.54
#>
### Only use five bins
rosetta::logRegr(
data=mtcars,
formula = vs ~ mpg,
plot=TRUE,
binObservedMeans=5
);
#> Logistic regression analysis
#> Formula: vs ~ mpg
#> Sample size: 32
#> Predicting: 1
#>
#> Significance test of the entire model (all predictors together):
#> Cox & Snell R-squared: .44,
#> Nagelkerke R-squared: .58
#> Test for significance: ChiSq[1] = 18.33, p < .001
#>
#> Predictions by the null model (56.25% correct):
#>
#> Predicted
#> Observed 0
#> 0 18
#> 1 14
#>
#> Predictions by the tested model (81.25% correct):
#>
#> Predicted
#> Observed 0 1
#> 0 15 3
#> 1 3 11
#>
#> Raw regression coefficients (log odds values, called 'B' in SPSS):
#>
#> 95% conf. int. estimate se z p
#> (Intercept) [-16.74; -3.9] -8.83 3.16 -2.79 .005
#> mpg [0.18; 0.82] 0.43 0.16 2.72 .007
#>
#> Regression coefficients as odds ratios (ORs, called 'Exp(B)' in SPSS):
#>
#> OR 95% conf. int. OR point estimate
#> 1 [0; 0.02] 0.00
#> 2 [1.2; 2.28] 1.54
#>
if (FALSE) {
### Mimic output that would be obtained
### when calling from an R Markdown file
rosetta::rosettaLogRegr_partial(
rosetta::logRegr(
data=mtcars,
formula = vs ~ mpg,
plot=TRUE
)
);
}