इन्फ्लूएंजा डेटा का प्रक्षेप जो साप्ताहिक माध्य का संरक्षण करता है


13

संपादित करें

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

मूल

प्रत्येक सप्ताह के लिए, मेरे पास निम्न गणना डेटा (प्रति सप्ताह एक मान) है:

  • डॉक्टरों के परामर्श की संख्या
  • इन्फ्लूएंजा के मामलों की संख्या

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

मैं इस मामले में सलाह के लिए आभारी रहूंगा।

बहुत बहुत धन्यवाद।

वर्ष 1995 के लिए एक नमूना डेटा सेट ( अद्यतन ):

structure(list(daily.ts = structure(c(9131, 9132, 9133, 9134, 
9135, 9136, 9137, 9138, 9139, 9140, 9141, 9142, 9143, 9144, 9145, 
9146, 9147, 9148, 9149, 9150, 9151, 9152, 9153, 9154, 9155, 9156, 
9157, 9158, 9159, 9160, 9161, 9162, 9163, 9164, 9165, 9166, 9167, 
9168, 9169, 9170, 9171, 9172, 9173, 9174, 9175, 9176, 9177, 9178, 
9179, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9188, 9189, 
9190, 9191, 9192, 9193, 9194, 9195, 9196, 9197, 9198, 9199, 9200, 
9201, 9202, 9203, 9204, 9205, 9206, 9207, 9208, 9209, 9210, 9211, 
9212, 9213, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 
9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 
9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 
9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255, 
9256, 9257, 9258, 9259, 9260, 9261, 9262, 9263, 9264, 9265, 9266, 
9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 9277, 
9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287, 9288, 
9289, 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 
9300, 9301, 9302, 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, 
9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 
9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 
9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 
9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 
9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 
9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 
9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 
9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 
9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 
9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 
9421, 9422, 9423, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 
9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 
9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 
9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 
9465, 9466, 9467, 9468, 9469, 9470, 9471, 9472, 9473, 9474, 9475, 
9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 
9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495), class = "Date"), 
    wdayno = c(0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 
    5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 
    6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 
    0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 
    1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 
    2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 
    3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 
    4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 
    5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 
    6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 
    0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 
    1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 
    2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 
    3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 
    4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 
    5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 
    6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 
    0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 
    1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 
    2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 
    3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 
    4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 
    5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 
    6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 
    0L, 1L, 2L, 3L, 4L, 5L, 6L, 0L), month = c(1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
    4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 
    8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
    8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
    9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 
    9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 
    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 
    10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 
    11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 
    11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 
    12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 
    12, 12, 12, 12), year = c(1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 
    1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995), yearday = 0:364, 
    no.influ.cases = c(NA, NA, NA, 168L, NA, NA, NA, NA, NA, 
    NA, 199L, NA, NA, NA, NA, NA, NA, 214L, NA, NA, NA, NA, NA, 
    NA, 230L, NA, NA, NA, NA, NA, NA, 267L, NA, NA, NA, NA, NA, 
    NA, 373L, NA, NA, NA, NA, NA, NA, 387L, NA, NA, NA, NA, NA, 
    NA, 443L, NA, NA, NA, NA, NA, NA, 579L, NA, NA, NA, NA, NA, 
    NA, 821L, NA, NA, NA, NA, NA, NA, 1229L, NA, NA, NA, NA, 
    NA, NA, 1014L, NA, NA, NA, NA, NA, NA, 831L, NA, NA, NA, 
    NA, NA, NA, 648L, NA, NA, NA, NA, NA, NA, 257L, NA, NA, NA, 
    NA, NA, NA, 203L, NA, NA, NA, NA, NA, NA, 137L, NA, NA, NA, 
    NA, NA, NA, 78L, NA, NA, NA, NA, NA, NA, 82L, NA, NA, NA, 
    NA, NA, NA, 69L, NA, NA, NA, NA, NA, NA, 45L, NA, NA, NA, 
    NA, NA, NA, 51L, NA, NA, NA, NA, NA, NA, 45L, NA, NA, NA, 
    NA, NA, NA, 63L, NA, NA, NA, NA, NA, NA, 55L, NA, NA, NA, 
    NA, NA, NA, 54L, NA, NA, NA, NA, NA, NA, 52L, NA, NA, NA, 
    NA, NA, NA, 27L, NA, NA, NA, NA, NA, NA, 24L, NA, NA, NA, 
    NA, NA, NA, 12L, NA, NA, NA, NA, NA, NA, 10L, NA, NA, NA, 
    NA, NA, NA, 22L, NA, NA, NA, NA, NA, NA, 42L, NA, NA, NA, 
    NA, NA, NA, 32L, NA, NA, NA, NA, NA, NA, 52L, NA, NA, NA, 
    NA, NA, NA, 82L, NA, NA, NA, NA, NA, NA, 95L, NA, NA, NA, 
    NA, NA, NA, 91L, NA, NA, NA, NA, NA, NA, 104L, NA, NA, NA, 
    NA, NA, NA, 143L, NA, NA, NA, NA, NA, NA, 114L, NA, NA, NA, 
    NA, NA, NA, 100L, NA, NA, NA, NA, NA, NA, 83L, NA, NA, NA, 
    NA, NA, NA, 113L, NA, NA, NA, NA, NA, NA, 145L, NA, NA, NA, 
    NA, NA, NA, 175L, NA, NA, NA, NA, NA, NA, 222L, NA, NA, NA, 
    NA, NA, NA, 258L, NA, NA, NA, NA, NA, NA, 384L, NA, NA, NA, 
    NA, NA, NA, 755L, NA, NA, NA, NA, NA, NA, 976L, NA, NA, NA, 
    NA, NA, NA, 879L, NA, NA, NA, NA), no.consultations = c(NA, 
    NA, NA, 15093L, NA, NA, NA, NA, NA, NA, 20336L, NA, NA, NA, 
    NA, NA, NA, 20777L, NA, NA, NA, NA, NA, NA, 21108L, NA, NA, 
    NA, NA, NA, NA, 20967L, NA, NA, NA, NA, NA, NA, 20753L, NA, 
    NA, NA, NA, NA, NA, 18782L, NA, NA, NA, NA, NA, NA, 19778L, 
    NA, NA, NA, NA, NA, NA, 19223L, NA, NA, NA, NA, NA, NA, 21188L, 
    NA, NA, NA, NA, NA, NA, 22172L, NA, NA, NA, NA, NA, NA, 21965L, 
    NA, NA, NA, NA, NA, NA, 21768L, NA, NA, NA, NA, NA, NA, 21277L, 
    NA, NA, NA, NA, NA, NA, 16383L, NA, NA, NA, NA, NA, NA, 15337L, 
    NA, NA, NA, NA, NA, NA, 19179L, NA, NA, NA, NA, NA, NA, 18705L, 
    NA, NA, NA, NA, NA, NA, 19623L, NA, NA, NA, NA, NA, NA, 19363L, 
    NA, NA, NA, NA, NA, NA, 16257L, NA, NA, NA, NA, NA, NA, 19219L, 
    NA, NA, NA, NA, NA, NA, 17048L, NA, NA, NA, NA, NA, NA, 19231L, 
    NA, NA, NA, NA, NA, NA, 20023L, NA, NA, NA, NA, NA, NA, 19331L, 
    NA, NA, NA, NA, NA, NA, 18995L, NA, NA, NA, NA, NA, NA, 16571L, 
    NA, NA, NA, NA, NA, NA, 15010L, NA, NA, NA, NA, NA, NA, 13714L, 
    NA, NA, NA, NA, NA, NA, 10451L, NA, NA, NA, NA, NA, NA, 14216L, 
    NA, NA, NA, NA, NA, NA, 16800L, NA, NA, NA, NA, NA, NA, 18305L, 
    NA, NA, NA, NA, NA, NA, 18911L, NA, NA, NA, NA, NA, NA, 17812L, 
    NA, NA, NA, NA, NA, NA, 18665L, NA, NA, NA, NA, NA, NA, 18977L, 
    NA, NA, NA, NA, NA, NA, 19512L, NA, NA, NA, NA, NA, NA, 17424L, 
    NA, NA, NA, NA, NA, NA, 14464L, NA, NA, NA, NA, NA, NA, 16383L, 
    NA, NA, NA, NA, NA, NA, 19916L, NA, NA, NA, NA, NA, NA, 18255L, 
    NA, NA, NA, NA, NA, NA, 20113L, NA, NA, NA, NA, NA, NA, 20084L, 
    NA, NA, NA, NA, NA, NA, 20196L, NA, NA, NA, NA, NA, NA, 20184L, 
    NA, NA, NA, NA, NA, NA, 20261L, NA, NA, NA, NA, NA, NA, 22246L, 
    NA, NA, NA, NA, NA, NA, 23030L, NA, NA, NA, NA, NA, NA, 10487L, 
    NA, NA, NA, NA)), .Names = c("daily.ts", "wdayno", "month", 
"year", "yearday", "no.influ.cases", "no.consultations"), row.names = c(NA, 
-365L), class = "data.frame")

