আমার শতাংশের ডেটাতে আমার কী ধরণের বাঁকানো (বা মডেল) ফিট করা উচিত?


15

আমি এমন একটি চিত্র তৈরির চেষ্টা করছি যা ভাইরাল অনুলিপি এবং জিনোম কভারেজ (জিসিসি) এর মধ্যে সম্পর্ককে দেখায়। এটি আমার ডেটা দেখতে দেখতে:

ভাইরাল লোড বনাম জিসিসি

প্রথমদিকে, আমি কেবল একটি রৈখিক প্রতিরোধের পরিকল্পনা করেছিলেন তবে আমার তত্ত্বাবধায়করা আমাকে বলেছিলেন যে এটি ভুল ছিল এবং একটি সিগময়েডাল বক্ররেখার চেষ্টা করতে। তাই আমি জিওম_স্মোথ ব্যবহার করে এটি করেছি:

library(scales)
ggplot(scatter_plot_new, aes(x = Copies_per_uL, y = Genome_cov, colour = Virus)) +
    geom_point() +
    scale_x_continuous(trans = log10_trans(), breaks = trans_breaks("log10", function(x) 10^x), labels = trans_format("log10", math_format(10^.x))) +
        geom_smooth(method = "gam", formula = y ~ s(x), se = FALSE, size = 1) +
    theme_bw() +
    theme(legend.position = 'top', legend.text = element_text(size = 10), legend.title = element_text(size = 12), axis.text = element_text(size = 10), axis.title = element_text(size=12), axis.title.y = element_text(margin = margin (r = 10)), axis.title.x = element_text(margin = margin(t = 10))) +
    labs(x = "Virus copies/µL", y = "GCC (%)") +
    scale_y_continuous(breaks=c(25,50,75,100))

ভাইরাসযুক্ত লোড বনাম জিসিসি - জিম_স্মোথ

তবে, আমার তত্ত্বাবধায়করা বলছেন এটিও ভুল because কারণ কার্ভগুলি এটি দেখতে দেখতে জিসিসি 100% এরও বেশি যেতে পারে, যা এটি পারে না।

আমার প্রশ্ন: ভাইরাস অনুলিপি এবং জিসিসির মধ্যে সম্পর্ক দেখানোর সর্বোত্তম উপায় কী? আমি এটিকে পরিষ্কার করতে চাই যে ক) কম ভাইরাসের অনুলিপিগুলি = কম জিসিসি, এবং সেই বি) নির্দিষ্ট পরিমাণ ভাইরাসের জিসিসি প্লাটিওস অনুলিপি করার পরে।

আমি প্রচুর বিভিন্ন পদ্ধতি নিয়ে গবেষণা করেছি - গ্যাম, লস, লজিস্টিক, পিসওয়াস - তবে আমার ডেটার জন্য সবচেয়ে ভাল পদ্ধতি কী তা কীভাবে বলতে হয় তা আমি জানি না।

সম্পাদনা: এটি ডেটা:

>print(scatter_plot_new)  
Subsample   Virus   Genome_cov  Copies_per_uL
1   S1.1_RRAV   RRAV    100 92500
2   S1.2_RRAV   RRAV    100 95900
3   S1.3_RRAV   RRAV    100 92900
4   S2.1_RRAV   RRAV    100 4049.54
5   S2.2_RRAV   RRAV    96.9935 3809
6   S2.3_RRAV   RRAV    94.5054 3695.06
7   S3.1_RRAV   RRAV    3.7235  86.37
8   S3.2_RRAV   RRAV    11.8186 84.2
9   S3.3_RRAV   RRAV    11.0929 95.2
10  S4.1_RRAV   RRAV    0   2.12
11  S4.2_RRAV   RRAV    5.0799  2.71
12  S4.3_RRAV   RRAV    0   2.39
13  S5.1_RRAV   RRAV    4.9503  0.16
14  S5.2_RRAV   RRAV    0   0.08
15  S5.3_RRAV   RRAV    4.4147  0.08
16  S1.1_UMAV   UMAV    5.7666  1.38
17  S1.2_UMAV   UMAV    26.0379 1.72
18  S1.3_UMAV   UMAV    7.4128  2.52
19  S2.1_UMAV   UMAV    21.172  31.06
20  S2.2_UMAV   UMAV    16.1663 29.87
21  S2.3_UMAV   UMAV    9.121   32.82
22  S3.1_UMAV   UMAV    92.903  627.24
23  S3.2_UMAV   UMAV    83.0314 615.36
24  S3.3_UMAV   UMAV    90.3458 632.67
25  S4.1_UMAV   UMAV    98.6696 11180
26  S4.2_UMAV   UMAV    98.8405 12720
27  S4.3_UMAV   UMAV    98.7939 8680
28  S5.1_UMAV   UMAV    98.6489 318200
29  S5.2_UMAV   UMAV    99.1303 346100
30  S5.3_UMAV   UMAV    98.8767 345100

