मैं किस सांख्यिकीय मॉडल का उपयोग इस संभावना का विश्लेषण करने के लिए करूं कि एक एकल घटना अनुदैर्ध्य डेटा को प्रभावित करती है


19

मैं एक सूत्र, विधि, या मॉडल को खोजने की कोशिश कर रहा हूं ताकि संभावना का विश्लेषण किया जा सके कि एक विशिष्ट घटना ने कुछ अनुदैर्ध्य डेटा को प्रभावित किया है। मुझे मुश्किल से पता चल रहा है कि Google पर क्या खोजना है।

यहाँ एक उदाहरण है:

छवि आप एक ऐसे व्यवसाय के मालिक हैं, जिसमें हर दिन औसतन 100 वॉक-इन ग्राहक हैं। एक दिन, आप तय करते हैं कि आप प्रत्येक दिन अपने स्टोर पर आने वाले ग्राहकों की संख्या में वृद्धि करना चाहते हैं, इसलिए आप ध्यान पाने के लिए अपनी दुकान के बाहर एक पागल स्टंट करते हैं। अगले सप्ताह में, आप एक दिन में औसतन 125 ग्राहक देखते हैं।

अगले कुछ महीनों में, आप फिर से निर्णय लेते हैं कि आप कुछ और व्यवसाय प्राप्त करना चाहते हैं, और शायद इसे थोड़ी देर तक बनाए रखना है, इसलिए आप अपने स्टोर में अधिक ग्राहक प्राप्त करने के लिए कुछ अन्य यादृच्छिक चीजों की कोशिश करते हैं। दुर्भाग्य से, आप सबसे अच्छे बाज़ारिया नहीं हैं, और आपकी कुछ रणनीति का बहुत कम या कोई प्रभाव नहीं है, और दूसरों पर भी नकारात्मक प्रभाव पड़ता है।

मैं किस कार्यप्रणाली का उपयोग इस संभावना को निर्धारित करने के लिए कर सकता हूं कि किसी एक व्यक्तिगत घटना ने वॉक-इन ग्राहकों की संख्या को सकारात्मक या नकारात्मक रूप से प्रभावित किया है? मैं पूरी तरह से जानता हूं कि सहसंबंध आवश्यक रूप से समान कार्य नहीं करता है, लेकिन ग्राहक की विशिष्ट घटना के बाद आपके व्यवसाय के दैनिक चलने में संभावित वृद्धि या कमी को निर्धारित करने के लिए मैं किन तरीकों का उपयोग कर सकता हूं?

मुझे इस बात का विश्लेषण करने में कोई दिलचस्पी नहीं है कि वॉक-इन ग्राहकों की संख्या बढ़ाने के आपके प्रयासों के बीच सहसंबंध है या नहीं, बल्कि किसी एक घटना को, जो अन्य सभी से स्वतंत्र है या नहीं, प्रभावकारी था।

मुझे एहसास है कि यह उदाहरण बल्कि आकस्मिक और सरलीकृत है, इसलिए मैं आपको वास्तविक डेटा का संक्षिप्त विवरण भी दूंगा जो मैं हूं:

मैं उस प्रभाव को निर्धारित करने का प्रयास कर रहा हूं जो एक विशेष विपणन एजेंसी के पास अपने ग्राहक की वेबसाइट पर होता है जब वे नई सामग्री प्रकाशित करते हैं, सोशल मीडिया अभियान करते हैं, आदि। किसी एक विशिष्ट एजेंसी के लिए, उनके पास 1 से 500 क्लाइंट तक कहीं भी हो सकते हैं। प्रत्येक ग्राहक में 5 पृष्ठों से लेकर 1 मिलियन से अधिक तक की वेबसाइटें होती हैं। पिछले 5 वर्षों के दौरान, प्रत्येक एजेंसी ने प्रत्येक ग्राहक के लिए अपने सभी कामों की व्याख्या की है, जिसमें काम का प्रकार, किया गया एक वेबसाइट पर वेबपृष्ठों की संख्या, जो प्रभावित हुए थे, खर्च किए गए घंटे की संख्या आदि।

