I am currently working on a huge data set and would like to compute the variance for a combination of my parameter estimates. I would like to read in data from the vcov matrix into a data set and then compute the variance. I am using tidyverse and in particular I am using mutate to try and read in the variance covariance components. I have created a toy data set due to the confidentiality issues for my data.
library(MASS)
library(tidyverse)
mod <- lm(Gas ~ Temp +Insul+0, whiteside)
#model summary
summary(mod)
#variance covariance matrix
vcov(mod)
# Now I want to read in the variance covariance matrix: To obtain the variance
# of say a linear combination of some parameters: Beta_Temp + Beta_InsulBefore
# Now I have a bew dataset: data2 where I want to use Covariate1:Covariate3 as
# indices to obtain my covariances.
data2 <- as.data.frame(cbind(Covariate1=c("Temp","InsulBefore","InsulAfter"),
Covariate2=c("InsulBefore","InsulAfter","Temp"),
Covariate3=c("InsulAfter","Temp","InsulBefore")))
# I get the variances
data3<- data2 |> mutate(Variances=diag(vcov(mod))[Covariate1])
# I have issues trying to get the covariances
data4<- data3 |> mutate(Cov12=(vcov(mod)[Covariate1,Covariate2]))
## Cov12 is a matrix but I want it to be a column with only values from the
## covariance of Temp:InsulBefore, InsulBefore:InsulAfter and InsulAfter:Temp.
## This is just a toy data as I can't share the real data for confidentiality
## reasons.