6
লজিস্টিক রিগ্রেশন মনে হচ্ছে এটি সবচেয়ে ভাল হবে, যেহেতু এটি 0 এবং 100% এর মধ্যে সীমাবদ্ধ।
এমকেটি - মনিকা

1
(2) টুকরা অনুসারে (লিনিয়ার) মডেল চেষ্টা করুন।
ব্যবহারকারী 158565

3
আপনার আদি ggplot কোডে method.args=list(family=quasibinomial))যুক্তি যুক্ত করার চেষ্টা করুন geom_smooth()
বেন বলকার

4
PS আমি আপনাকে স্ট্যান্ডার্ড ত্রুটিগুলি দমন করতে না উত্সাহিত করব se=FALSE। অনিশ্চয়তা আসলে কতটা বড় তা মানুষকে দেখাতে সর্বদা চমৎকার ...
বেন বলকার

2
একটি মসৃণ বক্ররেখা আছে যে কোনও কর্তৃপক্ষের সাথে দাবি করার জন্য আপনার কাছে ট্রানজিশন অঞ্চলে পর্যাপ্ত তথ্য পয়েন্ট নেই। আপনি আমাদের যে পয়েন্টগুলি দেখিয়ে দিচ্ছেন তাতে আমি হ্যাভিসাইড ফাংশনটি সহজেই ফিট করতে পারি।
কার্ল উইথফট

উত্তর:


6

এ সম্পর্কে আরও একটি উপায় হ'ল বায়েশিয়ান ফর্মুলেশন ব্যবহার করা, এটি শুরু করা কিছুটা ভারী হতে পারে তবে এটি আপনার সমস্যার সুনির্দিষ্ট বিবরণ প্রকাশ করা আরও সহজ করে তোলে যেখানে "অনিশ্চয়তা" সম্পর্কে আরও ভাল ধারণা পাওয়া যায় হয়

স্ট্যান একটি মন্টি কার্লো নমুনা যার সাথে তুলনামূলকভাবে প্রোগ্রামেটিক ইন্টারফেস ব্যবহার করা সহজ, লাইব্রেরি আর এবং অন্যদের জন্য উপলব্ধ তবে আমি পাইথনটি এখানে ব্যবহার করছি

আমরা প্রত্যেকের মতো সিগময়েড ব্যবহার করি: এর জৈব-রাসায়নিক প্রেরণার পাশাপাশি গাণিতিকভাবে কাজ করার জন্য খুব সুবিধাজনক being এই কাজের জন্য একটি দুর্দান্ত পরামিতি হ'ল:

import numpy as np

def sigfn(x, alpha, beta):
    return 1 / (1 + np.exp(-(x - alpha) * beta))

যেখানে alphaসিগময়েড বক্ররেখার মিডপয়েন্টটি সংজ্ঞায়িত করা হয় (যেখানে এটি 50% অতিক্রম betaকরে ) এবং slালকে সংজ্ঞায়িত করে, মানগুলি শূন্যের নিকটে সমতল

এটি দেখতে কেমন তা দেখানোর জন্য, আমরা আপনার ডেটা টেনে এনে এটি প্লট করতে পারি:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.read_table('raw_data.txt', delim_whitespace=True)
df.columns = ['subsample', 'virus', 'coverage', 'copies']
df.coverage /= 100

x = np.logspace(-1, 6, 201)
plt.semilogx(x, sigfn(np.log(x), 5.5, 3), label='sigfn', color='C2')

sns.scatterplot(df.copies, df.coverage, hue=df.virus, edgecolor='none')

যেখানে raw_data.txtআপনার দেওয়া ডেটা রয়েছে এবং আমি কভারেজটিকে আরও দরকারী কিছুতে রূপান্তর করেছি। সহগ 5.5 এবং 3 দেখতে দেখতে সুন্দর এবং অন্য উত্তরের মতো একটি প্লট দেয়:

প্লটের ডেটা এবং ম্যানুয়াল ফিট

স্ট্যান ব্যবহার করে এই ফাংশনটি "ফিট" করতে আমাদের মডেলকে তার নিজস্ব ভাষা ব্যবহার করে সংজ্ঞায়িত করতে হবে যা আর এবং সি ++ এর মধ্যে একটি মিশ্রণ। একটি সাধারণ মডেল কিছু হতে পারে:

data {
    int<lower=1> N;  // number of rows
    vector[N] log_copies;
    vector<lower=0,upper=1>[N] coverage;
}
parameters {
    real alpha;
    real beta;
    real<lower=0> sigma;
}
model {
    vector[N] mu;
    mu = 1 ./ (1 + exp(-(log_copies - alpha) * beta));

    sigma ~ cauchy(0, 0.1);
    alpha ~ normal(0, 5);
    beta ~ normal(0, 5);

    coverage ~ normal(mu, sigma);
}