उपरोक्त डेटा का उपयोग करना, जिसे मैंने एक डेटा वेयरहाउस में इकट्ठा किया है (स्टार / स्नोफ्लेक स्कीमा के एक समूह में रखा गया है), मुझे यह निर्धारित करने की आवश्यकता है कि यह कितना संभव था कि किसी एक काम का एक टुकड़ा (समय में किसी एक घटना) पर प्रभाव पड़ा। किसी विशिष्ट कार्य से प्रभावित किसी भी / सभी पृष्ठों को टकराने वाला ट्रैफ़िक। मैंने 40 अलग-अलग प्रकार की सामग्री के लिए मॉडल बनाए हैं जो एक वेबसाइट पर पाए जाते हैं जो विशिष्ट ट्रैफ़िक पैटर्न का वर्णन करता है एक पृष्ठ जिसमें वर्तमान समय तक लॉन्च तिथि से सामग्री प्रकार का अनुभव हो सकता है। उपयुक्त मॉडल के सापेक्ष सामान्यीकृत, मुझे काम के एक विशिष्ट टुकड़े के परिणाम के रूप में प्राप्त एक विशिष्ट पृष्ठ पर बढ़ी हुई या कम आगंतुकों की उच्चतम और निम्नतम संख्या निर्धारित करने की आवश्यकता है।

