# ------------------------------------------------------------------------------------- # Kinnitav faktoranalüüs ja struktuurivõrrandid # ------------------------------------------------------------------------------------- install.packages("lavaan", dependencies = TRUE) library(lavaan) ?HolzingerSwineford1939 HS.model.cfa <- ' visual =~ x1 + x2 + x3 textual =~ x4 + x5 + x6 speed =~ x7 + x8 + x9 ' HS_CFA.cfa <- cfa(HS.model1, data=HolzingerSwineford1939) summary(HS_CFA.cfa) # ------------------------------------------------------------------------------------- # Sama paketiga 'sem' # ------------------------------------------------------------------------------------- install.packages("sem", dependencies=TRUE) library(sem) HS.cov.matrix <- cov(HolzingerSwineford1939[,7:15]) HS.cov.matrix HS.model.sem <- specifyModel() visual -> x1, NA, 1 visual -> x2, vis2, NA visual -> x3, vis3, NA textual -> x4, NA, 1 textual -> x5, text2, NA textual -> x6, text3, NA speed -> x7, NA, 1 speed -> x8, speed2, NA speed -> x9, speed3, NA x1 <-> x1, error1, NA x2 <-> x2, error2, NA x3 <-> x3, error3, NA x4 <-> x4, error4, NA x5 <-> x5, error5, NA x6 <-> x6, error6, NA x7 <-> x7, error7, NA x8 <-> x8, error8, NA x9 <-> x9, error9, NA visual <-> visual, NA, 1 textual <-> textual, NA, 1 speed <-> speed, NA, 1 visual <-> textual, vis_text_cov, NA visual <-> speed, vis_speed_cov, NA textual <-> speed, text_speed_cov, NA HS_CFA.sem <- sem (HS.model.sem, HS.cov.matrix, N=nrow(HolzingerSwineford1939)) summary(HS_CFA.sem) # ------------------------------------------------------------------------------------- model <- ' # measurement model ind60 =~ x1 + x2 + x3 dem60 =~ y1 + y2 + y3 + y4 dem65 =~ y5 + y6 + y7 + y8 # regressions dem60 ~ ind60 dem65 ~ ind60 + dem60 # residual correlations y1 ~~ y5 y2 ~~ y4 + y6 y3 ~~ y7 y4 ~~ y8 y6 ~~ y8 ' fit <- sem(model, data=PoliticalDemocracy) summary(fit, standardized=TRUE) # ------------------------------------------------------------------------------------- # PLSR # ------------------------------------------------------------------------------------- install.packages("pls", dependencies=TRUE) library(pls) #bumblebee = read.table("clipboard", sep="\t", dec=".", header=TRUE) bumblebee = read.csv("http://www.eau.ee/~ktanel/mmstatistika_koolitus_EMYs_2013/bumblebee_landscape.csv", sep=",", dec=".", header=TRUE) bee_plsr = plsr(NIBumb ~ PForestR250 + PForestR500 + PForestR1000 + PForestR2000 + PMeadowsR250 + PMeadowsR500 + PMeadowsR1000 + PMeadowsR2000 + PArLandR250 + PArLandR500 + PArLandR1000 + PArLandR2000 + PHumSetR250 + PHumSetR500 + PHumSetR1000 + PHumSetR2000 + PYoungFR250 + PYoungFR500 + PYoungFR1000 + PYoungFR2000, 2, data=bumblebee) summary(bee_plsr) names(bee_plsr) bee_plsr$loadings bee_plsr$Yloadings bee_plsr$loading.weights bee_plsr$coefficients plot(bee_plsr, plottype = "coef", comps = 1:2, labels = "names", main = "Coefficient plot") # ------------------------------------------------------------------------------------- bee_cppls = cppls(NIBumb ~ PForestR250 + PForestR500 + PForestR1000 + PForestR2000 + PMeadowsR250 + PMeadowsR500 + PMeadowsR1000 + PMeadowsR2000 + PArLandR250 + PArLandR500 + PArLandR1000 + PArLandR2000 + PHumSetR250 + PHumSetR500 + PHumSetR1000 + PHumSetR2000 + PYoungFR250 + PYoungFR500 + PYoungFR1000 + PYoungFR2000, 2, data=bumblebee) summary(bee_cppls) bee_cppls$loadings bee_cppls$Yloadings bee_cppls$loading.weights bee_cppls$coefficients # ------------------------------------------------------------------------------------- bee_pcr = pcr(NIBumb ~ PForestR250 + PForestR500 + PForestR1000 + PForestR2000 + PMeadowsR250 + PMeadowsR500 + PMeadowsR1000 + PMeadowsR2000 + PArLandR250 + PArLandR500 + PArLandR1000 + PArLandR2000 + PHumSetR250 + PHumSetR500 + PHumSetR1000 + PHumSetR2000 + PYoungFR250 + PYoungFR500 + PYoungFR1000 + PYoungFR2000, 2, data=bumblebee) summary(bee_pcr) bee_pcr$loadings bee_pcr$Yloadings bee_pcr$loading.weights bee_pcr$coefficients # ------------------------------------------------------------------------------------- # Proov, kas 10-võistluse andmete alusel saab teha ka PCA sarnast VFA-d # Vist veel ei oska ... Moskva2013p = read.csv("http://www.eau.ee/~ktanel/mmstatistika_koolitus_EMYs_2013/Moskva2013p.csv",sep=",",dec=".",header=TRUE,row.names=1) Moskva2013punktid <- scale(Moskva2013p[,c(13:22)]) library(lavaan) Moskva2013.model.cfa <- ' LV =~ NA*P_J_100M + P_KAUGUSHYPE + P_KUULIT6UGE + P_K6RGUSHYPE + P_J_400M + P_TJ_110M + P_KETTAHEIDE + P_TEIVASHYPE + P_ODAVISE + P_J_1500M ' # Moskva2013.model.cfa <- ' # LV1 =~ NA*P_J_100M + P_KAUGUSHYPE + P_KUULIT6UGE + P_K6RGUSHYPE + P_J_400M + P_TJ_110M + P_KETTAHEIDE + P_TEIVASHYPE + P_ODAVISE + P_J_1500M # LV2 =~ NA*P_J_100M + P_KAUGUSHYPE + P_KUULIT6UGE + P_K6RGUSHYPE + P_J_400M + P_TJ_110M + P_KETTAHEIDE + P_TEIVASHYPE + P_ODAVISE + P_J_1500M # LV1 ~~ 0*LV2 # ' Moskva2013.cfa <- cfa(Moskva2013.model.cfa, data=Moskva2013punktid) summary(Moskva2013.cfa)