যা আশা করি ঠিক আছে। আমাদের একটি dataব্লক রয়েছে যা আমরা প্রত্যাশিত ডেটা সংজ্ঞায়িত করে যখন আমরা মডেলটি parametersনমুনা করি, নমুনাযুক্ত জিনিসগুলি modelসংজ্ঞায়িত করি এবং সম্ভাবনা কার্যটি সংজ্ঞায়িত করি। আপনি স্ট্যানকে মডেলটি "সংকলন" করতে বলেছেন, যা কিছুটা সময় নেয় এবং তারপরে আপনি কিছু ডেটা দিয়ে এটি থেকে নমুনা নিতে পারেন। উদাহরণ স্বরূপ:

import pystan

model = pystan.StanModel(model_code=code)
model.sampling(data=dict(
    N=len(df),
    log_copies=np.log(df.copies),
    coverage=df.coverage,
), iter=10000, chains=4, thin=10)

import arviz
arviz.plot_trace(fit)

arviz দুর্দান্ত ডায়গনিস্টিক প্লটকে সহজ করে তোলে, ফিট মুদ্রণের সময় আপনাকে একটি দুর্দান্ত আর-স্টাইলের প্যারামিটারের সারাংশ দেয়:

4 chains, each with iter=10000; warmup=5000; thin=10; 
post-warmup draws per chain=500, total post-warmup draws=2000.

        mean se_mean     sd   2.5%    25%    50%    75%  97.5%  n_eff   Rhat
alpha   5.51  6.0e-3   0.26   4.96   5.36   5.49   5.64   6.12   1849    1.0
beta    2.89    0.04   1.71   1.55   1.98   2.32   2.95   8.08   1698    1.0
sigma   0.08  2.7e-4   0.01   0.06   0.07   0.08   0.09    0.1   1790    1.0
lp__   57.12    0.04   1.76   52.9   56.1  57.58  58.51  59.19   1647    1.0

বৃহত্তর স্ট্যান্ডার্ড বিচ্যুতি betaবলছে যে ডেটা সত্যিই এই পরামিতি সম্পর্কে খুব বেশি তথ্য সরবরাহ করে না। এছাড়াও তাদের মডেলের ফিটগুলিতে 10+ উল্লেখযোগ্য অঙ্কগুলি দেওয়ার উত্তরগুলির কিছু হ'ল কিছুটা বড় বিষয়

কারণ কিছু উত্তর লক্ষনীয় যে প্রতিটি ভাইরাস নিজস্ব পরামিতি প্রয়োজন হতে পারে আমি মডেল বাড়ানো করার অনুমতি alphaএবং beta"ভাইরাস" দ্বারা তারতম্য। এটি সমস্ত কিছুটা স্পষ্টভাবে পেয়ে যায় তবে দুটি ভাইরাসের প্রায় পৃথক alphaমান রয়েছে (যেমন একই কাভারেজের জন্য আপনার আরও কপি / আরআরএলএলএল প্রয়োজন) এবং এটি দেখানোর একটি প্লট হ'ল:

ডেটা এবং এমসির নমুনার প্লট

ডেটা আগের মতোই, তবে আমি উত্তরোত্তর 40 টি নমুনার জন্য একটি বক্ররেখা আঁকা করেছি। UMAVতুলনামূলকভাবে সুদৃ determined় বলে মনে হচ্ছে, যখন RRAVএকই opeাল অনুসরণ করতে পারে এবং উচ্চতর অনুলিপি গণনার প্রয়োজন হতে পারে, বা একটি স্টিপার opeাল এবং অনুরূপ অনুলিপি গণনা থাকতে পারে। উত্তরোত্তর বেশিরভাগ অংশের একটি উচ্চতর অনুলিপি গণনার প্রয়োজন হয়, তবে এই অনিশ্চয়তা বিভিন্ন উত্তরগুলি খুঁজে পেতে অন্য উত্তরের কিছু পার্থক্য ব্যাখ্যা করতে পারে

স্ট্যান সম্পর্কে আমার জ্ঞানের উন্নতি করার জন্য আমি এটির একটি অনুশীলন হিসাবে বেশিরভাগ ক্ষেত্রেই ব্যবহার করেছি এবং যদি কেউ আগ্রহী / এটির অনুলিপি করতে চায় তবে আমি এখানে এর একটি জিউটার নোটবুক রেখেছি ।


14

(নীচের অ্যাকাউন্টে মন্তব্যগুলি গ্রহণ করে সম্পাদিত। সহায়ক ইনপুট দেওয়ার জন্য @ বেনবোলকার এবং @ ওয়েইওয়েনএনজি ধন্যবাদ))

