আমি ডেটা সেট করে যা SEM প্রয়োগ করার চেষ্টা করছি তাতে আমার প্রচুর সমস্যা আছে।
আমরা ধরে নিই যে সূচকগুলি সহ 5 টি সুপ্ত কারণের A, B, C, D, E এর অস্তিত্ব রয়েছে। এ 1 থেকে এ 5 (অর্ডারযুক্ত ফ্যাক্টর), বি 1 থেকে বি 3 (পরিমাণগত), সি 1, ডি 1, ই 1 (সব শেষ তিনটি অর্ডারযুক্ত কারণ, ই 1 এর মাত্র 2 মাত্রা রয়েছে। আমরা সমস্ত কারণগুলির মধ্যে সমবায়নে আগ্রহী।
আমি এটি করার জন্য ব্যবহার OpenMx
করার চেষ্টা করেছি। এখানে আমার কয়েকটি প্রচেষ্টা রয়েছে:
আমি প্রথমে সমস্ত আদেশযুক্ত ফ্যাক্টরের জন্য থ্রেশহোল্ড ম্যাট্রিক ব্যবহার করার চেষ্টা করেছি, তবে রূপান্তরটি ব্যর্থ হয়েছে।
hetcor
লাইব্রেরি থেকে ফাংশনটি নিয়েpolycor
(আমি আত্মবিশ্বাসের ব্যবধান পেতে নমুনাটি বুটস্ট্র্যাপ করার পরিকল্পনা নিয়েছিলাম) কাঁচা ডেটার পরিবর্তে পলিচোরিক / পলিসিরিয়াল পারস্পরিক সম্পর্ক ব্যবহার করার সিদ্ধান্ত নিয়েছি । এটি রূপান্তর করতে ব্যর্থ!আমি সম্পূর্ণ ডেটা সহ ব্যক্তিদের মধ্যে সীমাবদ্ধ করার চেষ্টা করেছি, এটিও ব্যর্থ হয়!
আমার প্রথম প্রশ্নটি: এই ব্যর্থতাগুলি ব্যাখ্যা করার কোনও প্রাকৃতিক উপায় আছে?
আমার দ্বিতীয় প্রশ্নটি: আমার কী করা উচিত ???
সম্পাদনা করুন: ভবিষ্যতের পাঠকদের জন্য যারা একই সমস্যাটির মুখোমুখি হতে পারে , এতে ফাংশনগুলির কোডটি ব্যবহার করার পরে polycor
... সমাধানটি কেবল hetcor()
বিকল্পটি ব্যবহার করা std.err=FALSE
। এটি স্টাসকে যেভাবে দিয়েছে তার সাথে মিলে যায় এমন অনুমান দেয়। এখানে কী চলছে তা আরও ভাল করে বুঝতে আমার এখন সময় নেই! নীচের প্রশ্নগুলি বেশ ভাল উত্তর দেওয়া হয়েছে স্টাসক দ্বারা।
আমার অন্যান্য প্রশ্ন আছে, তবে যে কোনও কিছুর আগে, এখানে একটি আরডিটা ফাইলের সাথে একটি url রয়েছে যাতে L1
কেবলমাত্র সম্পূর্ণ ডেটাযুক্ত ডেটা ফ্রেম থাকে : ডেটা_সেম.আরডিটা
এখানে কয়েক লাইন কোডের ব্যর্থতা দেখাচ্ছে 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])
);
এবং একটি শেষ প্রশ্ন। এই মডেলটির সাথে (আসুন এক মুহুর্তের জন্য ভুলে যাই অনুপযুক্ত উপায়ে পারস্পরিক সম্পর্কের গণনা করা হয়), আমি ওপেনএমএক্স চালনা করি:
> 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
বিশাল আকারের পরামিতি সত্ত্বেও ফিটটি খুব খারাপ দেখাচ্ছে। ওটার মানে কি? এর অর্থ কি এই যে আমাদের ম্যানিফেস্ট ভেরিয়েবলের মধ্যে সমবায়িকাগুলি যুক্ত করা উচিত?
আপনার সমস্ত উত্তরের জন্য আগাম অনেক ধন্যবাদ, আমি আস্তে আস্তে উন্মাদ হয়ে যাচ্ছি ...