tests/testthat/test_lmCor.r

#Tests for lmCor  -- does it match the output from lm?
#also a test that the graphics engine works.


mod <- (lm(rating ~ complaints + privileges, data = attitude))
mod1 <- lmCor(rating ~ complaints + privileges, data = attitude, std=FALSE, plot=FALSE) #do not standardize

test_that("lm and lmCor agree)",
     expect_equivalent(mod$coefficients,mod1$coefficients))

z.attitude <- data.frame(scale(attitude))  #standardize the data before doing lm
mod.z<-lm(rating ~ complaints + privileges, data = z.attitude)  #regressions on z scores
mod.z1 <- lmCor(rating ~ complaints + privileges, data = attitude, plot=FALSE)  #by default we standardize and 

test_that("lm and lmCor agree for standardized scores)",
     expect_equivalent(mod.z$coefficients,mod.z1$coefficients))


# the results are the same as the standardized lm


R <- cor(attitude) #find the correlations
#Do the regression on the correlations  
#Note that these match the regressions on the standard scores of the data
mod.r <- lmCor(rating ~ complaints + privileges, data =R, n.obs=30, plot=FALSE)


test_that("lmCor with raw data and  and lmCor for correlation matrices agree",
     expect_equivalent(mod.r$coefficients,mod.z1$coefficients[-1]))   #no intercept


#now, partial out learning and critical
mod.par <- lmCor(rating ~ complaints + privileges - learning - critical, data =R, n.obs=30)
#compare with the full regression:
mod.full <- lmCor(rating ~ complaints + privileges + learning + critical, data =R, n.obs=30)
test_that("lmCor with partial r match lmCor with full R agree",
     expect_equivalent(mod.full$coefficients[1:2],mod.par$coefficients))   #no intercept

Try the psych package in your browser

Any scripts or data that you put into this service are public.

psych documentation built on June 27, 2024, 5:07 p.m.