ডেটাতে একটি ভগ্নাংশ লজিস্টিক রিগ্রেশন ফিট করুন। এটি শতকরা ডেটার সাথে উপযুক্ত যা 0 এবং 100% এর মধ্যে আবদ্ধ এবং জীববিজ্ঞানের অনেক ক্ষেত্রে তাত্ত্বিকভাবে সুবিচারযোগ্য।

নোট করুন যে এটির জন্য আপনাকে সমস্ত মানকে 100 দ্বারা বিভক্ত করতে হতে পারে, যেহেতু প্রোগ্রামগুলি প্রায়শই ডেটা 0 এবং 1 এর মধ্যে বিস্তৃত হওয়ার প্রত্যাশা করে এবং বেন বলকার সুপারিশ করেছেন, দ্বি-দ্বি বিতরণের বিবিধতা সম্পর্কে কঠোর অনুমান দ্বারা সৃষ্ট সম্ভাব্য সমস্যাগুলির সমাধান করার জন্য, পরিবর্তে quasibinomial বিতরণ।

আমি আপনার কোডের উপর ভিত্তি করে কিছু অনুমান করেছি, যেমন আপনার আগ্রহী ২ টি ভাইরাস রয়েছে এবং তারা বিভিন্ন ধরণের প্রদর্শন করতে পারে (যেমন ভাইরাস ধরণের এবং অনুলিপিগুলির মধ্যে একটি মিথস্ক্রিয়া হতে পারে)।

প্রথমত, মডেল ফিট:

dat <- read.csv('Book1.csv')
dat$logcopies <- log10(dat$Copies_per_uL)
dat$Genome_cov_norm <- dat$Genome_cov/100

fit <- glm(Genome_cov_norm ~ logcopies * Virus, data = dat, family = quasibinomial())
summary(fit)


Call:
glm(formula = Genome_cov_norm ~ logcopies * Virus, family = quasibinomial(), 
    data = dat)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.55073  -0.13362   0.07825   0.20362   0.70086  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)  
(Intercept)          -5.9702     2.8857  -2.069   0.0486 *
logcopies             2.3262     1.0961   2.122   0.0435 *
VirusUMAV             2.6147     3.3049   0.791   0.4360  
logcopies:VirusUMAV  -0.6028     1.3173  -0.458   0.6510  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for quasibinomial family taken to be 0.6934319)

    Null deviance: 30.4473  on 29  degrees of freedom
Residual deviance:  2.7033  on 26  degrees of freedom

আপনি যদি পি-মানগুলিতে বিশ্বাস করেন তবে আউটপুটটি সুপারিশ করবে না যে দুটি ভাইরাস অর্থপূর্ণভাবে আলাদা। এটি নীচে @ নিককক্সের ফলাফলের বিপরীতে, যদিও আমরা বিভিন্ন পদ্ধতি ব্যবহার করি। আমি 30 ডেটা পয়েন্ট দিয়ে কোনওভাবেই খুব বেশি আত্মবিশ্বাসী হব না।

দ্বিতীয়ত, ষড়যন্ত্র:

আউটপুটটি নিজেই কল্পনা করার কোনও উপায় কোড করা শক্ত নয়, তবে এমন একটি জিজিপ্রেডিক্ট প্যাকেজ উপস্থিত রয়েছে যা আপনার জন্য বেশিরভাগ কাজ করবে (এটির জন্য নিশ্চয়তা দিতে পারে না, আমি নিজে চেষ্টা করে দেখিনি)। কোডটি এমন কিছু দেখবে:

library(ggiraphExtra)
ggPredict(fit) + theme_bw(base_size = 20) + geom_line(size = 2) 

আপডেট: আমি আর কোড বা ggPredict ফাংশনটি আরও সাধারণভাবে সুপারিশ করি না। এটি চেষ্টা করে দেখতে পেলাম যে প্লট করা পয়েন্টগুলি হ'ল ইনপুট ডেটার প্রতিফলন করে না বরং পরিবর্তে কিছু উদ্ভট কারণে পরিবর্তন করা হয়েছে (কিছু প্লট পয়েন্টগুলি 1 এর উপরে এবং 0 এর নীচে ছিল)। সুতরাং আমি নিজেই কোডিংয়ের প্রস্তাব দিই, যদিও এটি আরও কাজ।


7
আমি এই উত্তরের অনুমোদন দিই, তবে আমি স্পষ্ট করে বলতে চাই: আমি এই ভগ্নাংশ লজিস্টিক রিগ্রেশন বলব। আমি মনে করি এই শব্দটি আরও ব্যাপকভাবে স্বীকৃত হবে। যখন বেশিরভাগ লোকেরা "লজিস্টিক রিগ্রেশন" শোনেন, আমি বাজি ধরছি তারা 0/1 নির্ভরশীল পরিবর্তনশীল সম্পর্কে মনে করে। এই নামকরণের সাথে মোকাবিলা করার জন্য একটি ভাল স্ট্যাকেক্সচেঞ্জের উত্তর এখানে: stats.stackexchange.com/questions/216122/…
ওয়েইভেন এনজি