4
यह प्रश्न क्षेत्र-से-बिंदु प्रक्षेप के एक आयामी संस्करण के लिए पूछता है , जो खनन उद्योग में काफी अच्छी तरह से अध्ययन किया गया है। संदर्भित सार स्पष्ट रूप से नोट करता है कि भूस्थैतिक तरीकों से "सुसंगत (द्रव्यमान-संरक्षण ...) भविष्यवाणियां होती हैं।" मेरा मानना ​​है कि ये दृष्टिकोण @ निक कॉक्स द्वारा की गई आपत्तियों को दूर करते हैं।
whuber

@whuber संदर्भ के लिए धन्यवाद, मैं इस बात से अनभिज्ञ था कि इस तरह की समस्या जियोस्टैटिस्टिक्स में अच्छी तरह से जानी जाती है। क्या आप इस तरह के तरीकों को Rया अन्य सांख्यिकीय पैकेजों में लागू करने के बारे में जानते हैं (आर्कजीआईएस तक मेरी पहुंच नहीं है)? एक सुगमता से उपलब्ध कार्यान्वयन के बिना, मैं अभी भी अटका हुआ हूँ, मुझे डर है।
COOLSerdash

2
मेरा मानना ​​है कि यह कोड का उपयोग करके किया जा सकता है geoRglm, बशर्ते आपके पास समर्थन की परिवर्तनशीलता और परिवर्तन की बहुत अच्छी समझ हो (जो स्थानिक सहसंबंध मॉडल को विकसित करने के लिए आवश्यक है)। मैनुअल के रूप में स्प्रिंगर वेरलाग द्वारा प्रकाशित किया जाता मॉडल-आधारित geostatistics, Diggle और रिबेरो जूनियर
whuber

