मुझे एक डेटा सेट के साथ बहुत समस्या है जिसके लिए मैं SEM को लागू करने का प्रयास कर रहा हूं।
हम संकेतक के सम्मान के साथ 5 अव्यक्त कारकों ए, बी, सी, डी, ई के अस्तित्व को मानते हैं। ए 1 से ए 5 (ऑर्डर किए गए कारक), बी 1 से बी 3 (मात्रात्मक), सी 1, डी 1, ई 1 (सभी पिछले तीन ऑर्डर किए गए कारक, ई 1 के लिए केवल 2 स्तरों के साथ। हम सभी कारकों के बीच सहसंबंधों में रुचि रखते हैं।
मैंने ऐसा करने के लिए उपयोग OpenMx
करने की कोशिश की । यहाँ मेरे कुछ प्रयास हैं:
मैंने पहले सभी ऑर्डर किए गए कारकों के लिए थ्रेसहोल्ड मैट्रिस का उपयोग करने की कोशिश की, लेकिन अभिसरण विफल रहा।
मैंने कच्चे डेटा के बजाय पॉलीकोरिक / पॉलीसेरियल सहसंबंधों का उपयोग करने का फैसला किया,
hetcor
पुस्तकालय से समारोह के साथpolycor
(मैंने आत्मविश्वास अंतराल प्राप्त करने के लिए नमूना बूटस्ट्रैप करने की योजना बनाई)। यह भी अभिसरण करने में विफल रहता है!मैंने पूर्ण डेटा वाले व्यक्तियों को प्रतिबंधित करने का प्रयास किया, यह भी विफल है!
मेरा पहला सवाल यह है कि क्या इन विफलताओं की व्याख्या करने का कोई प्राकृतिक तरीका है?
मेरा दूसरा सवाल है: मुझे क्या करना चाहिए ???
संपादित करें: भविष्य के पाठकों के लिए जो एक ही समस्या का सामना कर सकते हैं , कार्यों के कोड में जाने के बाद polycor
... समाधान बस hetcor()
विकल्प के साथ उपयोग करना है std.err=FALSE
। यह उन StasK द्वारा दिए गए अनुमानों के समान है। मुझे यह समझने में समय की कमी है कि यहाँ क्या हो रहा है! नीचे दिए गए सवालों का StasK द्वारा बहुत अच्छी तरह से उत्तर दिया गया है।
मेरे पास अन्य प्रश्न हैं, लेकिन कुछ भी होने से पहले, यहाँ एक RDD फ़ाइल के साथ एक url है L1
जिसमें केवल पूर्ण डेटा वाला डेटा फ़्रेम है : data_sem.RData
यहाँ कोड की कुछ पंक्तियाँ विफलता दिखाती हैं hetcor
।
> require("OpenMx")
> require("polycor")
> load("data_sem.RData")
> hetcor(L1)
Erreur dans cut.default(scale(x), c(-Inf, row.cuts, Inf)) :
'breaks' are not unique
De plus : Il y a eu 11 avis (utilisez warnings() pour les visionner)
> head(L1)
A1 A2 A3 A4 A5 B1 B2 B3 C1 D1 E1
1 4 5 4 5 7 -0.82759 0.01884 -3.34641 4 6 1
4 7 5 0 4 6 -0.18103 0.14364 0.35730 0 1 0
7 7 5 7 6 9 -0.61207 -0.18914 0.13943 0 0 0
10 5 5 10 7 3 -1.47414 0.10204 0.13943 2 0 0
11 7 5 8 9 9 -0.61207 0.06044 -0.73203 0 2 0
12 5 5 9 10 5 0.25000 -0.52192 1.44662 0 0 0
लेकिन मैं अभी भी एक बहुत ही गंदे तरीके से सहसंबंध या सहसंयोजक मैट्रिक्स की गणना कर सकता हूं, मेरे आदेशित कारकों को मात्रात्मक चर के रूप में देखते हुए:
> Cor0 <- cor(data.frame(lapply(L1, as.numeric)))
यहाँ OpenMx
मेरे अगले प्रश्न के साथ कोड का एक टुकड़ा है : निम्नलिखित मॉडल सही है? बहुत अधिक मुक्त पैरामीटर नहीं?
manif <- c("A1","A2","A3","A4","A5", "B1","B2","B3", "C1", "D1", "E1");
model1 <- mxModel(type="RAM",
manifestVars=manif, latentVars=c("A","B","C","D","E"),
# factor variance
mxPath(from=c("A","B","C","D","E"), arrows=2, free=FALSE, values = 1),
# factor covariance
mxPath(from="A", to="B", arrows=2, values=0.5),
mxPath(from="A", to="C", arrows=2, values=0.5),
mxPath(from="A", to="D", arrows=2, values=0.5),
mxPath(from="A", to="E", arrows=2, values=0.5),
mxPath(from="B", to="C", arrows=2, values=0.5),
mxPath(from="B", to="D", arrows=2, values=0.5),
mxPath(from="B", to="E", arrows=2, values=0.5),
mxPath(from="C", to="D", arrows=2, values=0.5),
mxPath(from="C", to="E", arrows=2, values=0.5),
mxPath(from="D", to="E", arrows=2, values=0.5),
# factors → manifest vars
mxPath(from="A", to=c("A1","A2","A3","A4","A5"), free=TRUE, values=1),
mxPath(from="B", to=c("B1","B2","B3"), free=TRUE, values=1),
mxPath(from="C", to=c("C1"), free=TRUE, values=1),
mxPath(from="D", to=c("D1"), free=TRUE, values=1),
mxPath(from="E", to=c("E1"), free=TRUE, values=1),
# error terms
mxPath(from=manif, arrows=2, values=1, free=TRUE),
# data
mxData(Cor0, type="cor",numObs=dim(L1)[1])
);
और एक आखिरी सवाल। इस मॉडल के साथ (चलो एक पल के लिए भूल जाओ जिस तरह से सहसंबंध मैट्रिक्स की गणना की जाती है), मैं OpenMx चलाता हूं:
> mxRun(model1) -> fit1
Running untitled1
> summary(fit1)
सारांश के बीच, यह:
observed statistics: 55
estimated parameters: 32
degrees of freedom: 23
-2 log likelihood: 543.5287
saturated -2 log likelihood: 476.945
number of observations: 62
chi-square: 66.58374
p: 4.048787e-06
मापदंडों की भारी संख्या के बावजूद, फिट बहुत बुरा लगता है। इसका क्या मतलब है? क्या इसका मतलब है कि हमें प्रकट चर के बीच सहसंबंध जोड़ना चाहिए?
आपके सभी उत्तर के लिए अग्रिम धन्यवाद, मैं धीरे-धीरे पागल हो रहा हूँ ...