2
@teaelleceecee আপনি স্পষ্টতই কভারেজটি প্রথম 100 দ্বারা বিভক্ত করতে হবে।
নিক কক্স

4
family=quasibinomial()সতর্কতা এড়াতে ব্যবহার করুন (এবং খুব কঠোর বৈকল্পিক অনুমানের সাথে অন্তর্নিহিত সমস্যাগুলি)। অন্যান্য সমস্যার বিষয়ে @ এমকেটির পরামর্শ নিন।
বেন বলকার

2
এই কাজ করতে পারে, কিন্তু আমি ভাবেন যে আপনি একটি প্রতিজ্ঞা থাকতে হবে সতর্ক চাই পূর্বে একটি ফাংশন আসলে আপনার ডেটা ঝুলানো করার উচিত যে ফাংশন অনুসরণ করুন। অন্যথায় আপনি কোনও ফিটনেস ফাংশন বেছে নেওয়ার সময় আপনি এলোমেলোভাবে শুটিং করছেন এবং ফলাফলগুলি দ্বারা আপনি বোকা হয়ে উঠতে পারেন।
কার্ল উইথফট

6
@ কার্লউইথথফট আমরা খুতবা শুনি তবে সেবার বাইরে পাপী। পূর্বের কোন ভিত্তি আপনাকে অন্যান্য মন্তব্যে হেভিসাইড ফাংশনটির পরামর্শ দিতে পরিচালিত করেছিল? এখানকার জীববিজ্ঞানটি তীক্ষ্ণ প্রান্তরে সংক্রমণের অনুরূপ নয়। আমি বুঝতে পেরে এখানে গবেষণার সত্যটি হ'ল আনুষ্ঠানিক তত্ত্বটি তথ্যের চেয়ে দুর্বল। আমি সম্মত হই: লোকেরা যদি মনে করে যে একটি পদক্ষেপ ফাংশনটি বোধগম্য হয়, তবে তাদের উচিত এটি একটি ফিট।
নিক কক্স 13

11

এটি @ এমকেটি থেকে আলাদা উত্তর নয় তবে বিশেষত গ্রাফগুলি কোনও মন্তব্যে মাপসই হবে না। আমি প্রথমে সমস্ত ডেটাতে স্টাটাতে (পূর্বাভাসিকে লগ করার পরে) একটি লজিস্টিক বক্ররেখা ফিট করি এবং এই গ্রাফটি পাই

এখানে চিত্র বর্ণনা লিখুন

একটি সমীকরণ হয়

100 invlogit(-4.192654 + 1.880951 log10( Copies))

একটি ইন্ডিকেটর ভেরিয়েবলকে সংজ্ঞায়িত করার জন্য ভাইরাসের সহজতম দৃশ্যে এখন আমি প্রতিটি ভাইরাসের জন্য আলাদাভাবে কার্ভ ফিট করি fit রেকর্ডের জন্য এখানে একটি স্টাতা স্ক্রিপ্ট রয়েছে:

clear 
input id str9 Subsample   str4 Virus   Genome_cov  Copies_per_uL
1   S1.1_RRAV   RRAV    100 92500
2   S1.2_RRAV   RRAV    100 95900
3   S1.3_RRAV   RRAV    100 92900
4   S2.1_RRAV   RRAV    100 4049.54
5   S2.2_RRAV   RRAV    96.9935 3809
6   S2.3_RRAV   RRAV    94.5054 3695.06
7   S3.1_RRAV   RRAV    3.7235  86.37
8   S3.2_RRAV   RRAV    11.8186 84.2
9   S3.3_RRAV   RRAV    11.0929 95.2
10  S4.1_RRAV   RRAV    0   2.12
11  S4.2_RRAV   RRAV    5.0799  2.71
12  S4.3_RRAV   RRAV    0   2.39
13  S5.1_RRAV   RRAV    4.9503  0.16
14  S5.2_RRAV   RRAV    0   0.08
15  S5.3_RRAV   RRAV    4.4147  0.08
16  S1.1_UMAV   UMAV    5.7666  1.38
17  S1.2_UMAV   UMAV    26.0379 1.72
18  S1.3_UMAV   UMAV    7.4128  2.52
19  S2.1_UMAV   UMAV    21.172  31.06
20  S2.2_UMAV   UMAV    16.1663 29.87
21  S2.3_UMAV   UMAV    9.121   32.82
22  S3.1_UMAV   UMAV    92.903  627.24
23  S3.2_UMAV   UMAV    83.0314 615.36
24  S3.3_UMAV   UMAV    90.3458 632.67
25  S4.1_UMAV   UMAV    98.6696 11180
26  S4.2_UMAV   UMAV    98.8405 12720
27  S4.3_UMAV   UMAV    98.7939 8680
28  S5.1_UMAV   UMAV    98.6489 318200
29  S5.2_UMAV   UMAV    99.1303 346100
30  S5.3_UMAV   UMAV    98.8767 345100
end 