जबकि मेरे पास बुनियादी डेटा विश्लेषण (रैखिक और कई प्रतिगमन, सहसंबंध, आदि) के साथ अनुभव है, मैं इस समस्या को हल करने के तरीके के लिए एक नुकसान में हूं। जबकि अतीत में मैंने आम तौर पर किसी दिए गए अक्ष के लिए कई मापों के साथ डेटा का विश्लेषण किया है (उदाहरण के लिए तापमान बनाम प्यास बनाम जानवर और प्यास पर प्रभाव को निर्धारित किया है कि जानवरों में वृद्धि हुई है), मुझे लगता है कि ऊपर, मैं प्रभाव का विश्लेषण करने का प्रयास कर रहा हूं एक गैर-रेखीय, लेकिन अनुमानित (या कम से कम मॉडल-सक्षम), अनुदैर्ध्य डेटासेट के लिए कुछ समय में एक ही घटना। मैं स्तब्ध हूं :(

कोई भी मदद, टिप्स, पॉइंटर्स, सिफारिशें, या निर्देश बेहद मददगार होंगे और मैं सदा आभारी रहूंगा!


अनुदैर्ध्य डेटा मॉडलिंग के लिए समर्पित सांख्यिकीय विश्लेषण का एक पूरा वर्ग है। यदि आपने एक ही विषय पर उपायों को दोहराया था, तो मिश्रित मॉडल अक्सर सामाजिक विज्ञान में कला की स्थिति के रूप में उपयोग किया जाता है ताकि यह निर्धारित किया जा सके कि क्या कोई हस्तक्षेप का प्रभाव है। यदि आपके पास एक समय श्रृंखला है तो केवल एक अरिमा की तरह कुछ का उपयोग किया जा सकता है।
B_Miner

RDD दृष्टिकोण आपके लिए भी उपयोगी हो सकता है: austinclemens.com/blog/2014/06/08/436
B_Miner

जवाबों:


11

रिकॉर्ड के लिए, मुझे लगता है कि यह एक प्रकार का प्रश्न है जो डेटा विज्ञान स्टैक एक्सचेंज के लिए एकदम सही है। मुझे आशा है कि हमें डेटा की समस्याओं और उन्हें हल करने के लिए सर्वोत्तम दृष्टिकोण पर वास्तविक दुनिया उदाहरणों का एक समूह मिलेगा।

मैं आपको पी-मान का उपयोग करने के लिए प्रोत्साहित करूंगा क्योंकि वे बहुत भ्रामक ( 1 , 2 ) हो सकते हैं। मेरा दृष्टिकोण कुछ हस्तक्षेप से पहले और बाद में किसी दिए गए पृष्ठ पर ट्रैफ़िक को संक्षेप में प्रस्तुत करने में सक्षम होने पर टिका है। आप जो परवाह करते हैं, वह हस्तक्षेप के पहले और बाद की दर में अंतर है । यही है, प्रति दिन हिट की संख्या कैसे बदलती है? नीचे, मैं कुछ सिम्युलेटेड उदाहरण डेटा के साथ पहले स्टैब दृष्टिकोण की व्याख्या करता हूं। मैं तब एक संभावित नुकसान के बारे में बताऊंगा (और मैं इसके बारे में क्या करूंगा)।

पहले, चलो एक हस्तक्षेप से पहले और बाद में एक पृष्ठ के बारे में सोचते हैं। हस्तक्षेप को बढ़ाकर प्रति दिन लगभग 15% हिट बढ़ाता है:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

def simulate_data(true_diff=0):
    #First choose a number of days between [1, 1000] before the intervention
    num_before = np.random.randint(1, 1001)

    #Next choose a number of days between [1, 1000] after the intervention
    num_after = np.random.randint(1, 1001)

    #Next choose a rate for before the intervention. How many views per day on average?
    rate_before = np.random.randint(50, 151)

    #The intervention causes a `true_diff` increase on average (but is also random)
    rate_after = np.random.normal(1 + true_diff, .1) * rate_before

    #Simulate viewers per day:
    vpd_before = np.random.poisson(rate_before, size=num_before)
    vpd_after = np.random.poisson(rate_after, size=num_after)

    return vpd_before, vpd_after

vpd_before, vpd_after = simulate_data(.15)

plt.hist(vpd_before, histtype="step", bins=20, normed=True, lw=2)
plt.hist(vpd_after, histtype="step", bins=20, normed=True, lw=2)
plt.legend(("before", "after"))
plt.title("Views per day before and after intervention")
plt.xlabel("Views per day")
plt.ylabel("Frequency")
plt.show()

हस्तक्षेप से पहले और बाद में प्रति दिन हिट का वितरण

हम स्पष्ट रूप से देख सकते हैं कि हस्तक्षेप ने औसतन प्रति दिन हिट की संख्या में वृद्धि की। लेकिन दरों में अंतर को निर्धारित करने के लिए, हमें कई पृष्ठों के लिए एक कंपनी के हस्तक्षेप का उपयोग करना चाहिए। चूंकि प्रत्येक पृष्ठ के लिए अंतर्निहित दर भिन्न होगी, इसलिए हमें दर में प्रतिशत परिवर्तन (फिर से, प्रति दिन यहां हिट्स) की गणना करनी चाहिए।

अब, आइए दिखाते हैं कि हमारे पास n = 100पृष्ठों के लिए डेटा है , जिनमें से प्रत्येक को एक ही कंपनी से हस्तक्षेप मिला। हमारे द्वारा लिया जाने वाला प्रतिशत अंतर (मतलब प्रति दिन पहले हिट) - माध्य (प्रति दिन हिट्स के बाद) / माध्य (पहले प्रति हिट हिट):

n = 100

pct_diff = np.zeros(n)

for i in xrange(n):
    vpd_before, vpd_after = simulate_data(.15)
    # % difference. Note: this is the thing we want to infer
    pct_diff[i] = (vpd_after.mean() - vpd_before.mean()) / vpd_before.mean()

plt.hist(pct_diff)
plt.title("Distribution of percent change")
plt.xlabel("Percent change")
plt.ylabel("Frequency")
plt.show()

प्रतिशत परिवर्तन का वितरण

अब हमारे पास हमारे हित के पैरामीटर का वितरण है! हम इस परिणाम को विभिन्न तरीकों से क्वेरी कर सकते हैं। उदाहरण के लिए, हम इस प्रतिशत परिवर्तन के लिए सबसे अधिक संभावना मान के मोड, या (सन्निकटन) को जानना चाह सकते हैं:

def mode_continuous(x, num_bins=None):
    if num_bins is None:
        counts, bins = np.histogram(x)
    else:
        counts, bins = np.histogram(x, bins=num_bins)

    ndx = np.argmax(counts)
    return bins[ndx:(ndx+1)].mean()

mode_continuous(pct_diff, 20)

जब मैंने इसे चलाया तो मुझे 0.126 मिला, जो बुरा नहीं है, हमारे सही प्रतिशत में बदलाव पर विचार 15. 15. हम सकारात्मक परिवर्तनों की संख्या भी देख सकते हैं, जो इस संभावना को अनुमान लगाता है कि किसी कंपनी के हस्तक्षेप से प्रति दिन हिट में सुधार होता है:

(pct_diff > 0).mean()

यहां, मेरा परिणाम 0.93 है, इसलिए हम कह सकते हैं कि यह एक अच्छा मौका है कि यह कंपनी प्रभावी है।

अंत में, एक संभावित नुकसान: प्रत्येक पृष्ठ में शायद कुछ अंतर्निहित प्रवृत्ति होती है जिसे आपको संभवतः हिसाब देना चाहिए। अर्थात्, हस्तक्षेप के बिना भी, प्रति दिन हिट बढ़ सकता है। इसका हिसाब लगाने के लिए, मैं एक साधारण रेखीय प्रतिगमन का अनुमान लगाता हूं, जहां परिणाम चर प्रति दिन हिट होता है और स्वतंत्र चर दिन (दिन = 0 पर शुरू होता है और आपके नमूने में सभी दिनों के लिए वृद्धि) होता है। फिर प्रतिदिन प्रत्येक हिट से लेकर आपके डेटा को डी-ट्रेंड करने के लिए अनुमान, y_hat को घटाएं। फिर आप उपरोक्त प्रक्रिया कर सकते हैं और आश्वस्त रह सकते हैं कि एक सकारात्मक प्रतिशत अंतर अंतर्निहित प्रवृत्ति के कारण नहीं है। बेशक, प्रवृत्ति रैखिक नहीं हो सकती है, इसलिए विवेक का उपयोग करें! सौभाग्य!


इतनी गहन व्याख्या के लिए बहुत-बहुत धन्यवाद! मैं वास्तव में इसकी प्रशंसा करता हूँ। अपने और neone4373 के बीच मैं समस्या को हल करने में सक्षम था! यह समुदाय चट्टानों! धन्यवाद!
पीटर किर्बी

10

मेरे डेटा विश्लेषक दिनों में इस प्रकार की समस्या काफ़ी सामान्य थी। मूल रूप से, विपणन में हर कोई एक पागल विचार के साथ आएगा, जो कि एक ही घटना के रूप में उच्च अप को बेचा जाता है जो कि केपीआई को 2000% बढ़ा देगा। उच्च उतार उन्हें मंजूर होगा और फिर वे अपना "परीक्षण" शुरू करेंगे। परिणाम वापस आ जाएंगे, और प्रबंधन डेटा विश्लेषकों पर यह निर्धारित करने के लिए डंप करेगा कि क्या काम किया और किसने किया।

संक्षिप्त उत्तर यह है कि क्या आप वास्तव में जानते हैं कि यह समय अवधि की तरह यादृच्छिक A / B शैली परीक्षण के रूप में नहीं चलाया गया था। लेकिन मुझे इस बात की बहुत जानकारी है कि वह उत्तर कितना कमी वाला है, खासकर अगर यह तथ्य कि शुद्ध जवाब मौजूद नहीं है, भविष्य के व्यावसायिक निर्णयों की तात्कालिकता के लिए अप्रासंगिक है। इस तकनीक का उपयोग मैं इस स्थिति में विश्लेषण को उबारने के लिए करूंगा, ध्यान रहे यह एक कला है और फिर विज्ञान।

हैंडल

एक हैंडल कुछ ऐसा है जो उस डेटा में मौजूद है जिसे आप पकड़ सकते हैं। आप अपनी स्थिति में मुझे जो बता रहे हैं उससे आपको बहुत जानकारी है कि विपणन एजेंसी कौन है, जब उन्होंने एक रणनीति की कोशिश की, और उन्होंने इसे किस साइट पर लागू किया। ये आपके शुरुआती बिंदु हैं और इस तरह की जानकारी आपके विश्लेषण के कोने का पत्थर बनने जा रही है।

क्रियाविधि

कार्यप्रणाली संभवतः सबसे मजबूत प्रभाव रखने वाली है, जिस पर एजेंसियों को किसी भी और सभी लाभ के लिए क्रेडिट दिया जाता है, इसलिए आपको यह सुनिश्चित करने की आवश्यकता है कि यह स्पष्ट रूप से रूपरेखा है और सभी हितधारक सहमत हैं कि यह समझ में आता है। यदि आप ऐसा नहीं करते हैं कि लोगों को आपके विश्लेषण पर भरोसा करना मुश्किल हो रहा है।

इसका एक उदाहरण रूपांतरण हैं। कहते हैं कि विपणन विभाग कुछ लीड खरीदता है और वे हमारे लैंडिंग पृष्ठ पर पहुंचते हैं, हम उन्हें 3 दिनों के लिए ट्रैक करेंगे, यदि उन्होंने उस समय के भीतर खरीदारी की तो हम उन्हें रूपांतरित होने के रूप में गिनेंगे। 3 दिन क्यों, 5 या 1 क्यों नहीं? जब तक हर कोई इससे सहमत नहीं हो जाता है, आपके पास अब एक परिभाषा है जिसे आप बंद कर सकते हैं।

तुलना

एक आदर्श में आपके पास एक निश्चित संबंध साबित करने के लिए एक अच्छा ए / बी परीक्षण होगा, मैं यह मानने जा रहा हूं कि आप उन पर कम चल रहे हैं, फिर भी, आप डेटा की एक साधारण तुलना से कुछ सीख सकते हैं। जब कंपनियां रेडियो विज्ञापन की प्रभावकारिता निर्धारित करने की कोशिश कर रही हैं, तो वे अक्सर एक ही बाजार में, या एक बाजार में कई महीनों तक ऑफसेट महीनों पर विज्ञापन चलाएंगे और एक अलग लेकिन समान बाजार में परिणामों के साथ तुलना करेंगे। इसका विज्ञान के लिए पास नहीं है, लेकिन यहां तक ​​कि सभी शोर के साथ एक मजबूत परिणाम लगभग हमेशा ध्यान देने योग्य होगा।

मैं आपके मामले में यह निर्धारित करने के लिए संयोजन करूंगा कि किसी घटना को दर्ज करने के लिए कितनी देर दी जाती है। एक बार जब आपके पास उस समय की अवधि का डेटा हो जाता है, तो इसे अपने मॉडलिंग किए गए ट्रैफिक पूर्वानुमान, सप्ताह में वृद्धि, महीने से अधिक महीने आदि के खिलाफ चलाएं, जो तब एजेंसियों और समय अवधि के बीच एक सार्थक तुलना की अनुमति दे सकता है।

व्यवहारवाद

आकांक्षा कारण और प्रभाव की गहरी समझ प्रदान करने में सक्षम है, लेकिन यह शायद यथार्थवादी नहीं है। बाहर के कारक आपके विश्लेषण को कितना गन्दा करते हैं, इस कारण से आप बार-बार सवाल के खिलाफ दौड़ते जा रहे हैं: क्या इस घटना ने वॉल्यूम बढ़ाया / बिक्री / क्लिक थ्रू बढ़ा, या कुछ भी करने का समान प्रभाव पड़ा? इसके लिए जो सबसे अच्छी सलाह मैं आपको दे सकता हूं, वह है जो आप मापना चाह रहे हैं उसके लिए बहुत यथार्थवादी लक्ष्य निर्धारित किए गए हैं। एक अच्छा प्रारंभिक बिंदु है, आपके पास जो कार्यप्रणाली है, उस घटना का सबसे बड़ा प्रभाव था। एक बार जब आप उन लोगों को वहाँ से अपना एपर्चर खोलते हैं।

सारांश

एक बार जब आप इन सभी पहलुओं को समझ लेते हैं, तो आप एक सामान्य समाधान के निर्माण के बारे में जा सकते हैं, जिसे बाद में स्वचालित किया जा सकता है। इस तरह से अपने समाधान को डिजाइन करने का लाभ यह है कि व्यापारिक तर्क पहले से ही निर्मित है। यह आपके परिणामों को गैर-तकनीकी व्यावसायिक नेताओं के लिए बहुत अधिक स्वीकार्य और सहज बना देगा।


@ 1 पागल मार्केटिंग करने वालों के लिए। बाजार अनुसंधान में काम करना और खराब आँकड़ों के लिए किया गया ट्विस्ट मुझे दुखी करता है ...
क्रिश्चियन सॉयर

2

संपादित करें: चेतावनी, मैं अपना संदेश छोड़ देता हूं लेकिन मेरा उत्तर गलत लगता है, कृपया नीचे टिप्पणी देखें!

मैं एक विशेषज्ञ नहीं हूँ लेकिन मुझे लगता है कि मुख्य समस्या इस प्रश्न का उत्तर देना है:

क्या किसी निश्चित दिन पर हिट की संख्या प्रभावित हुई है?

लेकिन मुझे नहीं पता कि मैं कई घटनाओं का इलाज कैसे करूं, इसलिए मैं इस सवाल का जवाब देने की कोशिश करूंगा:

  • क्या इवेंट X ने किसी निश्चित दिन हिट की संख्या को प्रभावित किया है?

जिसका उत्तर पी-मूल्यों के साथ परिकल्पना परीक्षण का उपयोग करके दिया जा सकता है (उदाहरण के लिए अगर कोई दवा किसी बीमारी को प्रभावित करती है या नहीं तो वैज्ञानिक इसका क्या मूल्यांकन करते हैं)।

पी-मूल्यों का उपयोग करके, आप यह निर्धारित कर सकते हैं कि एक निश्चित दिन में हिट की संख्या सामान्य परिस्थितियों में यादृच्छिक और स्वीकार्य थी या कि उन्हें आपके मॉडल में बदलाव के अनुरूप होना चाहिए।

आप ओपन इंट्रो में सांख्यिकी पुस्तक में पी-मान के बारे में अधिक पढ़ सकते हैं , मैंने वास्तव में उनके बारे में वहां से सीखा है।

फिर, समस्या के अन्य भाग हैं कि आप अपनी घटनाओं को कैसे पहचानें और अपने प्रश्न (औसत / औसत, विचरण, आदि) का उत्तर देने के लिए आवश्यक मापदंडों की गणना करें और यह भी कि अप-टू-डेट और काम कैसे करें।


1

कुछ साल पहले (2015), Google ने एक समय-श्रृंखला मॉडल में एक विशिष्ट घटना के प्रभाव के बारे में एक शोध पत्र प्रकाशित किया था। आप यहां अधिक विवरण पढ़ सकते हैं बायेसियन संरचनात्मक समय-श्रृंखला मॉडल का उपयोग कर कारण प्रभाव का उल्लेख करते हैं

इस GitHub पृष्ठ में , आप एक विस्तृत उदाहरण और वर्णन कर सकते हैं कि यह कैसे काम करता है। संक्षेप में,

यह आर पैकेज एक समय श्रृंखला पर एक डिज़ाइन किए गए हस्तक्षेप के कारण प्रभाव का आकलन करने के लिए एक दृष्टिकोण को लागू करता है। उदाहरण के लिए, एक विज्ञापन अभियान द्वारा कितने अतिरिक्त दैनिक क्लिक उत्पन्न किए गए? एक यादृच्छिक प्रयोग उपलब्ध नहीं होने पर इस तरह के प्रश्न का उत्तर देना मुश्किल हो सकता है।

आप अपने मॉडल को प्री-इवेंट डेटा और आफ्टर-इवेंट डेटा के साथ प्रशिक्षित करते हैं और आपको इस तरह का प्लॉट मिलता है

यहाँ छवि विवरण दर्ज करें

पहला पैनल उपचार के बाद की अवधि के लिए डेटा और एक सटीक भविष्यवाणी दिखाता है। दूसरा पैनल अवलोकन किए गए डेटा और जवाबी भविष्यवाणियों के बीच अंतर को दर्शाता है। यह पॉइंटवाइज कारण प्रभाव है, जैसा कि मॉडल द्वारा अनुमान लगाया गया है। तीसरा पैनल दूसरे पैनल से बिंदुवार योगदान को जोड़ता है, जिसके परिणामस्वरूप हस्तक्षेप का संचयी प्रभाव होता है।

निम्नलिखित को चलाना summary(impact), आपको एक सारांश मिलता है और अनुमानित प्रभाव जो आपके समय-श्रृंखला डेटा में घटना का था।

उसी पुस्तकालय को पाइथन के रूप में भी चित्रित किया गया है। उदाहरण के लिए यहाँ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.