3
समूहीकृत डेटा की उपखंड जनसांख्यिकी में एक सामान्य प्रक्रिया है। एक खोज शब्द "स्प्रैग इंटरपोलेशन" है; यह आपको कई विविधताओं तक ले जाएगा। एक मोनोटोनिक वक्र को आश्वस्त करने वाले एक तरह से संचयी मूल्यों के लिए पांचवीं-डिग्री की सीमा को फिट करके , यह विधि और इसके वेरिएंट समूह डेटा को प्रभावी ढंग से पुनर्जीवित करते हैं। (यह 1880 के आसपास रहा है।) जेनेरिक शब्द "ऑस्क्यूलेटरी इंटरपोलेशन" है। अन्य लोगों के अलावा, रोब हंडमैन ने इस विषय के बारे में लिखा है: स्मिथ, हाइंडमैन, और वुड, स्पैन इंटरपोलेशन फॉर डेमोग्राफिक वेरिएबल्स: द मोनोटोनिकिटी प्रॉब्लम, जे। पॉप। रेस। 21 नंबर 1 (2004), 95-98।
whuber

2
आपके प्रश्न को डायसिमेट्रिक मैपिंग के रूप में एक आयाम में देखा जा सकता है । यह मात्राओं के विस्तृत मानचित्रों का उत्पादन करने की एक प्रक्रिया है जो कुछ कुल स्तर पर मापी गई हैं, जैसे मानक जनगणना इकाइयाँ। (यह कम से कम 1936 तक पता लगाया जा सकता है: जॉन के। राइट, ए मेपिंग डेंसिटी ऑफ़ पॉपुलेशन: ए उदाहरण के रूप में केप कॉड के साथ देखें। भौगोलिक समीक्षा 26: 1 (जनवरी 1936), पीपी 103-110। हाल का दृष्टिकोण (कुछ हद तक तदर्थ , लेकिन एक छोटी सहायक ग्रंथ सूची के साथ) giscience.org/proceedings/abstracts/giscience2012_paper_179.pdf देखें ।
whuber

जवाबों:


8

मैंने एक ऐसा Rफंक्शन बनाने में कामयाबी हासिल की है, जो सम-स्पिरिट पॉइंट्स को रैखिक रूप से और स्प्लिन के साथ प्रक्षेपित करता है जबकि साधनों (जैसे साप्ताहिक, मासिक, आदि) को संरक्षित करता है। यह कार्यों का उपयोग करता na.approxहै और na.splineसे zooपैकेज और iteratively वांछित गुणों के साथ splines गणना करता है। इस पत्र में एल्गोरिथ्म का वर्णन किया गया है ।

यहाँ कोड है:

interpol.consmean <- function(y, period=7, max.iter=100, tol=1e-4, plot=FALSE) {

  require(zoo)

  if( plot == TRUE ) {
    require(ggplot2)
  }

  y.temp.linear <- matrix(NA, ncol=length(y), nrow=max.iter+1)
  y.temp.linear[1, ] <- y

  y.temp.spline <- y.temp.linear

  y.temp.pred.spline <- matrix(NA, ncol=length(y), nrow=max.iter)
  y.temp.pred.linear <- matrix(NA, ncol=length(y), nrow=max.iter)

  ind.actual <- which(!is.na(y))

  if ( !all(diff(ind.actual)[1]== diff(ind.actual)) ) {
    stop("\"y\" must contain an evenly spaced time series")
  }

  partial <- ifelse((length(y) - ind.actual[length(ind.actual)]) < period/2,
                    TRUE, FALSE)

  for(k in 1:max.iter) {

    y.temp.pred.linear[k,] <- na.approx(y.temp.linear[k, ], na.rm=FALSE, rule=2)
    y.temp.pred.spline[k,] <- na.spline(y.temp.spline[k, ], method="fmm")

    interpol.means.linear <- rollapply(y.temp.pred.linear[k,], width=period, mean,
                                       by=period, align="left", partial=partial) 
    interpol.means.splines <- rollapply(y.temp.pred.spline[k,], width=period, mean,
                                        by=period, align="left", partial=partial) 

    resid.linear <- y.temp.linear[k, ][ ind.actual ] - interpol.means.linear
    resid.spline <- y.temp.spline[k, ][ ind.actual ] - interpol.means.splines

    if ( max(resid.linear, na.rm=TRUE) < tol & max(resid.spline, na.rm=TRUE) < tol ){
      cat("Converged after", k, "iterations with tolerance of", tol, sep=" ")
      break
    }

    y.temp.linear[k+1, ][!is.na(y.temp.linear[k, ])] <-  resid.linear
    y.temp.spline[k+1, ][!is.na(y.temp.spline[k, ])] <-  resid.spline

  }  

  interpol.linear.final <- colSums(y.temp.pred.linear, na.rm=TRUE)
  interpol.spline.final <- colSums(y.temp.pred.spline, na.rm=TRUE)

  if ( plot == TRUE ) {

    plot.frame <- data.frame(
      y=rep(y,2)/7,
      x=rep(1:length(y),2),
      inter.values=c(interpol.linear.final, interpol.spline.final)/7,
      method=c(rep("Linear", length(y)), rep("Spline", length(y)))
    )

    p <- ggplot(data=plot.frame, aes(x=x)) +
      geom_point(aes(y=y, x=x), size=4) +
      geom_line(aes(y=inter.values, color=method), size=1) +
      ylab("y") +
      xlab("x") +
      theme(axis.title.y =element_text(vjust=0.4, size=20, angle=90)) +
      theme(axis.title.x =element_text(vjust=0, size=20, angle=0)) +
      theme(axis.text.x =element_text(size=15, colour = "black")) +
      theme(axis.text.y =element_text(size=17, colour = "black")) +
      theme(panel.background =  element_rect(fill = "grey85", colour = NA),
            panel.grid.major =  element_line(colour = "white"),
            panel.grid.minor =  element_line(colour = "grey90", size = 0.25))+
      scale_color_manual(values=c("#377EB8", "#E41A1C"), 
                         name="Interpolation method",
                         breaks=c("Linear", "Spline"),
                         labels=c("Linear", "Spline")) +
      theme(legend.position="none") +
      theme(strip.text.x = element_text(size=16)) +
      facet_wrap(~ method)

    suppressWarnings(print(p))

  }
  list(linear=interpol.linear.final, spline=interpol.spline.final)
}

आइए फ़ंक्शन को प्रश्न में दिए गए उदाहरण डेटासेट पर लागू करें:

interpolations <- interpol.consmean(y=dat.frame$no.influ.cases, period=7,
                                    max.iter = 100, tol=1e-6, plot=TRUE)

छेड़छाड़

दोनों रैखिक और तख़्ता प्रक्षेप ठीक लग रहे हैं। आइए देखें कि साप्ताहिक साधन संरक्षित हैं (छोटा आउटपुट):

cbind(dat.frame$no.influ.cases[!is.na(dat.frame$no.influ.cases)],
      rollapply(interpolations$linear, 7, mean, by=7, align="left", partial=F))

      [,1] [,2]
 [1,]  168  168
 [2,]  199  199
 [3,]  214  214
 [4,]  230  230
 [5,]  267  267
 [6,]  373  373
 [7,]  387  387
 [8,]  443  443
 [9,]  579  579
[10,]  821  821
[11,] 1229 1229

1
आपको उसके लिए एक उपयुक्त पैकेज ढूंढना चाहिए और यदि वे इसे शामिल करना चाहते हैं तो अनुरक्षक से पूछें।
स्पेसमैन जूल

4

रेंज के मध्य बिंदु पर मध्य से गुजरने वाली कोई भी सीधी रेखा उन दैनिक मानों का उत्पादन करेगी जिनके लिए आवश्यक मतलब है। निक कॉक्स की अंतिम टिप्पणी 'दिनों की संख्या से साप्ताहिक गणना को विभाजित' के बारे में है कि ग्रेडिएंट = 0 के साथ एक विशेष मामला है।

तो हम इसे समायोजित कर सकते हैं और चीजों को शायद थोड़ा चिकना करने के लिए ढाल का चयन कर सकते हैं। यहां कुछ ऐसा करने के लिए तीन आर कार्य हैं:

interpwk <- function(x,y,delta){
  offset=-3:3
  yout=y+delta*offset
  xout=x+offset
  cbind(xout,yout)
}

get_delta <- function(x,y,pos){
  (y[pos+1]-y[pos-1])/(x[pos+1]-x[pos-1])
}

#' get slope from neighbours
interpall <- function(x,y,delta1,f=1){
  for(i in 2:(length(x)-1)){
    delta=get_delta(x,y,i)
    xyout=interpwk(x[i],y[i],delta/f)
    points(xyout)
  }
}

अपने डेटा में एक दिन का माप जोड़ें, फिर प्लॉट करें और फिर इंटरपोलर को प्लॉट करें:

> data$day=data$week*7
> plot(data$day,data$no.influ.cases,type="l")
> interpall(data$day,data$no.influ.cases,f=1)

रेखीय माध्य-संरक्षण प्रक्षेपक

दूसरी संभावना यह है कि सप्ताहांत में निरंतरता में बाधा आती है, लेकिन यह आपको केवल एक डिग्री की स्वतंत्रता के साथ एक प्रणाली प्रदान करता है - अर्थात यह पूरी तरह से पहले खंड के ढलान द्वारा परिभाषित किया गया है (क्योंकि तब अन्य सभी वर्गों को शामिल होना होगा)। मैंने इसे कोडित नहीं किया है - आपके पास जाना है!

[थोड़ा जर्जर आर कोड के लिए एपोल, यह वास्तव में उन्हें प्लॉट करने के बजाय अंक वापस करना चाहिए]


+1, धन्यवाद। समस्या यह है कि प्रक्षेपित मूल्य सुचारू नहीं हैं और हफ्तों के बीच काफी अचानक कदम हैं। मैंने अपने प्रश्न को एक पेपर सहित संपादित किया है जो मूल रूप से उस दृष्टिकोण की व्याख्या करता है जिसकी मुझे आवश्यकता है।
COOLSerdash

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

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

1
@Spacedman भू-वैज्ञानिक API तरीके जिन्हें मैंने (प्रश्न के लिए एक टिप्पणी में) संदर्भित किया है, वे आपके (काफी मान्य) आपत्ति को वेरोग्राम नगेट पैरामीटर में एक नॉनज़ेरो घटक के माध्यम से संभाल लेंगे। भूस्थैतिक सशर्त सिमुलेशन आपके द्वारा संदर्भित कई अशुद्धियों को करने का एक नियंत्रित तरीका है।
whuber

2
पूर्ण रूप से। आपको एक आयामी स्थिति दिखाई देती है, जो लगभग ठीक उसी तरह से है जैसा कि डिग्ल एंड रिबेरो मैनुअल में जियोगर्लम (गाम्बिया में मलेरिया के मामलों में, दलदल के साथ निकटता के साथ, कोवरिएट्स के रूप में)। मुख्य जटिलता समर्थन के परिवर्तन को संभाल रही है, लेकिन यह वास्तव में भविष्यवाणी को प्रभावित नहीं करेगा: यह मुख्य रूप से वेरोग्राम के अनुमान को प्रभावित करेगा। कुछ सिद्धांत और इसी तरह के उदाहरणों के लिए ncbi.nlm.nih.gov/pmc/articles/PMC2995922 देखें (रोग मामलों के "द्विपद की सिंचाई")।
whuber

3

n

(यदि डेटा की गिनती के बजाय माप किया गया था, तो मैं एक डिरिचलेट मॉडल के माध्यम से अनुपातों की मॉडलिंग करना चाहूंगा, लेकिन यह थोड़ा सा शामिल है।)

तथ्य यह है कि दिनों की संख्या हमेशा समान नहीं होगी, एक विशेष समस्या नहीं होनी चाहिए, जब तक आप जानते हैं कि यह क्या है - जब तक आप समान 'स्तर' पर चीजों को डालने के लिए एक ऑफसेट का उपयोग करते हैं।


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

@NickCox आप निरपेक्ष सही हैं, स्पष्टीकरण के लिए धन्यवाद: मेरे पास साप्ताहिक डेटा है और दैनिक डेटा चाहते हैं क्योंकि मेरे पास अन्य डेटा हैं जो दैनिक (जैसे मौसम संबंधी चर, मृत्यु दर, वायु प्रदूषण आदि) हैं।
COOLSerdash

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

@ निक कॉक्स यह बिल्कुल "अनुमान लगाने" है, लेकिन दी गई जानकारी पर लगता है कि ओपी के बाद क्या था।
Glen_b -Reinstate मोनिका

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

3

मैं कुछ अतिरिक्त टिप्पणियों को एक और उत्तर के रूप में एक साथ बंडल करूंगा।

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

प्रश्न का मूल फोकस इंटरपोल पर रहता है, जो साप्ताहिक माध्यम को संरक्षित करता है, जिसका एक (चरम) उत्तर है कि साप्ताहिक का मतलब साप्ताहिक मतलब है। जैसा कि अनिश्चित रूप से अनाकर्षक या अवास्तविक लगता है, अन्य प्रक्षेप विधियां अधिक आकर्षक और / या प्रतिरूपण विधियों के रूप में @Spacedman द्वारा प्रस्तावित लगती हैं। (काफी है कि एक लौकिक स्वाद या जोड़ा स्टोकेस्टिक स्वाद के साथ प्रक्षेप के साथ अभेद्य होगा कि मैं स्पष्ट नहीं हूँ।)

दो और विशिष्ट विचार:

  • साप्ताहिक मान लेना (दिनों की संख्या से विभाजित) और फिर भारित औसत के साथ चौरसाई करना एक अच्छा सन्निकटन के लिए माध्य को संरक्षित करने के लिए अभ्यास में संभव होगा।

  • चूंकि इन्फ्लूएंजा के मामले मायने रखते हैं, रूट या लॉग काउंट को स्मूथ करना और फिर बैक-ट्रांसफॉर्मिंग, काउंटिंग को स्मूथ करने से बेहतर काम कर सकता है।

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