gen log10Copies = log10(Copies)
gen Genome_cov_pr = Genome_cov / 100
encode Virus, gen(virus)
set seed 2803 
fracreg logit Genome_cov_pr log10Copies i.virus, vce(bootstrap, reps(10000)) 

twoway function invlogit(-5.055519 + 1.961538 * x), lc(orange) ra(log10Copies)      ///
|| function invlogit(-5.055519 + 1.233273 + 1.961538 * x), ra(log10Copies) lc(blue) ///
|| scatter Genome_cov_pr log10Copies if Virus == "RRAV", mc(orange) ms(Oh)          ///
|| scatter Genome_cov_pr log10Copies if Virus == "UMAV", mc(blue) ms(+)             ///
legend(order(4 "UMAV" 3 "RRAV") pos(11) col(1) ring(0))                             ///
xla(-1 "0.1" 0 "1" 1 "10" 2 "100" 3 "10{sup:3}" 4 "10{sup:4}" 5 "10{sup:5}")        ///
yla(0 .25 "25" .5 "50" .75 "75" 1 "100", ang(h))                                    ///
ytitle(Genome coverage (%)) xtitle(Genome copies / {&mu}L) scheme(s1color) 

এটি একটি ক্ষুদ্র ডেটাসেটের উপর কঠোর চাপ দিচ্ছে তবে ভাইরাসের জন্য পি-মানটি দুটি বক্ররেখাকে সম্মিলিতভাবে ফিট করার পক্ষে সহায়ক বলে মনে হচ্ছে।

Fractional logistic regression                  Number of obs     =         30
                                                Replications      =     10,000
                                                Wald chi2(2)      =      48.14
                                                Prob > chi2       =     0.0000
Log pseudolikelihood = -6.9603063               Pseudo R2         =     0.6646

-------------------------------------------------------------------------------
              |   Observed   Bootstrap                         Normal-based
Genome_cov_pr |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
--------------+----------------------------------------------------------------
  log10Copies |   1.961538   .2893965     6.78   0.000     1.394331    2.528745
              |
        virus |
        UMAV  |   1.233273   .5557609     2.22   0.026     .1440018    2.322544
        _cons |  -5.055519   .8971009    -5.64   0.000    -6.813805   -3.297234
-------------------------------------------------------------------------------

এখানে চিত্র বর্ণনা লিখুন


3

সিগময়েড ফাংশন চেষ্টা করুন । একটি লজিস্টিক কার্ভ সহ এই আকারের অনেকগুলি সূত্র রয়েছে। হাইপারবোলিক ট্যানজেন্ট আরেকটি জনপ্রিয় পছন্দ।

প্লটগুলি দেওয়া, আমি কোনও সাধারণ পদক্ষেপের কাজটিও বাতিল করতে পারি না। আমি আশঙ্কা করছি আপনি কোনও পদক্ষেপ এবং কোনও সংখ্যক সিগময়েড স্পেসিফিকেশনের মধ্যে পার্থক্য করতে পারবেন না। আপনার শতাংশ যেখানে আপনার শতাংশ ৫০% রেঞ্জের মধ্যে রয়েছে তা আপনার কোনও পর্যবেক্ষণ নেই, তাই সাধারণ ধাপের গঠনটি সবচেয়ে পার্সামিনাস পছন্দ হতে পারে যা আরও জটিল মডেলের চেয়ে খারাপ কাজ করে না forms


σ(এক্স)=12(1+ +TANHএক্স2)

2
@ জেজি "সিগময়েড" একটি এস-কার্ভের জন্য একটি সাধারণ শব্দ, যতদূর আমি উদ্বিগ্ন, তবে আপনি সিগময়েডের দুটি স্পেসিফিকেশনের মধ্যে একটি লিঙ্কের দিকে ইঙ্গিত করতেই ঠিক বলেছেন
আকসাকাল

2

এখানে 4PL (4 পরামিতি লজিস্টিক) ফিট করে, উভয় সিএ Holstein,, এম গ্রিফিন, জে হং, পি ডি স্যাম্পসন প্রতি হিসাবে "পরিসংখ্যানগত পদ্ধতি নির্ধারণ এবং Bioassays ডিটেকশন সীমা তুলনা জন্য" সীমাবদ্ধ এবং সংকোচহীন, সমীকরণ সাথে আছেন, পায়ূ । কেম। 87 (2015) 9795-9801। 4PL সমীকরণটি উভয় চিত্রগুলিতে দেখানো হয়েছে এবং প্যারামিটারের অর্থগুলি নিম্নরূপ: a = নিম্ন asympote, b = opeাল ফ্যাক্টর, c = প্রতিচ্ছবি বিন্দু এবং d = উচ্চতর asympote।

