में एक वेबुल लिंक फ़ंक्शन के साथ मॉडलिंग डेटा मैं सिग्मोइड वक्र संबंधों का पालन करने वाले कुछ डेटा को मॉडल करने की कोशिश कर रहा हूं। मेरे काम के क्षेत्र (मनोविज्ञान) में, एक वेबुल फ़ंक्शन आमतौर पर प्रोबिट के बजाय ऐसे रिश्तों को मॉडल करने के लिए उपयोग किया जाता है।आर
मैं आर का उपयोग कर एक मॉडल बनाने की कोशिश कर रहा हूं और वाक्यविन्यास के साथ संघर्ष कर रहा हूं। मुझे पता है कि मुझे फ़ंक्शन को VGAM
पैकेज से उपयोग करने की आवश्यकता है, लेकिन मैं एक समझदार मॉडल प्राप्त करने में असमर्थ हूं।
# Data frame example data
dframe1 <- structure(list(independent_variable = c(0.3, 0.24, 0.23, 0.16,
0.14, 0.05, 0.01, -0.1, -0.2), dependent_variable = c(1, 1,
1, 0.95, 0.93, 0.65, 0.55, 0.5, 0.5)), .Names = c("independent_variable",
"dependent_variable"), class = "data.frame", row.names = c(NA,
-9L))
यहाँ dframe1 में डेटा की एक साजिश है::
library(ggplot2)
# Plot my original data
ggplot(dframe1, aes(independent_variable, dependent_variable)) + geom_point()
यह एक वेइबुल समारोह द्वारा तैयार किया जा पाएंगे, क्योंकि डेटा एक फिट चाहिए यहाँ मेरी डेटा है सिग्मोइड वक्र संबंध।
library(VGAM)
# Generate model
my_model <- vglm(formula = dependent_variable ~ independent_variable, family = weibull, data = dframe1)
# Create a new dataframe based on the model, so that it can be plotted
model_dframe <- data.frame(dframe1$independent_variable, fitted(my_model))
# Plot my model fitted data
ggplot(model_dframe, aes(dframe1.independent_variable, fitted.my_model.)) + geom_point()
आप देख सकते हैं, यह मेरा मूल डेटा सब पर प्रतिनिधित्व नहीं करता है: यहाँ डेटा मॉडल और एक प्रतिनिधि साजिश उत्पन्न करने के लिए मेरे प्रयास है। मैं या तो अपना मॉडल गलत तरीके से उत्पन्न कर रहा हूं, या मैं मॉडल की अपनी साजिश गलत तरीके से उत्पन्न कर रहा हूं। मैं क्या गलत कर रहा हूं?
नोट: मैंने इसे और अधिक समझने योग्य बनाने के लिए इस प्रश्न को संपादित किया है; पहले मैं पूरी तरह से गलत फ़ंक्शन का उपयोग कर रहा था (weibreg()
)। इसलिए, नीचे दी गई कुछ टिप्पणियां समझ में नहीं आ सकती हैं। .....
मैं मूल रूप से '()' weibreg करने के लिए आप इशारा किया, लेकिन ऐसा लगता है जैसे यह एक रेड हेरिंग था। मैं बहुत शर्मिंदा हूं। 'Weibreg()' स्पष्ट रूप से केवल जीवित मॉडल * के लिए वेबुल रिग्रेशन * को नियंत्रित करता है * (जिसे आमतौर पर वेबुल के साथ मॉडलिंग किया जाता है) - लेकिन मनोविज्ञान में अद्वितीय होना प्रतीत होता है कि वे एक वीबुल * लिंक फ़ंक्शन के साथ गैर-उत्तरजीविता डेटा मॉडल करते हैं * जहां हर कोई होगा एक लॉगिट या प्रोबिट का उपयोग करें। हालांकि, ऐसा लगता है कि 'VGAM' पैकेज में 'vglm()' फ़ंक्शन काम कर सकता है: http://rss.acs.unt.edu/Rdoc/library/VGAM/html/weibull.html यदि आप आउटपुट जोड़ सकते हैं आपकी पोस्ट में 'ड्यूटी (डीफ्रेम)' का, मैं और अधिक मदद करने की कोशिश करूंगा। –
धन्यवाद स्टीफन, यह मेरे लिए एक सीखने का अनुभव है! मैंने अपने प्रश्न में 'dput()' जोड़ा है। फ़ंक्शन को चलाने के तरीके पर कोई सलाह की सराहना की जाएगी। – CaptainProg
अच्छा, मुझे यकीन है कि आपके पास तीन से अधिक अवलोकन हैं! मुझे लगता है कि आपका 'पी' मान कई अवलोकनों से आता है, इसलिए मेरा सुझाव है कि आप उन्हें डेटा फ्रेम में डाल दें। फिर मैं 'मॉडल <- vglm (पी ~ आकार, परिवार = Weibull, डेटा = dframe)' का उपयोग कर मॉडल फिट होगा (आपको 'vglm()' निर्भर होना चाहिए और स्वतंत्र चर क्या है) और परीक्षण की आवश्यकता होगी 'सारांश (मॉडल)' के साथ परिणाम। आपके चेतावनी संदेश का अर्थ है कि एमएल अनुमान एक अवैध आकार पैरामीटर उत्पन्न करता है; यह अधिक डेटा के साथ गायब हो सकता है। लेकिन मैं निश्चित रूप से यह नहीं कहूंगा कि मैं 'vglm' गहराई से समझता हूं; शायद कोई और मदद कर सकता है? –