চিত্র 1 একটি সমান 0% এবং d সমান 100%:

চিত্র 1 1 একটি & ডি সীমাবদ্ধ

চিত্র 2 এর 4PL সমীকরণের 4 পরামিতিগুলির কোনও বাধা নেই:

চিত্র 2 2 কোনও বাধা নেই

এটি মজাদার ছিল, আমি জৈবিক কিছু জানার ভান করি না এবং এটি কীভাবে সমস্ত স্থির হয় তা দেখতে আকর্ষণীয় হবে!


আপনাকে ধন্যবাদ, এটি সত্যিই সহায়ক। কেবল অবাক হয়ে ভাবছেন, আপনি কি ফ্যাট ফাংশনটির সাথে ম্যাটল্যাবে এটি করেছেন?
চায়েললিসি

1
আমি পরিসংখ্যানগুলিতে প্রদর্শিত ব্যবহারকারী-সংজ্ঞায়িত ব্যবহারকারীর ফাংশন সহ আইগার প্রো ব্যবহার করেছি। আমি 1988 সাল থেকে ইগর প্রো এবং এর পূর্বসূরী (আইগর) ব্যবহার করেছি, তবে অন্যান্য প্রচুর প্রোগ্রামগুলি বক্ররেখা ফিটিং করতে পারে, উদাহরণস্বরূপ, অরিজিন প্রো এবং খুব সুলভ কালিদগ্রাফ। এবং এটি প্রতীয়মান হয় যে আপনার মতলবতে আর এবং সম্ভবত (সম্ভবত?) অ্যাক্সেস রয়েছে, তারা উভয়ই চূড়ান্ত সক্ষম ব্যতীত আমি কিছুই জানি না। এটির সাথে সেরা সাফল্য এবং আমি আশা করি পরের বার আপনি সুপারভাইজারদের সাথে বিষয়গুলি নিয়ে আলোচনা করার পরে আপনি ভাল খবর পেয়ে যাবেন! এছাড়াও, তথ্য পোস্ট করার জন্য ধন্যবাদ!
এড ভি

2

আমি আপনার স্ক্রেটারপ্লট থেকে ডেটা বের করেছি এবং আমার সমীকরণ অনুসন্ধানে ভাল প্রার্থী হিসাবে 3-প্যারামিটার লজিস্টিক টাইপের সমীকরণ তৈরি হয়েছিল: "y = a / (1.0 + b * exp (-1.0 * c * x))", যেখানে " এক্স "আপনার প্লট প্রতি লগ বেস 10। লাগানো প্যারামিটারগুলি ছিল এক = 9.0005947126706630E + 01, খ = 1.2831794858584102E + 07 এবং সি = 6.6483431489473155E + 00 আমার নিষ্কাশিত ডেটার জন্য, (লগ 10 এক্স) মূল ডেটার একটি ফিট যদি আপনি পুনরায় ফিট করে তবে প্রাথমিক মানটি প্রাথমিক প্যারামিটারের অনুমান হিসাবে আমার মানগুলি ব্যবহার করে। আমার প্যারামিটার মানগুলি উত্তোলিত ডেটাতে আর-স্কোয়ার্ড = 0.983 এবং আরএমএসই = 5.625 উপার্জন করছে।

পটভূমি

সম্পাদনা: এখন যেহেতু প্রশ্নটি আসল তথ্য অন্তর্ভুক্ত করার জন্য সম্পাদনা করা হয়েছে, উপরের 3-পরামিতি সমীকরণ এবং প্রাথমিক প্যারামিটার অনুমানগুলি ব্যবহার করে এখানে একটি প্লট দেওয়া হয়েছে।

plot2


আপনার ডেটা নিষ্কাশনে একটি ত্রুটি হয়েছে বলে মনে হচ্ছে: আপনার কাছে নেতিবাচক শতাংশের মান রয়েছে। এছাড়াও, আপনার সর্বোচ্চ মানগুলি মূল প্লটের মতো 100% পরিবর্তে প্রায় 90% এ রয়েছে% আপনার কোনও কিছু কারণে প্রায় 10% দ্বারা অফসেট থাকতে পারে।
এমকেটি - মনিকা

মেহ - এটি আধা-ম্যানুয়ালি তোলা ডেটা, মূল ডেটা প্রয়োজন required এটি সাধারণত সমীকরণ অনুসন্ধানের জন্য পর্যাপ্ত, এবং অবশ্যই চূড়ান্ত ফলাফলের জন্য নয় - এ কারণেই আমি আমার এক্সট্রাক্ট-ও-ফিট প্যারামিটার মানগুলি মূল ডেটাতে প্রাথমিক প্যারামিটার অনুমান হিসাবে ব্যবহার করতে বলেছিলাম।
জেমস ফিলিপস

দয়া করে নোট করুন যেহেতু এখন পোস্টে আসল ডেটা যুক্ত করা হয়েছে, আপডেট হওয়া ডেটা ব্যবহার করে আমি এই উত্তরটি আপডেট করেছি।
জেমস ফিলিপস

কেবল পুনরাবৃত্তি করতে: উদাহরণস্বরূপ, একটি হেভিসাইড ফাংশন প্রয়োগ করা, একই ধরণের ত্রুটির মান পেতে পারে।
কার্ল উইথফট

1
@ জেমস ফিলিপস আমি এটি করার চেষ্টা করব (হেভিসাইড -> ত্রুটিবার বা সমতুল্য)
কার্ল উইথফট

2

যেহেতু হেভিসাইড সম্পর্কে আমার বড় মুখ খুলতে হয়েছিল, ফলাফলগুলি এখানে। আমি লগ 10 (ভাইরাসকপি) = 2.5 এ রূপান্তর পয়েন্টটি সেট করেছি। তারপরে আমি ডেটা সেটের দুটি অংশের মানক বিচ্যুতি গণনা করেছি - অর্থাৎ, হেভিসাইড উভয় পক্ষের ডেটাগুলিতে সমস্ত ডেরাইভেটিভস = 0 রয়েছে বলে ধরে নিচ্ছে।

আরএইচ পাশের স্ট্যান্ড ডেভ = 4.76
এলএইচ পাশের স্ট্যান্ড ডেভ = 7.72

যেহেতু দেখা যাচ্ছে যে প্রতিটি ব্যাচে 15 টি নমুনা রয়েছে, সামগ্রিক স্ট্যান্ড ডেভের গড় বা 6.24।

অন্যান্য উত্তরে উদ্ধৃত "আরএমএসই" ধরে নেওয়া সামগ্রিকভাবে "আরএমএস ত্রুটি" হ্যাভিসাইড ফাংশনটি কমপক্ষে পাশাপাশি প্রদর্শিত হবে, তবে এর চেয়ে ভাল না হলে বেশিরভাগ "জেড-কার্ভ" (ফোটোগ্রাফিক প্রতিক্রিয়া নাম থেকে ধার করা) ফিট করে এখানে.

সম্পাদন করা

অকেজো গ্রাফ, কিন্তু মন্তব্যে অনুরোধ করা হয়েছে:

হেভিসাইড বাঁকানো ফিট


Woukd আপনি দয়া করে একটি মডেল পোস্ট করুন এবং অন্যান্য উত্তরগুলিতে যা করা হয়েছিল ঠিক তেমনই স্ক্রেটারপ্লট? আমি এই ফলাফলগুলি দেখতে এবং তুলনা করতে সবচেয়ে আগ্রহী। তুলনা করার জন্য দয়া করে আরএমএসই এবং আর-স্কোয়ার মান যুক্ত করুন। আমি ব্যক্তিগতভাবে কখনও হ্যাভিসাইড ফাংশনটি ব্যবহার করি নি এবং এটি অত্যন্ত আকর্ষণীয় বলে মনে করি।
জেমস ফিলিপস

আর2

আমার অর্থ হ'ল এই উত্তরগুলির সাথে সরাসরি তুলনা করার উদ্দেশ্যে অন্যান্য জবাবগুলির মতো একটি প্লট তৈরি করা।
জেমস ফিলিপস

2
@ জেমসফিলিপস আপনার দুটি ইচ্ছা বাকি আছে। বুদ্ধিমানের সাথে চয়ন করুন :-)
কার্ল উইথথফট

প্লটের জন্য আপনাকে ধন্যবাদ। আমি পর্যবেক্ষণ করেছি যে অন্যান্য উত্তরে সমস্ত প্লটে, প্লট করা সমীকরণটি নীচের ডানদিকে উপাত্তের বাঁকা আকারকে অনুসরণ করে - হ্যাভিসাইড ফাংশনের প্রকৃতি যেমন আপনার হয় না তেমন। এটি হ্যাভিসাইড ফাংশনটি অন্যান্য উত্তরগুলিতে পোস্ট করা সমীকরণগুলির মতোই করবে এমন আপনার দাবির বিরোধিতা করে বলে মনে হচ্ছে - এই কারণেই আমি আগে আরএমএসই এবং আর-স্কোয়ার মানগুলির জন্য অনুরোধ করেছি, আমি সন্দেহ করেছি যে হেভিসাইড ফাংশনটি আকৃতিটি অনুসরণ করবে না এই অঞ্চলের ডেটা এবং এই মানানসই পরিসংখ্যানগুলির জন্য খারাপ মান অর্জন করতে পারে।
জেমস ফিলিপস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.